diff options
author | nobody <nobody@localhost> | 2004-10-20 00:12:32 +0800 |
---|---|---|
committer | nobody <nobody@localhost> | 2004-10-20 00:12:32 +0800 |
commit | 00c7cd72bddc6e0c24d03639cb2305424e0ee2cc (patch) | |
tree | a58b134fc5d7fdc0836f1b9bb2f2c99ac01565e3 /shell | |
parent | da657db10113fc2fbb1b0b17f8482899f2abf772 (diff) | |
download | gsoc2013-evolution-00c7cd72bddc6e0c24d03639cb2305424e0ee2cc.tar.gz gsoc2013-evolution-00c7cd72bddc6e0c24d03639cb2305424e0ee2cc.tar.zst gsoc2013-evolution-00c7cd72bddc6e0c24d03639cb2305424e0ee2cc.zip |
This commit was manufactured by cvs2svn to create tag 'GAL_2_3_0'.GAL_2_3_0
svn path=/tags/GAL_2_3_0/; revision=27626
Diffstat (limited to 'shell')
76 files changed, 0 insertions, 33528 deletions
diff --git a/shell/.cvsignore b/shell/.cvsignore deleted file mode 100644 index ab00681752..0000000000 --- a/shell/.cvsignore +++ /dev/null @@ -1,25 +0,0 @@ -*.lo -.deps -.libs -.pure -Evolution-common.c -Evolution-skels.c -Evolution-stubs.c -Evolution.h -Evolution-DataServer-common.c -Evolution-DataServer-skels.c -Evolution-DataServer-stubs.c -Evolution-DataServer.h -ID -Makefile -Makefile.in -apps_evolution_shell-*.schemas -evolution -evolution-nognome -evolution-test-component -evolution.pure -libeshell.la -e-shell-marshal.c -e-shell-marshal.h -GNOME_Evolution_Shell*.server -GNOME_Evolution_Test*.server diff --git a/shell/ChangeLog b/shell/ChangeLog deleted file mode 100644 index d2ed6880a8..0000000000 --- a/shell/ChangeLog +++ /dev/null @@ -1,2070 +0,0 @@ -2004-10-07 Not Zed <NotZed@Ximian.com> - - * main.c (main): initialise plugin system. - (main): add --disable-eplugin and --disable-mono arguments. - -2004-09-30 Kjartan Maraas <kmaraas@gnome.org> - - * e-shell-importer.c: (import_cb): use g_timeout_add(). - * importer/intelligent.c: (select_row_cb), (unselect_row_cb), - (create_gui): use gtk_notebook_set_current_page() instead of - deprecated gtk_notebook_set_page() - -2004-09-24 Not Zed <NotZed@Ximian.com> - - * e-shell-window-commands.c: Added ed catmur to the credits. - -2004-09-27 Andre Klapper <a9016009@gmx.de> - - * e-shell-window-commands.c (about_box_new): fixed two - typos in the list of contributors - -2004-09-21 JP Rosevear <jpr@novell.com> - - From Malcolm Tredinnick <malcolm@commsecure.com.au>, Fixes #66261 - - * e-shell-window-commands.c (about_box_new): don't show - "translator-credits" if not translated - -2004-09-07 JP Rosevear <jpr@novell.com> - - Fixes #17338 - - * e-shell-window-commands.c (about_box_new): use per language - translator credits, update authors lists (not strictly authors, - but we have a lot of helpful people) - -2004-09-13 Sivaiah Nallagatla <snallagatla@novell.com> - - * e-shell.c (offline_procedure_finished_cb) - (e_shell_go_online) : set online status - for e_passwords - see #62856 (work around) - -2004-09-03 Not Zed <NotZed@Ximian.com> - - ** See bug #61285. - - * e-shell-settings-dialog.c (load_pages): use a better query to - get the configuration pages, the old one didn't include version - information properly. - -2004-08-27 Not Zed <NotZed@Ximian.com> - - ** See bug #62856 (workaround only) - - * e-shell.c (impl_Shell_setLineStatus, e_shell_construct): set the - online state on e_passwords. - -2004-08-26 Rodney Dawes <dobey@novell.com> - - * apps_evolution_shell.schemas.in.in: Don't translate the default - value for the window height - -2004-08-25 Frederic Crozat <fcrozat@mandrakesoft.com> - - * e-shell-startup-wizard.c: (prepare_importer_page): - don't call gtk_dialog_set_has_separator - on Message Dialog on GTK+ >= 2.4.0 (output warning) - - * e-shell-importer.c: (e_shell_importer_start_import): - Initialize data->finish before using it - (prepare_intelligent_page): don't call gtk_dialog_set_has_separator - on Message Dialog on GTK+ >= 2.4.0 (output warning) - (start_import) (next_file_page): convert filename from UTF-8 to - local encoding. - -2004-08-12 Carlos Garnacho Parro <carlosg@gnome.org> - - * e-shell-importer.c: added the "use_filechooser" property to the - GnomeFileEntry - -2004-08-10 Not Zed <NotZed@Ximian.com> - - * main.c (main): init epasswords. - -2004-08-01 Not Zed <NotZed@Ximian.com> - - * apps_evolution_shell.schemas.in.in: added last_version item. - - * shell-errors.xml: added upgrade-remove-1-4 and - upgrade-remove-1-4-confirm dialogues. - - * e-shell.c (remove_dir): utility to recursively delete a tree of - files and folders. - (e_shell_attempt_upgrade): keep track of the last upgraded - version, if != current version, and < 1.5, and it exists, offer to - remove ~/evolution. Confirm the offer before actually doing it. - - * e-shell-window-commands.c: include gnome-about. - (command_help_faq): fix comment structure - - * e-shell.c (attempt_upgrade): moved most of this into - e_shell_attempt_upgrade. - (e_shell_attempt_upgrade): moved most of this into - attempt_upgrade, removed rev args. It makes sense, really! - (e_shell_construct): call e_shell_attempt_upgrade instead. - -2004-07-22 Not Zed <NotZed@Ximian.com> - - * e-shell.c (create_window): merged this into - e_shell_create_window, all it was doing was adding a stack frame. - (e_shell_create_window): setup the e error default window. - -2004-07-22 Jeffrey Stedfast <fejj@novell.com> - - * e-shell-importer.c (e_shell_importer_start_import): Use - stock_mail-import instead of stock_import? *shrug* Fixes bug - #61778. - -2004-07-08 Frederic Crozat <fcrozat@mandrakesoft.com> - - * Makefile.am: - tarball should ship .schemas.in.in files, not generated files. - - * apps_evolution_shell.schemas.in.in: - Don't translate default component id (bug #60859) - -2004-07-06 Rodney Dawes <dobey@novell.com> - - * e-shell-errors.xml.h: Add this back to CVS for translators - * .cvsignore: Don't ignore e-shell-errors.xml.h - -2004-09-07 Not Zed <NotZed@Ximian.com> - - * e-shell.c (e_shell_construct): disable the startup wizard. - -2004-06-24 Not Zed <NotZed@Ximian.com> - - ** See bug #57367. - - * e-shell-window.c (e_shell_window_new): fix gconf client leak and - clean up some logic. - - * e-shell.c (e_shell_construct): dont activate the components - individually, component registry does that implictly. - - * e-component-registry.c (init): dont call query_components here. - (query_components): setup a run-once guard. before adding a - component info to the list, make sure we can activate it. - (component_info_new): take the interface as a construct argument - now. - (e_component_registry_peek_list): perform the component list query - if we haven't already. - (e_component_registry_peek_info): same. - (e_component_registry_activate): just always return - the reffed component, it isn't added unless it was already activated. - -2004-06-21 Chris Toshok <toshok@ximian.com> - - * e-user-creatable-items-handler.c (impl_finalize): free - priv->menu_xml. plugs (big) leak. - -2004-06-18 Jeffrey Stedfast <fejj@novell.com> - - * main.c (main): Remove AUTOHELP option since GNOME adds this - itself. Fixes bug #60374. - (main): Before exiting from main(), call shutdown() routines. - -2004-06-18 Radek Doulik <rodo@ximian.com> - - * main.c (main): test for skip_warning_dialog value in gconf here - and not in show_development_warning, otherwise we don't add or - call idle_cb and evo will not run - (show_development_warning): do not read skip_warning_dialog here - -2004-06-18 Not Zed <NotZed@Ximian.com> - - ** See bug #54498. - - * main.c (idle_cb): don't do dev warning stuff here anymore. - - * main.c (main): show the dev warning before doing anything else - if we are going to. - (warning_dialog_response_callback): kick off the actual - application once we're finished. - (window_map_callback, new_window_created_callback): removed, not - needed anymore. - -2004-06-17 Jeffrey Stedfast <fejj@ximian.com> - - * main.c (main): Call gnome_sound_init() before bonobo_main(). - -2004-06-09 Dan Winship <danw@novell.com> - - * check-empty.xpm, check-filled.xpm, check-missing.xpm: - * e-shell-config-autocompletion.[ch]: - * e-shell-config-default-folders.[ch]: - * e-shell-config-folder-settings.[ch]: - * e-shell-config-offline.[ch]: - * e-shell-config.[ch]: - * e-shell-folder-creation-dialog.[ch]: - * e-shell-shared-folder-picker-dialog.[ch]: - * e-storage-set-store.[ch]: - * e-storage-set-view-checkboxes.etstate: - * e-storage-set-view-no-checkboxes.etstate: - * e-storage-set-view.etspec: - * e-uri-schema-registry.[ch]: - * evolution-activity-client.c: - * evolution-storage-set-view-factory.[ch]: - * evolution-storage-set-view.[ch]: - * glade/e-folder-list.glade: - * glade/e-shell-config-default-folders.glade: - * glade/e-shell-folder-creation-dialog.glade: - * glade/e-shell-shared-folder-picker-dialog.glade: Remove - no-longer-used stuff - - * README: Remove this, since it's more confusing than true now. - - * Evolution-Offline.idl, Evolution-common.idl: Remove - GNOME_Evolution_Folder, and references to it. - - * e-active-connection-dialog.glade: - * evolution-startup-wizard.glade: Move the last two remaining - files from ./glade/ up to here. - - * glade/*: Gone. - - * Makefile.am, .cvsignore: update for the above - -2004-06-06 Jeffrey Stedfast <fejj@ximian.com> - - * e-shell-window-commands.c: Added Martyn Russel to the credits. - -2004-06-04 JP Rosevear <jpr@novell.com> - - Fixes #59361 - - * e-sidebar.c (layout_buttons): handle 0 and 1 buttons properly - -2004-06-01 William Jon McCann <mccann@jhu.edu> - - * e-shell-window-commands.c (e_shell_window_commands_setup): - Add listener for the ViewToolbar command. - (view_toolbar_item_toggled_handler): - New function to handle toggling toolbar visibility and saving state. - - * e-shell-window.c (e_shell_window_save_defaults): - Save the status of the toolbar visibility. - (setup_widgets): Set initial state of toolbar visibility. - - * apps_evolution_shell.schemas.in.in: Added schema for toolbar_visible. - -2004-06-01 Christophe Fergeau <teuf@gnome.org> - - * e-shell-importer.c: sort the various available importer plugins by - name in the importer druid combo box so that the list doesn't change - from one evolution run to another. - -2004-05-27 Not Zed <NotZed@Ximian.com> - - ** See #58827. - - * e-shell-window.c (switch_view): api change - - * e-shell.c (impl_Shell_handleURI): Fixed for api change. - (impl_Shell_handleURI): check the component alias for an alternate - uri schema path. 'quick hack' for activating components from - command line. This may, or may not, continue to function. - - * e-component-registry.c (e_component_registry_peek_info): added - an id for search type. - (e_component_registry_peek_info_for_uri_schema): ^ makes this - redundant, removed. - (e_component_registry_activate): fixed for api change. - -2004-05-28 Rodney Dawes <dobey@novell.com> - - * e-shell-importer.c (e_shell_importer_start_import): - Set the default window size for the druid to 480x320 - -2004-05-28 JP Rosevear <jpr@novell.com> - - * e-shell-window-commands.c: remove bogus include - -2004-05-28 William Jon McCann <mccann@jhu.edu> - - * Makefile.am (evolution_SOURCES): Remove e-shell-about-box. - - * e-shell-window-commands.c (command_about_box, about_box_new): - Use GNOME about box. - -2004-05-27 Rodney Dawes <dobey@novell.com> - - * Makefile.am (EXTRA_DIST): Add $(error_i18n) for "make dist" - -2004-05-27 Rodney Dawes <dobey@novell.com> - - * Makefile.am (EXTRA_DIST): Don't dist $(error_i18n) as it requires - e-error-tool to be built - - * shell-errors.xml.(h|in): Remove these from CVS, the .in is not used - any more, and the .h is generated from the .xml - -2004-05-26 Sarfraaz Ahmed <asarfraaz@novell.com> - - * e-shell.c (set_interactive): Implemented. Sends the "interactive" - message when the first window is created to all the components. - -2004-05-26 Not Zed <NotZed@Ximian.com> - - * importer/evolution-importer.c - (impl_GNOME_Evolution_Importer_createControl): set exception if not - implemented. - - * e-shell-importer.c (importer_file_page_new): set the entry to - activate default, and fixed the _Filename and _Forward shortcut - clash. #58081. - (prepare_dest_page): pack the widget without expand/fill. - -2004-05-21 Jeffrey Stedfast <fejj@novell.com> - - * evolution-shell-component-utils.c (e_activation_failure_dialog): - Removed. Nothing uses this interface (which didn't use the EError - routines anyway). - -2004-05-21 Not Zed <NotZed@Ximian.com> - - * e-shell.c (e_shell_attempt_upgrade): remove unused. - -2004-05-19 Not Zed <NotZed@Ximian.com> - - * e-shell-window.c (setup_widgets): use the menu icon not the - button icon for the menus. - (setup_widgets): fixed some i18n stuff with the menu xml. no use - putting _x stuff here, it also needs a source. And a memleak. - Yucko. - - * e-component-registry.c (component_info_new): take menu icon. - (query_components): setup the menu icon, not a large toolbar sized - icon. - - * e-shell-window.c (menu_component_selected): just use '-' as - ascii, its always going to be hte same in utf8. simplifies the - code somewhat. - -2004-05-05 William Jon McCann <mccann@jhu.edu> - - * e-shell-window.c (menu_component_selected, setup_widgets): - Add components to View menu. - - * e-component-registry.[ch] (component_info_new) - (component_info_free, query_components): Add menu_label and - menu_accelerator fields. - -2004-05-18 Not Zed <NotZed@Ximian.com> - - * shell-errors.xml: added noshell and noshell-reason error - strings. the latter seems a waste, but ... - - * main.c (idle_cb): use e_error for the new no shell errors. - -2004-05-17 Jeffrey Stedfast <fejj@novell.com> - - * e-shell-window-commands.c: Change E_PIXMAP() sizes over to - E_ICON_SIZE enum values. - - * main.c: #include <gtk/gtkvbox.h> - - * e-shell-startup-wizard.c (make_importer_page): Use - E_ICON_SIZE_DIALOG - -2004-05-12 Jeffrey Stedfast <fejj@novell.com> - - * main.c (main): Call e_icon_factory_shutdown() after - bonobo_main() exits. - -2004-05-12 Not Zed <NotZed@Ximian.com> - - * shell-errors.xml: fix the label tag for the upgrade failed box. - - * shell-errors.xml.h: add for translators. - -2004-05-11 Not Zed <NotZed@Ximian.com> - - * shell-errors.xml: Shell errors. - - * e-shell.c (e_shell_attempt_upgrade): handle exceptions better. - allow the user to keep going or abort. stop as soon as something - fails. Related to #53083. - (attempt_upgrade): abort and quit if the subcall failed. it will - display an appropriate error box. - (attempt_upgrade): abort if we don't have enough space. #57290. - - * Evolution-Component.idl (upgradeFromVersion): remove the return - code, use exceptions to indicate failure. - -2004-05-10 Not Zed <NotZed@Ximian.com> - - * e-shell.c (e_shell_attempt_upgrade): handle the various - exceptions appropritately. - (detect_version): this never fails, remove return code. - (attempt_upgrade): add a check for disk space. this is only - rough. not sure how portable. If we can't find out we go forward - anyway. - - * Evolution-Component.idl: Throw some proper exceptions for - upgradeFromVersion. UpgradeFailed with detailed error reason, and - UnsupportedVersion for non-fatal reason. - -2004-05-10 David Malcolm <dmalcolm@redhat.com> - - * e-shell-offline-handler.c (cancel_offline): Fix warning - -2004-05-10 JP Rosevear <jpr@ximian.com> - - * main.c (show_development_warning): set title to just Evolution - (show_development_warning): ditto for warning - (idle_cb): ditto for title - - * e-shell-window.c (update_offline_toggle_status): set tooltip to - just Evolution - (e_shell_window_new): ditto for window title - - * e-shell-window-commands.c (command_about_box): set title to - just Evolution - -2004-05-05 Dan Winship <danw@ximian.com> - - * e-sidebar.c (layout_buttons): Change the algorithm so that if - the buttons can't be laid out perfectly rectangularly, then the - extra space is given to the first button (ie, Mail), rather than - the last button (eg, Connector). Also, merge the icons-only and - icons-plus-text layout code together since they were nearly - identical. - (e_sidebar_add_button, e_sidebar_set_mode): Tweak things a bit so - that in icons-only mode, the icons are centered in the buttons. - -2004-05-03 Dan Winship <danw@ximian.com> - - * e-shell-importer.c (e_shell_importer_start_import): Fix warnings - -2004-04-30 Dan Winship <danw@ximian.com> - - * apps_evolution_shell.schemas.in.in: Remove default folders, - shortcut stuff, and "show folder bar". - - * e-config-upgrade.c: Don't migrate those options either - -2004-04-30 Dan Winship <danw@ximian.com> - - * e-shell-window-commands.c (command_quit): Don't save window - state here. - - * e-shell.c (e_shell_quit): Do it here, so it gets called if you - quit by closing the last window via its close button too. #57529 - -2004-04-30 Not Zed <NotZed@Ximian.com> - - * e-component-registry.c: - * e-shell-settings-dialog.c: - * e-shell-window.c: Remove e-lang-utils.h include. - - * e-component-registry.c (query_components): do the same as below. - - * e-shell-settings-dialog.c (load_pages): use - gnome_i18n_get_language_list instead of e_get_language_list(), and - use the right locale option. Fixes #53398. - -2004-04-28 Rodney Dawes <dobey@ximian.com> - - * main.c (main): Call gnome_program_init with PACKAGE "-" BASE_VERSION - so that we start up the right version of evolution when we get killed - by logout or whatever - - Fixes #54087 - -2004-04-27 JP Rosevear <jpr@ximian.com> - - * e-shell-window.c (sidebar_button_selected_callback): init the - view to NULL - -2004-04-27 William Jon McCann <mccann@jhu.edu> - - * e-shell-window.c (switch_view): set window title and icon when changing - component view. - -2004-04-23 JP Rosevear <jpr@ximian.com> - - * e-shell-window.c (e_shell_window_show_settings): if there is a - current view, use the component alias to select a sensible default - config control - -2004-04-22 Trent Lloyd <lathiat@bur.st> - - * e-sidebar.c (do_layout_text_buttons): take into account the position - of the sidebar which isnt on the very left in right to left languages, - otherwise the buttons are drawn in the wrong place. - -2004-04-21 Not Zed <NotZed@Ximian.com> - - * e-user-creatable-items-handler.c (execute_verb): if we're - running a local create, invoke that directly via the callback. - (e_user_creatable_items_handler_new): add a callback for creating - local items. - -2004-04-19 Jeffrey Stedfast <fejj@ximian.com> - - * e-user-creatable-items-handler.c (ensure_menu_items): Same. - - * e-shell-startup-wizard.c (make_timezone_page): Same. - - * e-shell-settings-dialog.c (load_pages): Same. - - * e-shell-importer.c (e_shell_importer_start_import): Same. - - * e-component-registry.c (query_components): Don't use absolute - pixel sizes, use the E_ICON_SIZE enums instead. - -2004-04-19 Michael Terry <mike@mterry.name> - - * GNOME_Evolution_Test.server.in.in: Change component icons to use the - icon theme names for icons - * Makefile.am: Remove e-icon-factory.[ch] - * e-component-registry.c: Use the icon theme for component icons - * e-icon-factory.[ch]: Removed these files - * e-shell-importer.c: - * e-shell-settings-dialog.c: - * e-shell-startup-wizard.c: - * e-shell-window-commands.c: - * e-user-creatable-items-handler.c: - * evolution-shell-component-utils.[ch]: - * main.c: - * glade/evolution-startup-wizard.glade: - * importer/import.glade: Use the icon theme via EIconFactory for all - of the icons in the shell, and the window icons - -2004-04-14 JP Rosevear <jpr@ximian.com> - - * e-shell-importer.c (get_iid_for_filetype): differentiate between - user cancellation and no importer - (next_file_page): don't throw up a dialog if the user cancelled - the selection process - -2004-04-14 JP Rosevear <jpr@ximian.com> - - * e-shell-importer.c (start_import): don't unref the dialog, - destroy it properly - -2004-04-13 Not Zed <NotZed@Ximian.com> - - * e-user-creatable-items-handler.c (create_verb): add a component - name argument, so we don't use 'this_component', and everything - comes from tasks! Fix callers to pass the component alias. - (struct _EUserCreatableItemsHandlerPrivate): change - default_menu_item to be fallback_menu_item for the mail message - new fallback. Make default_menu_item be the default for the view - (which some code seems to think it should be). Fixes #56866. - (ensure_menu_items): setup the fallback_menu_item here. - (get_default_action_for_view): use the fallback as the fallback, - not default. - (setup_toolbar_button): set the default menu item here for the - current view. - -2004-04-09 Jeffrey Stedfast <fejj@ximian.com> - - * e-shell.c (e_shell_attempt_upgrade): Don't activate the - components here. - (e_shell_construct): Activate them all here instead (before we - attempt to upgrade). Fixes a bug where the shell would start up in - online mode but never notify the components to go online. - - * main.c (idle_cb): s/Cannot access/Cannot register/ - -2004-04-09 Chris Toshok <toshok@ximian.com> - - * e-shell.c (e_shell_attempt_upgrade): make sure the component is - activated before calling upgradeFromVersion. - -2004-04-09 Chris Toshok <toshok@ximian.com> - - * e-shell.c (e_shell_attempt_upgrade): use BASE_VERSION to supply - the major/minor version, and use UPGRADE_REVISION for the - revision. - (attempt_upgrade): store the key based on BASE_VERSION and - UPGRADE_REVISION. - -2004-04-09 Dan Winship <danw@ximian.com> - - * e-user-creatable-items-handler.c: Change this a lot. Now each - component will maintain its own EUserCreatableItemsHandler and - merge the button and menus in and out of the UI as its controls - are activated and deactivated. (This lets the connector component - display the correct default for the New button). Also, update to - the Product Design Team's new organization (separating object - types from folder types) - - * e-shell.c: Remove all creatable_items_handler references - (impl_dispose): unref the component registry (unrelated bug) - - * e-shell-window.c (e_shell_window_new): Remove - creatable_items_handler reference - - * Makefile.am: Move e-user-creatable-items-handler from evolution - to libeshell, and make libeshell depend on libemiscwidgets (for - the combo button) - - * Evolution-Component.idl: add another field to CreatableItemType - so we can distinguish object types from folder types. - -2004-04-07 Jeffrey Stedfast <fejj@ximian.com> - - * Evolution-ConfigControl.idl: Removed the "apply" method. - - * e-corba-config-page.c: We can probably remove this entire file, - it seems pretty useless. But until I know for sure, I guess I - won't bother. - (impl_apply): Removed, no longer a valid interface. - (listener_event_callback): Huh? calls a non-existant function if - the event name was "changed". Uhm, yea...ok. Removed. - (setup_listener): Removed. Did nothing but to setup the above - listener. - - * evolution-config-control.c: No longer needs to keep 'changed' - state. - (evolution_config_control_changed): Removed. - (impl_apply): Removed. No lonegr a valid interface. - -2004-03-31 Rodney Dawes <dobey@ximian.com> - - * e-shell-importer.c (choose_importer_from_list): - (start_import): - (prepare_intelligent_page): Remove dialog separators - * e-shell-offline-handler.c (pop_up_confirmation_dialog): Change the - border with of the dialog's vbox and action area to be HIG-compliant - * e-shell-settings-dialog.c (init): Remove the dialog separator - * e-shell-startup-wizard.c (prepare_importer_page): Remove the dialog - separator to be more HIG-compliant - (key_press_event_callback): Fix compile warnings and cast to the - correct widget types for calling various gtk api - Remove the dialog separator to be more HIG-compliant - * main.c (show_development_warning): Make the devel warning dialog - that pops up for unstable versions be HIG-compliant - * glade/e-active-connection-dialog.glade: Make the active connection - dialog for going off-line be HIG-compliant - * importer/intelligent.c (create_gui): Remove the dialog separator - and set the dialog's vbox and action area border widths to be more - compliant with the HIG - -2004-03-26 Rodney Dawes <dobey@ximian.com> - - * e-shell-settings-dialog.c (impl_realize): We don't need this really - (class_init): We don't need to have our own realize impl for setting - the default window size of the dialog, especially since we are setting - the size before we actually get realized, anyway - (init): Set the dialog size here, and don't set the border width of the - dialog - -2004-03-18 Not Zed <NotZed@Ximian.com> - - * e-shell-about-box.c: added (c) symbol and 2004 and changed to - Novell to the copyright notice in the about box. - -2004-03-12 Not Zed <NotZed@Ximian.com> - - * e-shell.c (detect_version): when we check the evolution dir - exists, check the evolution dir exists, not the config.xmldb file. - Move filename building/usage into the else condition so it can't - happen again. Fixes #53277. - -2004-03-10 Bill Zhu <bill.zhu@sun.com> - - * e-shell-startup-wizzard.c (key_press_event_callback): Used the stock - icon in confirm dialog. - - Fixes #55063 - -2004-03-06 Pratik V. Parikh <pratikvp@despammed.com> - - * e-shell-window-commands.c (command_quick_reference): Check that - app is not NULL before trying to open the quickref document. - - Fixes #55106 - -2004-02-15 Rodney Dawes <dobey@ximian.com> - - * evolution-nognome.in: Use @BASE_VERSION@ for the binary - - Fixes #54796 - -2004-02-18 Not Zed <NotZed@Ximian.com> - - * e-shell-offline-handler.c (prepare_for_offline): remove id, and - use info->id for create_progress_listener. Fixes #53649. - -2004-02-10 JP Rosevear <jpr@ximian.com> - - * Remove dead files - -2004-02-06 JP Rosevear <jpr@ximian.com> - - * importer/intelligent.c (get_intelligent_importers): use base - version for intelligent importers - - * e-shell-importer.c (get_intelligent_importers): ditto - - Fixes #54004 - -2004-02-06 Rodney Dawes <dobey@ximian.com> - - * e-shell-window-commands.c (command_quick_reference): Really make - this work with gnome-vfs 2.2, instead of using gnome-vfs 2.4 api, - fixes #53566 more completely so snapshots can build again (doh) - -2004-02-06 JP Rosevear <jpr@ximian.com> - - * importer/import.glade: remove step numbers - -2004-02-05 Rodney Dawes <dobey@ximian.com> - - * e-shell-window-commands.c (command_quick_reference): Use gnome-vfs - directly, instead of relying on gnome_url_show (), to launch the - application for the quick reference, since we can run on gnome 2.2 - mostly, and gnome_url_show () only handles the uri method there - - Fixes #53566 - -2004-02-04 JP Rosevear <jpr@ximian.com> - - * e-shell-importer.c (start_import): pass in a parent for the - dialogs, use e_notice - (import_druid_finish): we carry the filename around with us now - (next_file_page): check the file here and store the name; put up - gui dialogs - (e_shell_importer_start_import): set the druid as a transient for - the shell - -2004-02-04 JP Rosevear <jpr@ximian.com> - - * importer/import.glade: add extra page - - * importer/evolution-importer.h: update protos - - * importer/evolution-importer.c: hold the createControl function - (impl_GNOME_Evolution_Importer_createControl): implement - (impl_GNOME_Evolution_Importer_loadFile): remove dead args - - * importer/evolution-importer-client.h: update/add protos - - * importer/evolution-importer-client.c - (evolution_importer_client_create_control): wrapper - (evolution_importer_client_load_file): we don't take physical_uri - and folder_type as args any more - - * importer/GNOME_Evolution_Importer.idl: add createControl method - and remove extraneous loadFile args - - * e-shell-window-commands.c (command_import): uncomment - - * e-shell-importer.h: update proto - - * e-shell-importer.c: remove DEPRECATED hack and tidy includes - (get_iid_for_filetype): use query define - (start_import): we don't take a file name and client directly now - (create_plugin_menu): user query define - (importer_dest_page_new): create vbox - (import_druid_finish): we no longer do folder selection here - (next_file_page): create the client here - (prepare_dest_page): show the importer control - (next_dest_page): skip to the finish - (back_finish_page): back to the destination page - (e_shell_importer_start_import): set up the destination page - - * Makefile.am: build import files again - -2004-02-04 JP Rosevear <jpr@ximian.com> - - * e-shell-view-menu[hc]: remove dead files - -2004-02-04 JP Rosevear <jpr@ximian.com> - - * e-shell.c (e_shell_quit): make this C89 compliant - -2004-02-04 Not Zed <NotZed@Ximian.com> - - ** See bug #53683. - - * Evolution-Component.idl: added EvolutionComponent::quit() call. - - * main.c (quit_box_new): removed, dont show quit box anymore at - the end, we've already shutdown by now with the new shutdown - sequence. - - * e-shell-window-commands.c (command_quit): call e_shell_quit to - quit. - - * e-shell.c (e_shell_prepare_for_quit): renamed es_run_quit, now - internal, and a gtktimeout function, so return code inverted. - (e_shell_quit): new public entry, find out if we can shutdown, if - so, then trigger a shutdown. - (e_shell_request_close_window): just call e_shell_quit to exit - when we've run out of windows. - (e_shell_quit): desensitise all of the app windows before running - shutdown. looks a bit weird, but not doing so looks worse. - -2004-02-03 Dan Winship <danw@ximian.com> - - * e-activity-handler.c: - * e-activity-handler.h: - * e-task-bar.c: - * e-task-bar.h: - * e-task-widget.c: - * e-task-widget.h: Moved to misc/widgets since they depend on - libemiscwidgets now, and aren't actually used by the shell itself. - - * Makefile.am (eshell_HEADERS, libeshell_la_SOURCES): Update - -2004-02-02 Chris Toshok <toshok@ximian.com> - - * e-component-registry.c (component_info_new): don't generate a - g_warning if button_icon == NULL. - (component_info_free): unref the button_icon if it's != NULL. - -2004-01-29 JP Rosevear <jpr@ximian.com> - - * main.c: turn development stuff back on - -2004-01-28 JP Rosevear <jpr@ximian.com> - - * main.c (kill_dataserver): g_message this - (destroy_config): remove the various pieces to create a cleanish - state for re-migrating from 1.4.x - (main): add --force-migrate option when in development mode - -2004-01-28 Rodney Dawes <dobey@ximian.com> - - * e-task-bar.c (init): First argument to gtk_hbox_new () is a boolean, - not an int, don't show the hbox for activities by default - (e_task_bar_prepend_task): Show the hbox for activities when we add - tasks to the taskbar - (e_task_bar_remove_task): If we have no tasks left to display, don't - show the empty hbox - -2004-01-27 Rodney Dawes <dobey@ximian.com> - - * e-task-bar.c (init): Expand the label, this fixes the problem - that people were having in the shell window with the preview pane - and the weird warning from ECLippedLabel for urls - - Fixes #52937 for good - -2004-01-26 David Trowbridge <trowbrds@cs.colorado.edu> - - * Makefile.am: add definition for EVOLUTION_HELPDIR - - * e-shell-window-commands.c: add handling for new "Quick - Reference" menu - -2004-01-26 Not Zed <NotZed@Ximian.com> - - * e-shell.c (attempt_upgrade, detect_version, e_shell_construct): - attempt the upgrade before trying to startup the wizard. - - * main.c (detect_version, attempt_upgrade): move to e-shell.c - (idle_cb): remove call to attempt_upgrade. - -2004-01-26 Rodney Dawes <dobey@ximian.com> - - * e-shell-window.c (setup_widgets): Add panded widget to - EShellWindowPrivate and handle state saving of position (#52049) - * e-task-bar.c (init): Switch to EClippedLabel instead of GtkLabel - for the status bar text (#52937) - - Fixes #52049 and #52937 - -2004-01-26 JP Rosevear <jpr@ximian.com> - - * e-shell.c (e_shell_construct): there is no splash screen any - more - -2004-01-26 JP Rosevear <jpr@ximian.com> - - * main.c: drop now useless gtkhtml/gconf check - -2004-01-23 Rodney Dawes <dobey@ximian.com> - - * main.c (idle_cb): Move uri_list loop into a separate function - so we don't duplicate code in both instances where we are creating - a new shell or using a current one, and don't open a new shell window - if we are passing in a uri and a shell is already up - - Fixes #53216 - -2004-01-15 JP Rosevear <jpr@ximian.com> - - * e-config-upgrade.c: remove calendar and task keys for upgrade, - its done in the calendar now - -2004-01-15 Rodrigo Moya <rodrigo@ximian.com> - - * e-shell-view-menu.c: added ForgetPasswords menu item. - (command_forget_passwords): callback for the new menu item. - - * e-shell-window-commands.c: (command_forget_passwords): ditto. - -2004-01-15 JP Rosevear <jpr@ximian.com> - - * main.c (kill_dataserver): kill the correct binary, tidy includes - -2004-01-15 JP Rosevear <jpr@ximian.com> - - * main.c (detect_version): move version detection here - - * e-config-upgrade.c: remove it from here; clean out all the - mailer and bonobo conf conversion stuff, its been moved to the - mailer and e-util - - * e-config-upgrade.h: remove proto - -2004-01-15 Not Zed <NotZed@Ximian.com> - - * e-config-upgrade.c (e_upgrade_detect_version): fix the check for - ~/evolution being a directory. - -2004-01-13 JP Rosevear <jpr@ximian.com> - - * main.c (attempt_upgrade): detect the version more completely - with the new util routine - (main): don't upgrade the config db here - - * e-shell.h: update proto - - * e-shell.c (e_shell_attempt_upgrade): take the current version as - numerical params - - * e-config-upgrade.h: update prototypes - - * e-config-upgrade.c (e_config_upgrade): remove version detection - and saving code - (e_upgrade_detect_version): routine to do the version detection - - * e-config-upgrade.c: drop my-evolution upgrade code - -2004-01-12 JP Rosevear <jpr@ximian.com> - - * Makefile.am: use our libs - -2004-01-12 JP Rosevear <jpr@ximian.com> - - * evolution-test-component.[hc]: Complete rewrite to match current - component api - - * Makefile.am: conditionally build the test component - -2004-01-11 JP Rosevear <jpr@ximian.com> - - * e-sidebar.c (button_new): track hbox and label widget - (button_free): unref them - (do_layout_text_buttons): layout buttons with text - (do_layout_icon_buttons): layout icon only buttons - (do_layout): layout based on mode - (impl_size_request): distinguish between horizontal and vertical - padding - (init): set a default mode - (e_sidebar_add_button): align the button text to the left, only - add the text if we are in the text mode - (e_sidebar_get_mode): accessor - (e_sidebar_set_mode): accessor - - * e-sidebar.h: add prototype and mode enum - -2004-01-11 JP Rosevear <jpr@ximian.com> - - * GNOME_Evolution_Test.server.in.in: proper server file for test - components - - * Makefile.am: allow the test component to be built and installed - - * evolution-test-component.[hc]: new test component to match - current api - -2004-01-08 JP Rosevear <jpr@ximian.com> - - * e-shell.c (e_shell_attempt_upgrade): make sure we actually - upgrade between revisions - -2004-01-08 JP Rosevear <jpr@ximian.com> - - * e-shell-startup-wizard.c (get_intelligent_importers): add a ')' - to create a valid query - -2004-01-08 Not Zed <NotZed@Ximian.com> - - * e-shell-startup-wizard.c (get_intelligent_importers): check that - we found any importers before deferencing the pointer. - -2004-01-05 ERDI Gergo <cactus@cactus.rulez.org> - - * e-task-bar.c (init): Create a separate label to the left of the - progress messages... - (e_task_bar_message): ...and allow components to set it... - - * e-activity-handler.c (e_activity_handler_message): ...through - this new ActivityHandler method - -2003-12-30 JP Rosevear <jpr@ximian.com> - - * e-setup.[hc]: these just handle creating the ~/evolution dir and - so are no longer needed - - * main.c (main): don't setup the old ~/evolution dir - - * Makefile.am: don't build dead files - - * e-shell.c (e_shell_go_online): get the id from the component - info - -2003-12-22 Ross Burton <ross@burtonini.com> - - * e-shell.c: mark the settings dialog as transient for the main window. - -2003-12-14 JP Rosevear <jpr@ximian.com> - - * e-user-creatable-items-handler.c (get_components_from_registry): - only add the component to the list if we actually create it - - Fixes #51707 - -2003-12-11 Not Zed <NotZed@Ximian.com> - - * e-sidebar.c (do_layout): remove padding around the folder list. - (impl_size_request): don't add padding around folder list. - -2003-12-09 Ettore Perazzoli <ettore@ximian.com> - - [#51710] - - * GNOME_Evolution_Shell.server.in.in: Remove - GNOME_Evolution_Shell_Config_FolderSettings_Control. - -2003-12-06 JP Rosevear <jpr@ximian.com> - - * e-shell-importer.c: remove useless gal include - - * Makefile.am: Remove hard coded disable deprecated flags - -2003-12-04 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_prepare_for_quit): Implement. - - * Evolution-Component.idl (Component::requestQuit): Make sync - [i.e. just return a boolean instead of using a BonoboListener]. - -2003-12-03 Ettore Perazzoli <ettore@ximian.com> - - [Fix for #51619.] - - * e-shell.c (impl_Shell_createNewWindow): If component_id is the - empty string, pass NULL for it to e_shell_create_window() so we - get the default. - - * main.c (idle_cb): Pass an empty string for component_id to - createNewWindow() if the default_component_id is NULL. - -2003-12-03 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Move e-task-bar and e-task-widget into libeshell. - [Fix pointed out by Bernard Leach <leachbj@bouncycastle.org>.] - -2003-12-03 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-Session.idl: Remove. - * Evolution-Activity.idl: Remove. - * Evolution-ShellComponent.idl: Remove. - * Evolution-ShellComponentDnd.idl: Remove. - * Evolution-ShellView.idl: Remove. - * Evolution-Shortcuts.idl: Remove. - * Evolution-Storage.idl: Remove. - * Evolution-StorageSetView.idl: Remove. - - * evolution-shell-view.c: Remove. - * evolution-shell-view.h: Remove. - - * evolution-session.c: Remove. - * evolution-session.h: Remove. - -2003-12-03 Ettore Perazzoli <ettore@ximian.com> - - * e-activity-handler.c: Do not #include - "e-shell-corba-icon-utils.h". - -2003-12-03 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-list.c: Remove. - * e-folder-list.h: Remove. - - * e-folder-tree.c: Remove. - * e-folder-tree.h: Remove. - - * e-folder.c: Remove. - * e-folder.h: Remove. - - * evolution-shell-component.c: Remove. - * evolution-shell-component.h: Remove. - - * evolution-shell-client.c: Remove. - * evolution-shell-client.h: Remove. - - * evolution-folder-selector-button.c: Remove. - * evolution-folder-selector-button.h: Remove. - - * evolution-activity-client.c: Remove. - * evolution-activity-client.h: Remove. - - * evolution-storage.c: Remove. - * evolution-storage.h: Remove. - -2003-12-02 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (e_shell_window_save_defaults): Implement. - (e_shell_window_new): Set the width/height from the GConf keys. - -2003-12-02 Rodney Dawes <dobey@ximian.com> - - * Makefile.am: Version the schemas - * apps_evolution_shell.schemas: Removed - * apps_evolution_shell.schemas.in.in: Added - -2003-12-01 Ettore Perazzoli <ettore@ximian.com> - - * e-activity-handler.c (e_activity_handler_operation_finished): - Argh, renamed from e_activity_client_operation_finished(). - (e_activity_handler_operation_started): Don't unref the pixbuf. - - * e-shell-window.c (setup_widgets): Hide the menu hint label. - - * e-activity-handler.c (init): Init to next_activity_id to 1 so - callers can rely on it being nonzero. - -2003-12-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (struct _EShellPrivate): Remove member - activity_handler. - (setup_activity_interface): Remove. - (e_shell_init): Don't call. - (create_window): Don't attach the task bar to the activity - handler. - - * e-shell-window.c (struct _ComponentView): New member - statusbar_widget. - (struct _EShellWindowPrivate): Remove member task_bar. - (init_view): Get the status bar control from createControls and - put it in the ComponentView struct. - (setup_task_bar): New. - (setup_statusbar_notebook): New. - (switch_view): Switch the statusbar notebook too. - (impl_dispose): Add missing GTK_OBJECT() cast. - (e_shell_window_peek_task_bar): Remove. - - * Evolution-Component.idl (Component::createControls): New out arg - "statusbar_control"; this way components can provide their own - status bar. - - * e-activity-handler.c, e-activity-handler.h: Turn into a plain - GObject; translate all the CORBA methods into plain C methods. - - * Makefile.am: Move e-activity-handler to libeshell instead of it - being in the shell. - -2003-12-01 Rodney Dawes <dobey@ximian.com> - - * GNOME_Evolution_Shell.server.in.in: - * e-component-registry.c: - * e-shell-config.c: - * e-shell-shared-folder-picker-dialog.c: - * e-shell-startup-wizard.c: - * e-shell.h: - * e-user-creatable-items-handler.c: - * evolution-activity-client.c: - * evolution-storage.c: Use BASE_VERSION for repo_ids and OAFIIDs - -2003-11-30 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (struct _EShellPrivate): New member offline_handler. - (offline_procedure_started_cb): New. - (offline_procedure_finished_cb): New. - (e_shell_go_offline): Implement (putting back the code that we had - #if 0'ed out). - (e_shell_go_online): Likewise. - - * e-shell-offline-handler.c, e-shell-offline-handler.h: Put back - in, massage for the changes in the Offline interface. - - * e-shell-offline-sync.c, e-shell-offline-sync.h: Remove from CVS. - - * Evolution-Offline.idl (SyncFolderProgressListener): Remove. - (Offline::SyncFolder): Remove. - -2003-11-23 JP Rosevear <jpr@ximian.com> - - * Makefile.am: remove gtk deprecated flag - -2003-11-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_handleURI): Reimplemented using - EComponentRegistry. - - * main.c (idle_cb): Create a new window even if we have a URI - list. - - * e-component-registry.c - (e_component_registry_peek_info_for_uri_schema): New. - -2003-11-19 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.c (component_info_free): Free - ->uri_schemas. - (set_schemas): New function to get the list of URI schemas given a - component's ServerInfo. - (query_components): Call it. - - * e-component-registry.h (struct _EComponentInfo): Add - "uri_schemas" member. - - * Evolution-Component.idl (Component.handleURI): New method. - -2003-11-19 Ettore Perazzoli <ettore@ximian.com> - - * evolution-activity-client.c - (evolution_activity_client_construct): Get a raw - GNOME_Evolution_Shell as an arg instead of an - EvolutionShellClient. - (get_shell_activity_iface): New helper function. - (evolution_activity_client_construct): Use it. - -2003-11-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (impl_dispose): Destroy the tooltips instead of - unreffing them. - - * e-shell.c (struct _EShellPrivate): New member activity_handler. - (setup_activity_interface): New. - (impl_dispose): Add a comment about why we must not unref - activity_handler here. - (create_window): Attach the task bar to the new window. - - * e-shell-window.c (e_shell_window_peek_task_bar): New. - - * e-activity-handler.c: Add back. - * e-activity-handler.h: Add back. - -2003-11-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (struct _EShellWindowPrivate): New members - status_bar, offline_toggle, offline_toggle_image, menu_hint_label, - task_bar, tooltips. - (init): Initialize ->tooltips. - (impl_dispose): Unref ->tooltips. - (offline_toggle_clicked_callback): New. - (e_shell_window_new): Connect shell_line_status_changed_callback() - to the shell's "line_status_changed" signal. - (shell_line_status_changed_cb): New. - (setup_offline_toggle): New. - (setup_menu_hint_label): New. - (setup_task_bar): New. - (setup_status_bar): New. - (setup_widgets): Call setup_status_bar() and add add the status - bar to the window. - (update_offline_toggle_status): New. - (update_send_receive_sensitivity): New. - (load_icons): New. - (class_init): Call load_icons(). - (ui_engine_remove_hint_callback): New. - -2003-11-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window-commands.c: Add a pixmap for the toolbar - SendReceive button. - -2003-11-17 Ettore Perazzoli <ettore@ximian.com> - - * main.c (attempt_upgrade): New helper function. - (idle_cb): Call it if we have a local shell. Also, remove unused - variables. - - * e-shell.c (e_shell_attempt_upgrade): New. - - * Evolution-Component.idl (Component.upgradeFromeVersion): New. - -2003-11-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window-commands.c (command_open_new_window): New, - implement "OpenNewWindow" verb. - -2003-11-17 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c: Do not #include "e-local-folder.h". - - * Makefile.am: Don't build evolution-test-component for now since - it's all out of date. - - * main.c (evolution_debug_log): Make static instead of extern. - - * e-user-creatable-items-handler.c: #include - <bonobo/bonobo-control.h>. - - * e-shell.h: Do not include "e-uri-schema-registry.h" or - "evolution-shell-component-client.h". - * e-shell.c: Likewise. - - * e-shell.c (struct _EShellPrivate): Removed member - uri_schema_registry. - (impl_Shell_handleURI): #if 0 it out for now. - (e_shell_peek_uri_schema_registry): Disabled for now. - - * e-uri-schema-registry.c: Don't compile for now. - - * e-corba-storage-registry.c: Remove. - * e-corba-storage-registry.h: Remove. - * e-corba-storage.c: Remove. - * e-corba-storage.h: Remove. - * e-folder-dnd-bridge.c: Remove. - * e-folder-dnd-bridge.h: Remove. - * e-folder-selection-dialog.c: Remove. - * e-folder-selection-dialog.h: Remove. - * e-folder-type-registry.c: Remove. - * e-folder-type-registry.h: Remove. - * e-local-folder.c: Remove. - * e-local-folder.h: Remove. - * e-local-storage.c: Remove. - * e-local-storage.h: Remove. - * e-shell-folder-selection-dialog.c: Remove. - * e-shell-folder-selection-dialog.h: Remove. - * e-shell-view.c: Remove. - * e-shell-view.h: Remove. - * e-storage-browser.c: Remove. - * e-storage-browser.h: Remove. - * e-storage-set-view.c: Remove. - * e-storage-set-view.h: Remove. - * e-storage-set.c: Remove. - * e-storage-set.h: Remove. - * e-storage.c: Remove. - * e-storage.h: Remove. - * evolution-shell-component-client.c: Remove. - * evolution-shell-component-client.h: Remove. - * evolution-shell-component-dnd.c: Remove. - * evolution-shell-component-dnd.h: Remove. - * evolution-storage-listener.c: Remove. - * evolution-storage-listener.h: Remove. - * evolution-storage-set-view-listener.c: Remove. - * evolution-storage-set-view-listener.h: Remove. - -2003-11-13 Ettore Perazzoli <ettore@ximian.com> - - * main.c (DEVELOPMENT_WARNING): Define. - -2003-11-13 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_send_receive): New. - - * Evolution-Component.idl (Component.sendAndReceive): New. - -2003-11-13 Ettore Perazzoli <ettore@ximian.com> - - * e-user-creatable-items-handler.c (ensure_menu_items): Reverse - the list so we get the items in the same order they were given to - us [since we are using g_slist_prepend() to build the list]. - -2003-11-13 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-Component.idl (GNOME.Evolution.Component.UnknownType): - New exception. - -2003-11-13 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c: New signal "component_changed". - (class_init): Install. - (switch_view): Emit. - (e_shell_window_new): Call - e_user_creatable_items_handler_attach_menus() to attach the - "New..." menus. - (e_shell_window_peek_current_component_id): New. - (e_shell_window_peek_shell): Add precondition. - (e_shell_window_peek_current_component_id): Likewise. - (e_shell_window_peek_bonobo_ui_component): Likewise. - - * e-user-creatable-items-handler.c: New. - * e-user-creatable-items-handler.h: New. - - * e-shell-window.h: #include <bonobo/bonobo-ui-component.h>. - - * e-shell.c (struct _EShellPrivate): Add member - user_creatable_items_handler. - (e_shell_get_user_creatable_items_handler): Remove. - (e_shell_peek_user_creatable_items_handler): New. - - * Evolution.idl: Don't #include Evolution-ShellComponent.idl. - - * Evolution-Component.idl (GNOME.Evolution.RequestCreateItem): New - method. - (GNOME.Evolution.creatableItems): New attribute. - - * e-shell-user-creatable-items-handler.c: Remove. - * e-shell-user-creatable-items-handler.h: Remove. - -2003-11-12 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (e_shell_window_switch_to_component): Call - e_sidebar_select_button() instead of switch_view(). - - * e-sidebar.c (update_buttons): New helper function. - (e_sidebar_select_button): New. - -2003-11-11 JP Rosevear <jpr@ximian.com> - - * main.c (kill_dataserver): kill the right thing - (kill_old_dataserver): rename and check the version correctly - -2003-11-10 Ettore Perazzoli <ettore@ximian.com> - - * main.c: Added a new "-c" command-line arg. - (idle_cb): If the arg is specified, open the component with that - id/alias. - - * e-shell.c (impl_Shell_createNewView): New, implementation for - the Shell::createNewView() CORBA method. - (e_shell_class_init): Install. - (e_shell_create_window): Get a component_id arg. - - * e-shell-window.c (e_shell_window_new): Get a component_id arg - and create the window with that component activated if not NULL. - - * Evolution-Shell.idl (createNewView): Remove. - (createNewWindow): New. - -2003-11-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (struct _ComponentView): New member - "component_alias". - (component_view_new): Get a new "alias" arg, set the member in the - struct accordingly. - (component_view_free): Free ->component_alias. - (setup_widgets): Pass the alias from the ComponentInfo to - e_component_view(). - (switch_view): New utility function. - (sidebar_button_selected_callback): Use it. - (e_shell_window_switch_to_component): New public function. - (e_shell_window_new): Switch to the component whose id is in the - /apps/evolution/shell/view_defaults/component_id GConf key. - - * apps_evolution_shell.schemas: Removed view_defaults/folder_path. - New key view_defaults/component_id. - - * e-component-registry.c (component_info_free): Free ->alias. - (component_info_new): Get an "alias" arg and set the member - accordingly. - (query_components): Remove debugging messages. Get an - "evolution:component_alias" property from the component and set - the alias from that. - - * e-component-registry.h (struct _EComponentInfo): New member - "alias". - -2003-11-07 JP Rosevear <jpr@ximian.com> - - * Makefile.am: don't include top level libical - -2003-11-07 JP Rosevear <jpr@ximian.com> - - * Makefile.am: make sure the marshal header is in the sources too - -2003-11-07 JP Rosevear <jpr@ximian.com> - - * main.c: use e-d-s idl to check interface version - - * Makefile.am: build e-d-s idl - -2003-11-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-shared-folder-picker-dialog.c (setup_name_selector): - Append "_2" to the SelectNames OAFIID. - -2003-11-03 Ettore Perazzoli <ettore@ximian.com> - - * GNOME_Evolution_Shell.server.in.in: Use "evolution2:config_item" - attributes instead of "evolution:config_item" ones. - - * e-shell-settings-dialog.c (load_pages): Expect - "evolution2:config_item" properties instead of - "evolution:config_item" so they do not conflict with 1.4's. - -2003-10-29 Dan Winship <danw@ximian.com> - - * Evolution-Component.idl: declare an exception for createControls - to return, so we don't have to just crash if it fails. - -2003-10-28 Rodney Dawes <dobey@ximian.com> - - * Makefile.am: Add e-shell-view.h to evolution_SOURCES - -2003-10-28 Rodney Dawes <dobey@ximian.com> - - * Makefile.am: Fix automake warning, and add - e-shell-user-creatable-items-handler.h to evolution_SOURCES - -2003-10-23 Chris Toshok <toshok@ximian.com> - - * e-component-registry.c (query_components): handle the case where - label == NULL, and set it to _("Unknown"). - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-sidebar.c (e_sidebar_add_button): Add a little border to the - buttons so it looks nicer. - - * e-component-registry.c (query_components): Set an icon from the - "evolution:button_icon" attribute. - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (struct _EShellPrivate): New member - "component_registry". - (e_shell_construct): Don't call e_shell_unregister_all(). - (e_shell_unregister_all): Removed. - (e_shell_init): Use g_new0(), removed a bunch of NULL/FALSE - assignments. - (e_shell_init): Initialize the component_registry. - (e_shell_peek_uri_schema_registry): Rename from - e_shell_get_uri_schema_registry. - (e_shell_peek_component_registry): New. - (setup_components): Remove. - (e_shell_construct): Don't call. - - * main.c (no_windows_left_cb): Don't call e_shell_unregister_all(). - - * e-shell.c (parse_default_uri): Removed. - (parse_evolution_uri): Removed. - (e_shell_parse_uri): Removed. - - * e-component-info.c: Remove. - * e-component-info.h: Remove. - -2003-10-22 Jeffrey Stedfast <fejj@ximian.com> - - * e-storage-set-view.c (impl_tree_drag_data_received): Emit the - right signal. - (impl_tree_drag_data_get): Same. - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * importer/intelligent.c (create_gui): Make the scrolled window - have a GTK_SHADOW_IN shadow. - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (setup_widgets): Make the notebooks not have - borders. - (setup_widgets): Fix typo: e_get_language_list() returns a GSList, - not a GList. - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-browser.c (struct _EStorageBrowserPrivate): New member - "storage_set_view_scrolled". - (e_storage_browser_new): Put the storage_set_view in a scrolled - window. Set priv->storage_set_view_scrolled to this scrolled - window. - (e_storage_browser_peek_tree_widget_scrolled): New. - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-sidebar.c (PADDING): Increase to 6 pixels. - (button_toggled_callback): Add a cast. - (e_sidebar_set_selection_widget): Handle the NULL widget case - properly. - (impl_remove): New, implementation for GtkContainer::remove. - (do_layout): Add padding between the selection_widget and the - button box. - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (struct _ComponentView): New member button_id. - (struct _EShellWindowPrivate): New member sidebar. - (component_new_new): Get a button_id arg. - (component_button_clicked_callback): Removed. - (sidebar_button_selected_callback): New. - (create_component_button): Removed. - (setup_widget): Set up the sidebar using ESidebar and hook up its - "button_selected" signal. Also get the component name from a - property on the server info. - (e_shell_window_new): Use BASE_VERSION for the version in the app - name instead of hardcoding "1.5". - - * e-sidebar.c: New. - * e-sidebar.h: New. - -2003-10-22 Ettore Perazzoli <ettore@ximian.com> - - * GNOME_Evolution_Shell.server.in.in: Append a _2 to all the IIDs. - - * e-shell.h (E_SHELL_OAFIID): Change to "GNOME_Evolution_Shell_2" - so it does not conflict with the old IID. - -2003-10-22 Jeffrey Stedfast <fejj@ximian.com> - - * e-shell-window.c (e_shell_window_new): Change to "evolution-1.5" - - although, ideally, this should be a config.h macro or something. - -2003-10-22 Dan Winship <danw@ximian.com> - - * main.c: Remove e_proxy_init call. (e-proxy is gone now) - -2003-10-17 Jeffrey Stedfast <fejj@ximian.com> - - * e-storage-set-view.c: Rewrote the drag & drop code. - -2003-10-21 Not Zed <NotZed@Ximian.com> - - * e-storage-browser.c (e_storage_browser_show_path): ref the view - since removing it from the hashtable will unref it. - -2003-10-09 Jeffrey Stedfast <fejj@ximian.com> - - * Makefile.am: INCLUDE path fixes for changes made to libical - build. - -2003-09-30 Ismael Olea <ismael@olea.org> - - * e-shell-about-box.c: fixed encoding for Spanish translators. - -2003-09-29 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-selection-dialog.c, e-folder-selection-dialog.h: New - files, based on e-shell-folder-selection-dialog.[ch]. These don't - require the shell, they just need an EStorageSet to work. - -2003-09-23 Charles Zhang <charles.zhang@sun.com> - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): connect - to "key_press_event" signal with key_press_event_callback. - (key_press_event): Handle `ESC` key press event. [#48145] - -2003-09-22 Hans Petter Jansson <hpj@ximian.com> - - * Makefile.am (evolution_LDADD): libical.la -> libical-evolution.la - -2003-09-12 Frederic Crozat <fcrozat@mandrakesoft.com> - - * e-config-upgrade.c: (utf8_reencode), (upgrade_xml_1_2_rec), - (e_config_upgrade): - Fix migration of shortcuts.xml which was incorrectly encoded by - libxml1. (Mdk bug #4927) - -2003-09-11 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (impl_right_click): If the - right_click_row_path is not NULL (i.e. a menu is being popped up - already), don't pop up the menu again. [#48388] - -2003-09-11 Ettore Perazzoli <ettore@ximian.com> - - [#47875, thanks to Calvin Liu for figuring this out.] - - * e-shortcuts.c (e_shortcuts_add_default_shortcuts): Use the - group_num arg, so it gets added to the proper group. - (e_shortcuts_add_default_group): Pass the actual group number to - e_shortcuts_add_default_shortcuts(). - -2003-09-11 Hans Petter Jansson <hpj@ximian.com> - - * Makefile.am (evolution_LDADD): libical-evolution.la -> libical.la - -2003-09-05 Yuedong Du <yuedong.du@sun.com> - - * e-shell-importer.c: (importer_file_page_new), - (importer_type_page_new), (show_import_wizard): Use - gtk_label_new_with_mnemonic() to replace gtk_label_new(). Use - gtk_label_set_mnemonic_widget() to set up label<-> entry - relationship. Change gtk_button_set_label() to - gtk_button_set_use_underline() and gtk_button_set_label(). Change - gtk_radio_button_new_with_label_from_widget() to - gtk_radio_button_new_with_mnemonic_from_widget(). fix bug #47867 - -2003-08-18 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c: New member current_view in struct - EShellWindowPrivate. - (init_view): Set it to the newly added view. Also, switch the - notebooks to the new page. - (component_button_clicked_callback): Set current_view here as - well, for existing views. - (component_view_activate): New. - (component_view_deactivate): New. - (init_view): Deactivate existing view, activate new selected view. - (component_button_clicked_callback): Likewise. - (init_view): Set the component_iface to CORBA_OBJECT_NIL in the - view if you cannot create the controls. - -2003-08-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c (setup_widgets): Pass TRUE for @resize to - gtk_paned_pack2() for the view notebook. - -2003-07-29 Ettore Perazzoli <ettore@ximian.com> - - * e-splash.c, e-splash.h: Removed from the build. - -2003-07-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_close_all_windows): Oops. Traverse the - window list with a local "next" variable like we did in the - original code. Otherwise, we crash because the list is being - modified at each gtk_widget_destroy(). - -2003-07-25 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-browser.c (class_init): Set up "page_switched" signal. - (e_storage_browser_show_path): Emit "page_switched". - - * e-storage-browser.h: New signal "page_switched". - -2003-07-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-window.c: Removed member ui_container from - EShellWindowPrivate. - (e_shell_window_peek_shell): New. - (e_shell_window_peek_bonobo_ui_component): New. - (e_shell_window_new): Don't set the ui_container anymore, just get - it ourselves. Also call e_shell_window_commands_setup(). - - * e-shell-window-commands.c, e-shell-window-commands.h: New files - implementing the commands for the shell windows. - - * e-shell.c (e_shell_close_all_windows): Renamed from - e_shell_destroy_all_windows(). - - * main.c (idle_cb): Create a new window using - e_shell_create_window(). - - * e-shell-importer.h: Define _E_SHELL_IMPORTER_H_ to prevent - multiple inclusion, instead of __IMPORTER_H__. Also, do not - #include <bonobo/bonobo-ui-component.h>. - - * e-shell-importer.c (e_shell_importer_start_import): Renamed from - show_import_wizard(). Don't get any args. - -2003-07-24 Ettore Perazzoli <ettore@ximian.com> - - * main.c: Remove the global evolution_directory variable. - (main): Just declare, assign and free the evolution_directory - variable here. Also, use g_idle_add() instead of gtk_idle_add(). - (idle_cb): Don't pass the evolution directory path to - e_shell_new() anymore, since that arg is gone. - - * e-shell.c: Remove member local_directory from EShellPrivate. - (impl_finalize): Don't free. - (e_shell_init): Don't NULL. - (e_shell_construct): Removed arg local_directory. - (e_shell_new): Likewise. - (e_shell_construct): Don't call e_setup_check_config() here. - (e_shell_get_local_directory): Removed. - -2003-07-24 Ettore Perazzoli <ettore@ximian.com> - - * main.c: Removed global variable "no_splash". - (idle_cb): Updated to not pass the splash argument to - e_shell_new(). - (main): Removed "--no-splash" option. - - * e-shell.c: Removed members storage_set, local_storage, - summary_storage, folder_type_registry, component_registry, - corba_storage_registry from struct EShellPrivate. - (setup_corba_storages): Removed. - (e_shell_construct): Don't invoke. - (setup_local_storage): Removed. - (e_shell_construct): Don't invoke. Also, removed initialization - for all the removed members. - (e_shell_new): No priv->storage_set anymore. - (e_shell_get_storage_set): Removed. - (e_shell_get_local_storage): Removed. - (e_shell_get_folder_type_registry): Removed. - (set_owner_on_components): Removed. - (set_interactive): Removed contents; do nothing for now. - (pop_up_activation_error_dialog): Removed. - (e_shell_construct): Removed arg show_splash. Do not create a - splash dialog at all. - (e_shell_new): Removed arg show_splash here as well. - (e_shell_construct): No folder type registry handling here - anymore. - (setup_components): Removed splash arg. - (save_settings_for_components): Removed. - (save_settings_for_component): Removed. - (save_misc_settings): Removed. - (e_shell_save_settings): Moved the code in here. - (e_shell_component_maybe_crashed): Removed. - (e_shell_send_receive): Removed. - (e_shell_get_component_registry): Removed. - (prepare_for_quit_callback): Removed. - - * evolution-storage-set-view.c: Removed from build. - * evolution-storage-set-view.h: Removed from build. - * evolution-storage-set-view-factory.c: Removed from build. - * evolution-storage-set-view-factory.h: Removed from build. - - * e-component-registry.c, e-component-registry.h: Removed from - build. - - * e-shell-folder-creation-dialog.c: Removed from build. - * e-shell-folder-creation-dialog.h: Removed from build. - - * e-shell-folder-selection-dialog.c: Removed from build. - * e-shell-folder-selection-dialog.h: Removed from build. - -2003-07-24 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c: Do not #include "e-shell-config.h". - - * main.c (idle_cb): Do not register the config factory. - - * e-shell.c: Removed members offline_handler, shortcuts and - corba_shortcuts from EShellPrivate. - (setup_shortcuts_interface): Removed. - (storage_set_moved_folder_callback): Removed. - (e_shell_construct): Don't connect. Also, no need to set up the - shortcuts either. - (e_shell_get_shortcuts): Removed. - (offline_procedure_started_cb): Removed. - (offline_procedure_finished_cb): Removed. - (e_shell_go_offline): Just assert for now. - (e_shell_go_online): Same. - - * e-shell-config-autocompletion.c: Removed. - * e-shell-config-autocompletion.h: Removed. - - * e-shell-config-default-folders.c: Removed. - * e-shell-config-default-folders.h: Removed. - - * e-shell-config-folder-settings.c: Removed. - * e-shell-config-folder-settings.h: Removed. - - * e-shell-config.c, e-shell-config.h: Removed. - - * e-corba-shortcuts.c, e-corba-shortcuts.h: Removed. - - * e-shortcuts-view-model.c, e-shortcuts-view-model.h: Removed. - - * e-shortcuts-view.c, e-shortcuts-view.h: Removed. - - * e-shortcuts.c, e-shortcuts.h: Removed. - - * e-shell-offline-handler.c, e-shell-offline-handler.h: Removed. - - * e-shell-offline-sync.c, e-shell-offline-sync.h: Removed. - - * e-shell-config-offline.c, e-shell-config-offline.h: Removed. - -2003-07-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c: Renamed signal "new_view_created" to - "new_window_created". Renamed "no_views_left" to - "no_windows_left". Renamed EShellPrivate member "views" to - "windows". Removed member user_creatable_items_handler. - (notify_no_windows_left_idle_cb): Renamed from - notify_no_views_left_idle_cb. Emit "no_windows_left". - (impl_Shell_createNewView): Raise an InternalError exception. - (window_delete_event_cb): Renamed from view_delete_event_cb. - (window_weak_notify): Renamed from view_weak_notify. - (create_view): Removed. - (create_window): New. Creates a new EShellWindow. - (e_shell_create_view): Removed. - (e_shell_create_window): New. - (e_shell_request_close_view): Removed. - (e_shell_request_close_window): New. - (e_shell_destroy_all_windows): Renamed from - e_shell_destroy_all_views. - (e_shell_component_maybe_crashed): Get an EShellWindow parameter, - instead of an EShellView. - (e_shell_go_offline): Likewise. - (e_shell_go_online): Likewise. - (e_shell_show_settings): Likewise. - (get_icon_path_for_component_info): Removed. - (setup_components): Do not do the user_creatable_items_handler - stuff here. - (e_shell_construct): Don't create the EUserCreatableItemsHandler - here. - (e_shell_get_user_creatable_items_handler): Crash when you get - here. - - * e-shell-user-creatable-items-handler.c: Removed. - * e-shell-user-creatable-items-handler.h: Removed. - * e-shell-shared-folder-picker-dialog.c: Removed. - * e-shell-shared-folder-picker-dialog.h: Removed. - * e-shell-view.c, e-shell-view.h: Removed. - * e-shell-view-menu.c, e-shell-view-menu.h: Removed. - * e-shell-folder-commands.c, e-shell-folder-commands.h: Removed. - * e-shell-importer.c, e-shell-importer.h: Removed. - - * main.c (new_window_created_callback): Renamed from - new_view_created_callback. - (window_map_callback): Renamed from view_map_callback. - (idle_cb): Connect to "new_window_created" instead of - "new_view_created". - (no_windows_left_cb): Renamed from no_views_left_cb. - (idle_cb): Connect to "no_windows_left" instead of - "no_views_left". - - * e-shell-offline-handler.c: Changed the type of the - parent_shell_view member of EShellOfflineHandlerPrivate to - GtkWindow and renamed it to parent_window. - (e_shell_offline_handler_put_components_offline): Just get a - GtkWindow arg instead of an EShellView arg. - -2003-07-24 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-client.c - (evolution_shell_client_create_storage_set_view): Just crash when - you get here. - (evolution_shell_client_get_pixbuf_for_type): Likewise. - (evolution_shell_client_set_line_status): Likewise. - (evolution_shell_client_get_local_storage): Likewise. - (evolution_shell_client_get_shortcuts_interface): Likewise. - (evolution_shell_client_get_storage_registry_interface): Likewise. - (evolution_shell_client_get_activity_interface): Likewise. - (evolution_shell_client_user_select_folder): Likewise. - (evolution_shell_client_new): Likewise. - (evolution_shell_client_construct): Likewise. - (query_shell_interface): Removed. - (init): Do nothing. - (class_init): Do nothing. - (unref_pixbuf): Removed. - (impl_dispose): Removed. - (impl_finalize): Removed. - (user_select_folder): Removed. - (count_string_items): Removed. - (create_folder_selection_listener_interface): Removed. - (init_FolderSelectionListener_vtables): Removed. - (impl_FolderSelectionListener_cancel): Removed. - (impl_FolderSelectionListener_selected): Removed. - (query_shell_interface): Removed. - - * e-shell.c (impl_Shell_getLocalStorage): Removed. - (impl_Shell_createStorageSetView): Removed. - (impl_Shell_getIconByType): Removed. - (impl_Shell_getComponentByType): Removed. - (impl_Shell_selectUserFolder): Removed. - (e_shell_class_init): Do not install removed method impls. - (folder_selection_dialog_cancelled_cb): Removed. - (folder_selection_dialog_folder_selected_cb): Removed. - - * Evolution-Shell.idl (getLocalStorage): Removed - (createStorageSetView): Removed. - (selectUserFolder): Removed. - (getIconByType): Removed. - (getComponentByType): Removed. - (FolderSelectionListener): Removed. - - * Evolution-Component.idl (requestQuit, interactive): New methods. - -2003-07-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c: Removed activity_handler member from EShellPrivate. - (setup_activity_interface): Removed. - (e_shell_construct): Don't call. - (create_view): Do not call e_activity_handler_attach_task_bar - here. - - * e-activity-handler.c, e-activity-handler.h: Removed. - -2003-07-24 Yuedong Du <yuedong.du@sun.com> - - * e-shell-offline-handler.c: (dialog_response_cb): fix crash when - user escape the dialog. see bug #46700. - -2003-07-23 Ettore Perazzoli <ettore@ximian.com> - - * e-folder.c (e_folder_new): Accept a NULL description. - - * main.c (idle_cb): Create a new EShellWindow and show it. - - * e-storage.c: New signal "async_open_folder". - (impl_async_open_folder): Removed. - (class_init): Declare new signal. - - * e-shell.c (setup_components): Don't actually activate any - components. - - * e-storage-browser.c, e-storage-browser.h: New. - - * e-shell-window.c, e-shell-window.h: New. - - * e-shell-marshal.list: Add an entry for - NONE:STRING,POINTER,POINTER. - - * Evolution.idl: Include Evolution-Component.idl. - - * Evolution-Component.idl: New interface for Evolution components. - -2003-07-23 Dan Winship <danw@ximian.com> - - * Makefile.am: Use EVO_MARSHAL_RULE - - * e-shell-importer.c (prepare_intelligent_page): Fix a warning - -2003-07-22 Antonio Xu <antonio.xu@sun.com> - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): connect - to "delete_event" signal with startup_wizard_delete. [#46284] - -2003-07-22 Antonio Xu <antonio.xu@sun.com> - - * e-shell-importer.c: (show_import_wizard): use - g_signal_connect_after to connect "prepare" signal. - (prepare_intelligent_page): Display some error log and disable - forward button rather than jump to finish page. [#46017] - -2003-07-15 Antonio Xu <antonio.xu@sun.com> - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): connect - "back" signal to back_finish_func in finish page. - (back_finish_func): handle "back" signal. - (prepare_importer_page): Jump to finish page when running equal zero. - [#46026] - -2003-07-17 Dan Winship <danw@ximian.com> - - * e-shell-user-creatable-items-handler.c (free_menu_items): free - the folder_type - - * e-splash.c (e_splash_new): Unref the pixbuf. - - * evolution-shell-component.c (impl_finalize): Add some missing - frees. - (user_creatable_item_type_free): free the tooltip - -2003-07-09 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (e_shell_command_rename_folder): Do - not overwrite an existing folder. Also, cleaned up the code a - bit. [#45982] - -2003-06-25 Chris Toshok <toshok@ximian.com> - - * e-config-upgrade.c: add general_map and a reference to it in - gconf_remap_list. Should fix 44477. - -2003-06-19 Dan Winship <danw@ximian.com> - - * e-folder-tree.c (e_folder_tree_add): Don't leak parent_path, - even on error - -2003-06-16 Frederic Crozat <fcrozat@mandrakesoft.com> - - * Makefile.am: - Add missing skel/stubs to BUILD_SOURCES (bug #44717). - -2003-06-05 Not Zed <NotZed@Ximian.com> - - ** For #42691. - - * Makefile.am (%.server.in): use implicit rule. - (BUILT_SOURCES): added server_DATA. - -2003-05-22 Not Zed <NotZed@Ximian.com> - - * e-config-upgrade.c (CONF_MAJOR, CONF_MINOR, CONF_REVISION): Set - to 1.4.0 for release. - -2003-06-10 Larry Ewing <lewing@ximian.com> - - * e-corba-storage-registry.c (listener_notify): don't leak nr.name. - diff --git a/shell/ChangeLog.pre-1-4 b/shell/ChangeLog.pre-1-4 deleted file mode 100644 index c7cfb0f830..0000000000 --- a/shell/ChangeLog.pre-1-4 +++ /dev/null @@ -1,15363 +0,0 @@ -2003-05-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Add Mark Gordon. - -2003-05-20 Ettore Perazzoli <ettore@ximian.com> - - [#43322] - - * e-shell-shared-folder-picker-dialog.c (storage_weak_notify): Set - the storage member to NULL. - (shell_weak_notify): Set the shell member to NULL. - (cleanup_discovery): g_object_weak_unref() shell, parent and - storage. - -2003-05-19 Ettore Perazzoli <ettore@ximian.com> - - * main.c: Removed "forced_upgrade" unused variable. - (show_development_warning): Put in a DEVELOPMENT_WARNING cpp - conditional. - (warning_dialog_response_callback): Likewise. - (view_map_callback): Likewise. - (new_view_created_callback): Likewise. - (idle_cb) [DEVELOPMENT_WARNING]: Do not connect - new_view_created_callback() to the "new_view" shell signal - anymore. - - * Makefile.am (install-evolution) [DEFAULT_BINARY]: Make a - symbolic link from evolution to evolution-$(BASE_VERSION). - - [#43216] - - * e-shell-folder-creation-dialog.c (dialog_data_destroy): - g_object_weak_unref shell and dialog if they are not NULL. - (dialog_destroy_notify): Set ->dialog to NULL in all cases. - -2003-05-19 Anna Marie Dirks <anna@ximian.com> - - * e-corba-config-page.c: Remove some padding which I incorrectly - added to the wrong vbox. This shoulda been fixed in - widgets/misc/e-multi-config-dialog.c . (And it is, now.) - -2003-05-17 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (e_storage_set_view_set_show_checkboxes): - Reallocate the "expansions" member of ETreeState as well, to avoid - a memory error. [#43119] - -2003-05-15 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (parse_default_uri): Protect against the component - name having slashes in it. - - * e-shell-view.c (display_uri): Protect against invalid "default:" - URIs. [#43079] - -2003-05-15 Rodrigo Moya <rodrigo@ximian.com> - - * main.c: #ifdef'ed wombat killing code, depending on whether - KILL_PROCESS_CMD is defined or not. - (kill_wombat): kill also the alarm daemon process. - -2003-05-15 Ettore Perazzoli <ettore@ximian.com> - - [Patch from Antonio Xu <antonio.xu@sun.com>, #42491] - - * e-config-upgrade.c (upgrade_xml_1_2_rec): Make it compile on - Forte. - -2003-05-14 JP Rosevear <jpr@ximian.com> - - * e-shell.c (save_settings_for_component): release the interface - if we got it - - * e-shell-view.c: include bonobo-exception.h - (impl_dispose): release and unref the shell view corba interface - (init): init to CORBA_OBJECT_NIL - (e_shell_view_get_corba_interface): return the corba interface - (setup_corba_interface): release the existing shell view, add as - an interface and then query to get it back - (get_view_for_uri): release and unref the control once we create - the widget with it - - * e-corba-storage.c (storage_listener_servant_new): don't ref ourselves - (storage_listener_servant_free): don't unref ourselves - (impl_dispose): free the servant info - - * e-corba-storage-registry.c - (impl_StorageRegistry_getStorageByName): we need to ref as well as - duplicate since we didn't create the storage here - -2003-05-09 Jeremy Katz <katzj@redhat.com> - - * main.c: Add a #include to fix a warning. - - * e-shell-offline-handler.c (update_dialog_clist): Use a list - store instead of a tree model for the store. - -2003-05-08 Ettore Perazzoli <ettore@ximian.com> - - [#42342] - * e-shell-view.c (update_send_receive_sensitivity): New function - to update the Send/Receive menu and toolbar items according to the - current line status. - (e_shell_view_construct): Call it here to set up the initial - state. - (shell_line_status_changed_cb): Use it here as well. - -2003-05-08 Ettore Perazzoli <ettore@ximian.com> - - [#36956] - * e-shell-view.c (update_for_current_uri): Remove the version - number from the window title. - - [#42518] - * e-shell-view.c (handle_current_folder_removed): Casefold the - Inbox name only once, instead of once per iteration. Removed the - spurious slash that was being passed in the path in the Inbox case - and prevented it from working. Added missing slash in the path - for the storage case. Casefold the path including the slash, - since we compare against a string that does include the slash. - (storage_set_removed_folder_callback): Remove the notebook page - before calling handle_current_folder_removed(), instead of after; - otherwise, the notebook page number we have might not be valid - anymore. - - * e-shell-folder-creation-dialog.c (setup_dialog): Set the default - response for the dialog to GTK_RESPONSE_OK. - -2003-05-07 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar): - Do use the supplied folder_path to determine the unread count, if - not NULL. [#42465] - -2003-05-07 JP Rosevear <jpr@ximian.com> - - * e-shell-folder-commands.c (delete_dialog): don't pass - NO_SEPARATOR flag as per gtkmessagedialog warning - -2003-05-02 Not Zed <NotZed@Ximian.com> - - * e-shell-about-box.c (text[]): grepped changelogs and added all - names found. #40391. - -2003-05-01 Dan Winship <danw@ximian.com> - - * glade/e-shell-shared-folder-picker-dialog.glade: Don't expand - the select-names entry, because we don't want it as tall as the - button. - -2003-04-30 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Set the default - response to GTK_RESPONSE_OK. - -2003-04-29 Rodney Dawes <dobey@ximian.com> - - * Makefile.am: Fix install of evolution - -2003-04-28 Not Zed <NotZed@Ximian.com> - - [#41013] - - * e-shell-importer.c (html_size_req): removed. - (create_help): renamed from create_html. Only creates a plain - label widget now, with line wrap turned on. Also make the - g_return an assert, it failing is entirely based on internal code. - (show_import_wizard): s/create_html/create_help/g - - [#41648] - - * e-config-upgrade.c (upgrade_xml_file): upgrade_xml_file_1_0 made - a bit more generic, this handles io, a callback handles xml - changes. - (is_xml1encoded): new function to tell if a string is in gal's - xml1 'encoded' format, or raw locale text. - (decode_xml1): decode xml1 encoded format to valid utf8. - (upgrade_xml_1_2_rec): upgrades xml1 encoded or badly encoded xml - content for specific parent->child nodes. - (CONF_REVISION): bump the config revision to 1.3.1. - (e_config_upgrade): if config revision < 1.3.1, then check xml - files for xml1 content. - -2003-04-28 Rodney Dawes <dobey@ximian.com> - - * Makefile.am: Fix up some stuff for the nognome script - * evolution-nognome.in: Fix up nognome script for Sun GNOME2 - -2003-04-28 Rodrigo Moya <rodrigo@ximian.com> - - Fixes #41916 - - * evolution-storage.c (get_folder_list_foreach): removed comment which - does not apply any more. - (impl_Storage__get_folderList): set sequence's maximum number of items - to e_folder_tree_get_count as is. - -2003-04-28 Ettore Perazzoli <ettore@ximian.com> - - Patch from Sanshao Jiang <alex.jiang@sun.com>. - - [#41484] - - * main.c (main): Add e_proxy_init() - -2003-04-24 Dan Winship <danw@ximian.com> - - * evolution-shell-component.c (impl_setOwner): Comment out the - pinging code again since it's only being used by Connector, where - it's triggering an unrelated bug. - -2003-04-25 Ettore Perazzoli <ettore@ximian.com> - - [#41059] - - * e-corba-storage.c (async_open_cb): Added a missing unref of the - storage in the closure. - (async_open_folder_idle): Add the pending open to the pending open - list before calling asyncOpenFolder, instead of after. - -2003-04-23 Not Zed <NotZed@Ximian.com> - - * e-local-storage.c (load_folder): cast to remove warning. - (construct): set a physiucal uri on the root folder, so we dont - get warnings when we add it later. - -2003-04-22 Anna Marie Dirks <anna@ximian.com> - - * e-shell-settings-dialog.c (init): Add appropriate padding - to the Evolution Settings window. This is another bit of the - fix for #41392. - - * e-corba-config-page.c (e_corba_config_page_construct): Add - appropriate padding to the corba_config_page widget. Partial - fix for #41392. - -2003-04-23 Anna Marie Dirks <anna@ximian.com> - - * glade/e-folder-list.glade: replaced buttons with stock buttons - and added HIG-blessed spacing. Fixes 41145. - -2003-04-22 Anna Marie Dirks <anna@ximian.com> - - * e-shortcuts-view.c - (destroy_group_cb): Set the border width of the message dialog - to 6. Also corrected the capitalization for "Remove Shortcut - Dialog". Fixes 41569 - (show_new_group_dialog): Fixed the title of "Create New Shortcut - Group" . Partially fixes 41038. - (rename_shortcut_cb): Corrected the label capitalization for - Rename dialog. Fixes 41567. - -2003-04-21 Chris Toshok <toshok@ximian.com> - - * e-folder-list.c (e_folder_list_parse_xml): this should never - happen unless you're really trying, but don't crash if the xml - setting is malformed. - -2003-04-21 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (create_folder_directory): Don't signal an - error if mkdir() returns EEXIST. This should at least help with - situations like the one described in #40989. - -2003-04-21 Anna Marie Dirks <anna@ximian.com> - - * e-shell-folder-commands.c (delete_dialog): Corrected border - with for Delete Folder dialog. Fixes 41036. - (e_shell_command_copy_folder): Corrected capitalization of the "Copy - Folder" window title. Partial fix for 41025. - (e_shell_command_move_folder): Corrected the capitalization of the - "Move Folder" dialog. Fixes 41024. - - -2003-04-21 Anna Marie Dirks <anna@ximian.com> - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Added appropriate border - width to the folder selection dialog. Fixes 41022, 41146, 41147, - 41010, partially fixes 41025. - - -2003-04-21 Anna Marie Dirks <anna@ximian.com> - - * glade/evolution-startup-wizard.glade: Added spacing/padding to - first-run dialog. Fixes 41242. - -2003-04-21 Anna Marie Dirks <anna@ximian.com> - - * glade/e-shell-folder-creation-dialog.glade: Misc HIG-related tweaks, - mostly spacing and padding related. Fixes 41008. - - * e-shell-folder-creation-dialog.c (add_storage_set_view): Added - appropriate spacing to the main vbox of the folder creation dialog. - Partially fixes 41008. - -2003-04-21 Anna Marie Dirks <anna@ximian.com> - - * glade/e-shell-config-default-folders.glade: Added appropriate - spacing/padding to the default folder pages of the settings dialog. - Partial fix for 41128. - - -2003-04-21 Anna Marie Dirks <anna@ximian.com> - - * glade/e-active-connection-dialog.glade: Fixed padding/spacing/caps - of the "Go Offline" dialog. Fixes 41225 and 41227. - -2003-04-18 Rodney Dawes <dobey@ximian.com> - - * e-shell-view.c: Use PREFIX instead of EVOLUTION_DATADIR for - bonobo_ui_util_set_ui () [#21499] - -2003-04-17 Dan Winship <danw@ximian.com> - - * e-shell-folder-creation-dialog.c (add_folder_types): If the - default_type is "foo/bar" and "foo" appears in the list but - "foo/bar" doesn't, use "foo" as the default type. [#41468] Also, - remove a workaround for a gtk 1.2 bug. - -2003-04-16 Dan Winship <danw@ximian.com> - - * e-corba-storage.c (async_create_folder): If the new folder's - parent has unresolved children, async_open the parent first, then - create the new folder. [#41413] - (async_create_folder, async_remove_folder, async_xfer_folder, - async_open_folder, async_discover_shared_folder, - async_remove_shared_folder): Ref the storage. - (async_folder_cb, async_folder_discovery_cb): Unref it - -2003-04-16 Jeffrey Stedfast <fejj@ximian.com> - - * e-config-upgrade.c: Turn off debugging. Fixes bug #41469. - -2003-04-16 Ettore Perazzoli <ettore@ximian.com> - - * apps_evolution_shell.schemas: Increase the default value for - /schemas/apps/evolution/shell/view_defaults/folder_bar/width to - 200. [#41002] - - * evolution-shell-component.c (owner_ping_callback): Enable this - again. - (setup_owner_pinging): Same. - (impl_setOwner): Check if the shell is in-process and, if so, call - setup_owner_pinging(). - -2003-04-15 Hans Petter Jansson <hpj@ximian.com> - - * e-setup.c (e_setup_check_config): Free the temporary string. - - * e-shell-user-creatable-items-handler.c (append_xml_for_menu_item): - Free the icon xml string. - - * e-shell.c (parse_default_uri): Free the component name, the - configuration path and the temporary path. - -2003-04-15 Dan Winship <danw@ximian.com> - - * e-folder.c (e_folder_get_has_subfolders, - e_folder_set_has_subfolders): new boolean flag. - - * e-storage.c (EStoragePrivate, impl_finalize, init): Remove the - pseudofolders hash - (e_storage_async_open_folder): Replace the pseudofolders test with - a test of whether the folder has the "has_subfolders" flag set. - (e_storage_new_folder): Likewise (for the folder's parent). - (e_storage_declare_has_subfolders): Set "has_subfolders" on the - folder. - (e_storage_get_has_subfolders): Check "has_subfolders" on the - folder. - Should fix #33919. - -2003-04-14 Not Zed <NotZed@Ximian.com> - - * glade/e-active-connection-dialog.glade: fix the title of the - dialogue box. #41304. - -2003-04-09 Dan Winship <danw@ximian.com> - - * e-folder-list.c: Update for e_option_menu prototype - constification - -2003-04-08 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c (setup_bonobo_conf_private_directory): Removed. - (e_setup): Do not call here. Also, removed hacks for - ~/evolution/config and ~/evolution/local/Trash. - -2003-04-08 Dan Winship <danw@ximian.com> - - * main.c (main): Add a "--setup-only" flag, to just run e_setup() - and exit. (For #40889) - - * glade/evolution-startup-wizard.glade: Remove the color specs so - the druid will use theme colors - - * importer/import.glade: Likewise - -2003-04-08 Ettore Perazzoli <ettore@ximian.com> - - [#40912] - - * e-shell-folder-selection-dialog.c (impl_dispose): - g_object_weak_unref() the shell here. - -2003-04-07 Dan Winship <danw@ximian.com> - - * evolution-storage.c (evolution_storage_class_init): Fix arg - types on REMOVED_SHARED_FOLDER signal. #40888 - - * evolution-folder-selector-button.c (clicked): Desensitize the - window's top-level container rather than desensitizing the window - itself, which causes strange problems [#40854]. Also fix up the - code that tries to watch for the parent window being destroyed. - - * e-shell.c (impl_Shell_selectUserFolder): Use - e_dialog_set_transient_for_xid. - - * e-shell-folder-selection-dialog.c (impl_response): Treat - GTK_RESPONSE_DELETE_EVENT the same as GTK_RESPONSE_CANCEL. - (e_shell_folder_selection_dialog_construct): No need to catch - "delete_event" signal. - -2003-04-07 Dan Winship <danw@ximian.com> - - * Makefile.am ($(server_in_files)): Substitute version number into - the evolution binary name in the server file - (INCLUDES): define EVOLUTION_TOOLSDIR - - * GNOME_Evolution_Shell.server.in.in: Clean up server names. Add - "-@VERSION@" to the end of the shell binary name - - * main.c (main): if KILL_PROCESS_CMD is defined, add a - --force-shutdown argument that runs killev and exits. - -2003-04-07 Not Zed <NotZed@Ximian.com> - - [#40536] - - * evolution-shell-component.c (impl_interactive): If going - interactive, track the view id in a private area. - (evolution_shell_component_get_parent_view_xid): Accessor method - to retrieve the current view xid. - -2003-04-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (update_window_icon): Get the large version of - the icon instead of the small one, so it works more nicely with - modern WMs. - -2003-04-04 Ettore Perazzoli <ettore@ximian.com> - - [#40413] - - * e-shell-folder-selection-dialog.c: Define RESPONSE_NEW for the - "New" button in the dialog. - (impl_response): Handle RESPONSE_NEW. - (e_shell_folder_selection_dialog_construct): Add the "new" button - with RESPONSE_NEW response_id. - -2003-04-04 Ettore Perazzoli <ettore@ximian.com> - - [#40748] - - * apps_evolution_shell.schemas: Remove the icon_modes schema. - - * e-shell-view.c (setup_defaults): Don't set the icon modes from - GConf, they are already stored in the shortcuts.xml file. - (e_shell_view_save_defaults): Likewise, don't set it here. - - * e-config-upgrade.c: Remove translation from - ShortcutBarGroup%iIconMode to - shell/view_defaults/shortcut_bar/icon_types. - -2003-04-02 Rodrigo Moya <rodrigo@ximian.com> - - * importer/GNOME_Evolution_Importer.idl: - * importer/evolution-importer.[ch]: added "foldertype" argument to - GNOME::Evolution::Importer. - - * importer/evolution-importer-client.[ch] - (evolution_importer_client_load_file): added "folder_type" argument - and use it in the call to GNOME_Evolution_Importer_loadFile. - - * e-shell-importer.c (start_import): added "folder_type" argument and - use it in the call to evolution_importer_client_load_file. - (folder_selected): pass in the "folder_type" argument to start_import, - -2003-04-02 Not Zed <NotZed@Ximian.com> - - [#40652] - - * e-shell-view.c (setup_widgets): Pack the folder and shortcut - bars into the paned as sizeable. - - [#39467] - - * e-shell.c (e_shell_construct): Change the splash logic slightly, - so that if we can't create the splash, we dont try and cast/use - it. - * e-splash.c (e_splash_new): dont use a g_return* for what could - be a valid (tho incorrect) runtime condition. - - [#40590] - - * e-config-upgrade.c (identity_map[]): Move the signature stuff to - a child node. - (identity_sig_map[]): Define the signature node. Fix - *autogenerated_signature_%i to map to "auto". - -2003-04-01 Not Zed <NotZed@Ximian.com> - - [#40474] - - * e-config-upgrade.c (gconf_remap_list[]): The summary settings - start at "My-Evolution", not "/My-Evolution". - (import_bonobo_config): Same for mail summary settings, and hex - decode the string for the strlist. Add a few extra debug - printf's. - -2003-03-28 Ettore Perazzoli <ettore@ximian.com> - - [#40377] - - * main.c (kill_old_wombat): New. - (kill_wombat): New. - (idle_cb): Call kill_old_wombat(). - -2003-03-27 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c (update_dialog_tree_view): Renamed - from update_dialog_clist, Ported to GtkTreeView. - (update_dialog_tree_view_hash_foreach): Likewise. - - * glade/e-active-connection-dialog.glade: Rename - "active_connection_clist" to "active_connection_treeview". - -2003-03-27 Not Zed <NotZed@Ximian.com> - - * e-shell-about-box.c: Make Radek's surname correct, Doulík, - inserted utf8 into the name string. For bug #17034. - -2003-03-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (e_shell_view_construct): Pass "evolution-1.4" as - the app name to bonobo_ui_util_set_ui() instead of "evolution". - -2003-03-26 Ettore Perazzoli <ettore@ximian.com> - - [Shell part of #7153.] - - * e-local-storage.c (load_folder): Call e_storage_new_folder() - instead of new_folder() here so the folder doesn't get added to - the EvolutionStorage. Since the EvolutionStorage has its own - CORBAfied copy of the folder info [sigh] and it can't be updated, - we have to set up the EvolutionStorage after setup_stock_folders() - has been called. - (setup_corba_storage): New function to set up the CORBA storage. - (load_all_folders): Call setup_corba_storage() after - setup_stock_folders(). - -2003-03-25 Not Zed <NotZed@Ximian.com> - - * e-shell-settings-dialog.c (set_dialog_size): Use - set_default_size instead of size_request so we allow the user to - resize the window. Also try using 60x30 rather than 72x35 as the - approximate font cell size. For bug #39706. - -2003-03-25 Dan Winship <danw@ximian.com> - - * e-folder-dnd-bridge.c: Update for e_notice move. - * e-setup.c: Likewise - * e-shell-folder-commands.c: Likewise - * e-shell-folder-creation-dialog.c: Likewise - * e-shell-offline-sync.c: Likewise - * e-shell-shared-folder-picker-dialog.c: Likewise - * e-shell-view-menu.c: Likewise - * e-shell.c: Likewise - * evolution-shell-component-utils.c: Likewise - - * Makefile.am (libeshell_la_LIBADD): libeshell depends on - libeutil. - - * e-corba-storage.c: Fix warnings - - * glade/evolution-startup-wizard.glade: Fix colors again - -2003-03-25 Dan Winship <danw@ximian.com> - - * Evolution-ShellComponent.idl (interactive): add a "new_view_xid" - arg, so the component has a window id to make use of as a parent - if it needs to pop up a dialog. - - * e-shell.c (set_interactive): Pass the new_view_xid when going - interactive. - (e_shell_set_interactive): Remove this since it wasn't being used, - and couldn't be used for anything except lying to the components. - - * evolution-shell-component.c - (evolution_shell_component_class_init): Update "interactive" - signal definition - (impl_interactive): Update prototype and signal emission - - * e-shell-marshal.list (NONE:BOOL,INT): add - -2003-03-21 Dan Winship <danw@ximian.com> - - * e-corba-storage.c (async_open_folder_idle): If we get a second - request to open a folder we're already waiting for, don't send a - second CORBA request, just remember the additional request. - (async_open_cb): Call the callbacks for all pending requests for - this folder. - (init): grumble-grumble-non-g_new0-using-people-grumbe - -2003-03-20 JP Rosevear <jpr@ximian.com> - - * e-shell-view-menu.c: remove unused command - -2003-03-19 Not Zed <NotZed@Ximian.com> - - * e-config-upgrade.c (e_config_upgrade): Added some more doco just - to make it clear how it was intended to be used/expanded. - -2003-03-18 Ettore Perazzoli <ettore@ximian.com> - - * importer/evolution-importer.c - (impl_GNOME_Evolution_Importer_loadFile): Get a physical_uri arg - instead of a folderpath arg. - - * importer/evolution-importer-client.c - (evolution_importer_client_load_file): Get a physical_uri arg. - - * e-shell-importer.c (start_import): Get a physical_uri arg - instead of a folderpath. - (folder_selected): Updated accordingly. - -2003-03-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c (get_name_from_component_info): Look for the - "evolution:menu_name" property instead of "evolution:menu-name". - [#39692] - -2003-03-19 Ettore Perazzoli <ettore@ximian.com> - - * evolution-folder-selector-button.c (set_folder): If you can't - get a pixbuf icon for the folder's type, do not crash. [#39599] - - * e-shell.c (impl_Shell__get_displayName): Removed. [#38974] - (e_shell_class_init): Do not install anymore. - - * Evolution-Shell.idl: Remove displayName attribute. - -2003-03-18 Ettore Perazzoli <ettore@ximian.com> - - * importer/evolution-importer.c - (impl_GNOME_Evolution_Importer_loadFile): Get a physical_uri arg - instead of a folderpath arg. - - * importer/evolution-importer-client.c - (evolution_importer_client_load_file): Get a physical_uri arg. - - * e-shell-importer.c (start_import): Get a physical_uri arg - instead of a folderpath. - (folder_selected): Updated accordingly. - -2003-03-14 Dan Winship <danw@ximian.com> - - * e-storage.c (e_storage_get_has_subfolders): Add - (e_storage_declare_has_subfolders): Rename from - e_storage_has_subfolders to make it clearer that this is a setter, - not a getter. (Can't call it e_storage_set_has_subfolders because - that sounds like it belongs in e-storage-set.) - - * e-corba-storage.c (impl_StorageListener_notifyHasSubfolders): - update for e_storage_declare_has_subfolders name change - (get_folder): Override the default EStorage implementation: if - asked for a folder under a not-yet-expanded folder, attempt to - force the parent(s) to expand so that the child is available. - Fixes part of #30415 - -2003-03-14 Dan Winship <danw@ximian.com> - - * Evolution-Storage.idl (asyncOpenFolder): add a Bonobo::Listener - to this like the other async interfaces, rather than having a - hacky way to signal failure. - - * evolution-storage.c (impl_Storage_asyncOpenFolder): Update to - take a listener and emit it as part of the signal - (evolution_storage_class_init): update OPEN_FOLDER signal - prototype. - - * e-shell-marshal.list (NONE:POINTER,STRING): add, for changed - EvolutionStorage open_folder signal - - * e-storage.c (e_storage_async_open_folder): add a callback arg - (impl_async_open_folder): call the callback with NOTIMPLEMENTED. - (class_init): remove the CLOSE_FOLDER signal - (e_storage_has_subfolders): Don't emit CLOSE_FOLDER since it - doesn't exist any more, and this function is used for that side - effect any more anyway. - - * e-corba-storage.c (async_open_folder): add the callback arg and - create a proper closure. - (async_open_folder_idle): Call the callback in case of error. - Create a listener and pass that to the CORBA call. - (async_open_cb): Listener callback. - - * e-storage-set.c (storage_set_view_folder_opened): Pass a - callback to e_storage_async_open_folder. - (async_open_cb): emit CLOSE_FOLDER if the open failed - (storage_close_folder_cb): Remove this since the signal no longer - exists. - -2003-03-11 Dan Winship <danw@ximian.com> - - * e-shell-startup-wizard.c (start_wizard): If the wizard factory - returns NULL, we'll get a NIL wizard but no exception. Deal with - that case. (ie, try the next wizard). - (finish_func): Simplify for e-timezone-dialog changes. - (prepare_timezone_page): If there is already a timezone set in - gconf, set the map to point to it. (For connector autoconfig.) - -2003-03-07 Not Zed <NotZed@Ximian.com> - - ** reverted the following patch from ettore, this is a gnome 2.2 - api change, and shouldn't be used yet. - - * e-shell.c (impl_finalize): Use - bonobo_activation_unregister_active_server() instead of - bonobo_activation_active_server_unregister(). - (e_shell_construct): Use - bonobo_activation_register_active_server() instead of - bonobo_activation_active_server_register(). - -2003-03-04 Not Zed <NotZed@Ximian.com> - - * main.c (show_development_warning): Separated the current stable - version number from the warning prompt, and fixed a minor - grammatical error. For bug #38775. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_selectUserFolder): At least for now, - disable the nasty XWMHints trick to fool WMs; it is not needed now - that everything is in-proc. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-utils.c (e_shell_folder_name_is_valid): Do not allow - names with a "#" in them either. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (update_other_users_folder_items_sensitivity): - New function to toggle the "open other user's folder" menu item - sensitivity on or off depending on whether there are any storages - that actually support that. - (storage_set_removed_storage_callback): New callback for the - EStorageSet's "removed_storage" signal; it updates the sensitivity - if necessary. - (storage_set_new_storage_callback): Likewise, new callback for the - EStorageSet's "new_storage" signal. - (e_shell_view_construct): Connect these two signal callbacks here. - Also, call update_other_users_folder_items_sensitivity() to set up - the initial sensitivity of the menu item. - (update_for_current_uri): Add a missing EStorageSetView cast here. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - [#34371] - - * e-shell-shared-folder-picker-dialog.c - (folder_name_entry_changed_callback): New callback to set the - sensitivity of the OK button according to whether the folder name - entry is empty or not. - (show_dialog): Connect here. Pop up an error message if no user - is selected. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_finalize): Use - bonobo_activation_unregister_active_server() instead of - bonobo_activatino_active_server_unregister(). - (e_shell_construct): Use - bonobo_activation_register_active_server() instead of - bonobo_activation_active_server_register(). - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c (IN): Use G_GNUC_FUNCTION instead of - __FUNCTION__. - (OUT): Likewise. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - Patch from Not Zed <NotZed@Ximian.com>: - - * main.c (show_development_warning): Separated the current stable - version number from the warning prompt, and fixed a minor - grammatical error. For bug #38775. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-config-upgrade.c (import_bonobo_config): Protect from val - being NULL when printf()ing -- should fix #39096 (Solaris-specific - crash). - -2003-03-05 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Added icon for "/popups/NewPopup/Folder". - -2003-03-05 Ettore Perazzoli <ettore@ximian.com> - - * importer/Makefile.am (BUILT_SOURCES): $(IDL_GENERATED), not - $(IDL_GENERATED_H). - (CLEANFILES): Make the same as $(BUILT_SOURCES). - (GNOME_Evolution_Importer-impl.o): Removed useless rule. - -2003-03-04 Mike Kestner <mkestner@ximian.com> - - * e-shell-view.c (update_for_current_uri): only set current - folder when the folder_path is different from the current folder. - -2003-03-04 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-dnd-bridge.c (find_matching_target_for_drag_context): - Handle p->data as a GdkAtom instead of a GdkAtom *. - (handle_data_received_non_path): Set the target member of the - corba_data struct to be the name of the atom. - - * e-storage-set-view.c (impl_tree_drag_data_get): Pass the name of - the atom instead of the atom itself. - - * Evolution-ShellComponentDnd.idl: Changed the type of Data.target - to string. - -2003-03-03 Ettore Perazzoli <ettore@ximian.com> - - * glade/e-shell-shared-folder-picker-dialog.glade: Swap Cancel/OK - buttons as per the HIG. Also added proper response_ids. - -2003-03-03 Ettore Perazzoli <ettore@ximian.com> - - * evolution-folder-selector-button.c (impl_finalize): Protect - against priv->possible_types being NULL. - -2003-02-27 Rodney Dawes <dobey@ximian.com> - - * Makefile.am (evolution_SOURCES): Add e-config-upgrade.h - -2003-02-26 Chris Toshok <toshok@ximian.com> - - * e-folder-list.c (e_folder_list_parse_xml): make this more robust - - only assume it's a folderlistitem node if the name of the node - is "folder". - -2003-02-26 Jeffrey Stedfast <fejj@ximian.com> - - * e-config-upgrade.c: Change the type of load_http_images to INT - rather than BOOL. Fixes bug #38767. - -2003-02-26 Dan Winship <danw@ximian.com> - - * e-shell-startup-wizard.c (start_wizard): New routine to attempt - to start each available startup wizard in priority order, and - return once it has successfully started one. (Allows Connector, - etc, to override the mailer startup wizard.) - (make_corba_dialog_pages): Use it. - -2003-02-26 Not Zed <NotZed@Ximian.com> - - * apps_evolution_shell.schemas: Added a key for - /apps/evolution/version - seems the best place to put it. This - should not return any value if unset, so i'm not sure if this is - the right mechanism ... - - * e-config-upgrade.c: Upgrade settings from earlier versions of - evolution. - - * main.c (upgrade_from_1_0_if_needed): Removed. - (main): Call e_config_upgrade before going into gmainloop. - (main): Turn off the --force-upgrade option, since it doesn't work - yet ... - -2003-02-25 Dan Winship <danw@ximian.com> - - * Evolution-Wizard.idl: Change this to let the Wizard provide an - array of title/icon/control triplets, instead of just controls, so - the shell doesn't need to know the name of each page a priori. - - * glade/evolution-startup-wizard.glade: Remove the mailer-specific - pages, which are now inserted at run time based on info from the - mailer. - - * evolution-wizard.c: Update for new idl. - (evolution_wizard_new): Now takes no arguments. - (evolution_wizard_add_page): New function to add page info to the - wizard. - - * e-shell-startup-wizard.c: Various renamings to make this - slightly less mailer-centric, though it still explicitly launches - the mailer startup wizard. - (make_corba_page): Replaces make_identity_page, make_receive_page, - etc. Uses the new Wizard idl to generically create a page and - insert it into the druid. - (e_shell_startup_wizard_create): Update - -2003-02-25 Dan Winship <danw@ximian.com> - - * e-shell-startup-wizard.c (connect_page, make_importer_page): Use - g_signal_connect_after to connect to the "prepare" signal to work - around a GnomeDruidPageStandard bug (b.g.o 81869) - (e_shell_startup_wizard_create): Remove the "return TRUE" that was - added here a while back to disable the startup wizard. - - * glade/evolution-startup-wizard.glade: Change "Next" and "Finish" - in the text to "Forward" and "Apply" to match the gnome 2 druid - buttons. - -2003-02-24 Rodney Dawes <dobey@ximian.com> - - * e-shell-view.c: Doh, forgot to remove the e-gray-bar.h include - -2003-02-24 Rodney Dawes <dobey@ximian.com> - - * Makefile.am: We don't need e-gray-bar.[ch] anymore - * e-gray-bar.[ch]: Remove these unused files now - * e-shell-folder-title-bar.c: We are themeable now!!!! - Use GtkArrows now instead of pixmaps - Get rid of the hardcoded colors - Add an expose_event to paint a flat box for the background - * e-shell-view.c: Don't need e-gray-bar anymore - -2003-02-24 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (impl_populateFolderContextMenu): - Don't release_unref the corba_uih since - bonobo_ui_component_set_container() takes ownership of the object - without reffing it. - -2003-02-24 Ettore Perazzoli <ettore@ximian.com> - - * glade/e-active-connection-dialog.glade: Update dialog to use - stock response IDs. - -2003-02-20 Not Zed <NotZed@Ximian.com> - - * main.c (upgrade_from_1_0_if_needed): fix the conf keys, currently unused. - - * e-shell.c (save_settings_for_component): lower-case the config prefix. - -2003-02-20 Dan Winship <danw@ximian.com> - - * Makefile.am (evolution_LDADD): - s/libemiscwidgets.a/libemiscwidgets.la/ and likewise for - libetimezonedialog - -2003-02-18 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts.c (shortcut_item_new): Get the name from the name, - not the type. Fixes #37952, pointed out by Lonnie Borntreger. - -2003-02-17 Chris Toshok <toshok@ximian.com> - - * e-shortcuts.c (load_shortcuts): plug memory leak - free path. - -2003-02-13 Ettore Perazzoli <ettore@ximian.com> - - [Ported SIGSEGV signal redirection hack from mail/.] - - * main.c (segv_redirect): New, SIGSEGV signal handler. - (setup_segv_redirect): New function to set it up. - (main): Call setup_segv_redirect(). - -2003-02-12 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c (DEFAULT_USER_PATH): Look into evolution/$BASE_VERSION - instead of evolution-$BASE_VERSION. - -2003-02-11 Joe Shaw <joe@ximian.com> - - * main.c (show_development_warning): Suggest people use 1.2.x instead - of 1.0.x. - -2003-02-09 Larry Ewing <lewing@ximian.com> - - * e-local-storage.c (remove_folder_directory): fix length calculation. - (create_folder_directory): remove alloca usage, clears up crash. - -2003-02-07 Larry Ewing <lewing@ximian.com> - - * e-shell-folder-creation-dialog.c - (folder_name_entry_activate_cb): add an activate handler that - returns a response OK if the OK response would be active. - -2003-02-06 Dan Winship <danw@ximian.com> - - * evolution-test-component.c (main): s/PACKAGE/GETTEXT_PACKAGE/ in - gettext init. - -2003-02-06 Not Zed <NotZed@Ximian.com> - - * e-shortcuts-view.c (class_init): use POINTER_STRING_BOOL for - activate_shortcut. - - * e-shell-marshal.list: Added NONE,STRING,BOOL, and - POINTER,STRING,BOOL, removed POINTER,STRING,INT - - * evolution-shell-view.c (evolution_shell_view_class_init): Use - STRING_BOOL for the set_message signal to match rest of command. - - * e-shell-marshal.list: Added NONE,STRING,STRING,STRING - - * evolution-shell-component.c - (evolution_shell_component_class_init): Change the - user_create_new_item marshaller to STRING_STRING_STRING to match - the rest of the call. The 'new' button should work now. - - * e-setup.c (copy_default_stuff): We want to copy whats in the - default user dir, not the default user dir. - -2003-02-05 Dan Winship <danw@ximian.com> - - * Makefile.am (INCLUDES): Define EVOLUTION_IMAGES using - $(imagesdir). Define EVOLUTION_GLADEDIR using $(gladedir) - (eshellincludedir): Define in terms of $(privincludedir) - (evolution_LDFLAGS): Remove this. gmodule-2's LDFLAGS include the - equivalent of -export-dynamic for us. - (serverdir, etspecdir): Remove. Defined in configure.in now. - - * e-folder.c: #include <string.h> - * e-corba-config-page.c: Likewise - * e-shell-config.c: Likewise - * e-shell-folder-creation-dialog.c: Likewise - * e-shell-folder-title-bar.c: Likewise - * e-shell-startup-wizard.c: Likewise - * evolution-activity-client.c: Likewise. - * evolution-shell-component-client.c: Likewise - * evolution-shell-component-utils.c: Likewise - * evolution-storage.c: Likewise - * evolution-test-component.c: Likewise - - * e-shortcuts-view.c (destroy_group_cb): Remove unused variable - - * importer/Makefile.am (INCLUDES): Remove -I$(includedir). Define - EVOLUTION_GLADEDIR using $(gladedir). - (libevolution_importerincludedir): Define in terms of - $(privincludedir) - (gladedir): Removed. Defined in configure.in now. - - * glade/Makefile.am (gladedir): Likewise - -2003-02-05 Dan Winship <danw@ximian.com> - - * importer/evolution-intelligent-importer.c: - s/BonoboXObject/BonoboObject/ - - * e-folder-list.c (e_folder_list_class_init): - s/glade_gnome_init/glade_init/ - - * main.c (main): Likewise - -2003-02-05 Not Zed <NotZed@Ximian.com> - - * e-shell-startup-wizard.c (start_importers): re-enable. - (prepare_importer_page): re-enable importer code. - - * e-shell-importer.c (druid_finish_button_change): removed, since - its not such a hack to change anymore. Dunno how to get an icon - on it tho, without a stock button. - (show_import_wizard): Change the apply button to "Import" here. - -2003-01-28 Not Zed <NotZed@Ximian.com> - - * e-local-storage.c (create_folder_directory): We can't use - pointer arithmetic with g_path_get_*, so adjust code accordingly. - -2003-01-16 Not Zed <NotZed@Ximian.com> - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): Hook - onto finish instead of next on the last page. - -2003-01-28 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am ($(SELECT_NAMES_IDL_GENERATED_C)): No need for the - @true command. - ($(IDL_GENERATED_C)): Likewise. - (e-shell-marshal.h, e-shell-marshal.c): Use different names for - the .tmp files so these can be generated in parallel. - - * importer/Makefile.am (GNOME_Evolution_Importer-impl.o): Remove - unused rule. - ($(IDL_GENERATED_C)): Remove useless @true command. - (BUILT_SOURCES): Put the .h generated files in here as well. - -2003-01-28 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (Evolution-impl.o): Removed unused rule. - -2003-01-28 Ettore Perazzoli <ettore@ximian.com> - - * importer/Makefile.am: Make this work with parallel make as well. - -2003-01-28 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Use a little trick for the IDL compilation so that - it works with parallel makes. - -2003-01-28 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_construct): Use - bonobo_activation_server_register() instead of - bonobo_activation_register_active_server() again, since we want to - be able to build against bonobo-activation 2.0 and the latter is - 2.2-specific. - (impl_finalize): Likewise, use - bonobo_activation_active_server_unregister() instead of - bonobo_activation_unregister_active_server(). - -2003-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c (choose_importer_from_list): Set - GTK_RESPONSE_OK as the default response. - - * Makefile.am (INCLUDES): Add -DGNOME_DISABLE_DEPRECATED, - -DBONOBO_DISABLE_DEPRECATED. - - * e-shortcuts.c (update_shortcut_and_emit_signal): Use - g_signal_emit() instead of gtk_signal_emit(). - - * e-shortcuts-view.c (destroy_group_cb): Port from GnomeMessageBox - to GtkMessageDialog. - - * e-shell.c (get_icon_path_for_component_info): Use - gnome_program_locate_file() instead of gnome_pixmap_file(). - (impl_finalize): Use bonobo_activation_unregister_active_server() - instead of bonobo_activation_active_server_register(). - (e_shell_construct): Use - bonobo_activation_register_active_server() instead of - bonobo_activation_active_server_register(). - - * e-shell-view-menu.c (command_submit_bug): Use e_notice(). - (launch_pilot_settings): Use g_find_program_in_path() instead of - gnome_is_program_in_path(). - (command_submit_bug): Likewise. - - * e-shell-utils.c (get_icon_path): Use g_file_test() instead of - g_file_exists(). - - * e-shell-startup-wizard.c (prepare_importer_page): Port from - GnomeMessageBox to GtkMessageDialog. - - * e-shell-shared-folder-picker-dialog.c (show_dialog): Update for - GtkDialog. - (progress_dialog_close_callback): Removed. - (progress_dialog_clicked_callback): Removed. - (progress_dialog_response_callback): New. - (create_progress_dialog): Ported to GnomeDialog. - - * e-shell-offline-sync.c: Add member parent_window to struct - SyncData. - (e_shell_offline_sync_all_folders): Set it from the parent_window - arg. - (progress_dialog_close_callback): Removed. - (progress_dialog_clicked_callback): Removed. - (progress_dialog_response_callback): New. - (setup_dialog): Create a GtkDialog instead of a GnomeDialog. - (sync_folder): Updated for GtkDialog. - - * e-shell-offline-handler.c (dialog_handle_ok): Make it get a - GtkDialog instead of a GnomeDialog. - (dialog_handle_cancel): Likewise. - (dialog_clicked_cb): Removed. - (dialog_response_cb): New. - (pop_up_confirmation_dialog): Connect the new dialog_response_cb() - instead of the old dialog_clicked_cb(). Removed - gnome_dialog_set_default() call. - - * e-shell-folder-creation-dialog.c (dialog_response_cb): Make - first arg a GtkDialog, not a GnomeDialog. - - * e-shell-folder-commands.c (e_shell_command_delete_folder): - Expect delete_dialog() to return a GtkResponseType. - (delete_dialog): Ported to GtkMessageDialog; Return a - GtkResponseType. - - * e-shell-config-default-folders.c - (e_shell_config_default_folders_create_widget): Removed unused - variable. - - * e-setup.c (check_evolution_directory): Remove Evolution - directory installation message. - (e_setup): Remove check for the Executive-Summary directory. - - * e-local-storage.c (create_folder_directory): Use g_file_test() - instead of g_file_exists(). - - * evolution-shell-component-utils.c (e_pixmaps_update): Use - g_build_filename() of g_concat_dir_and_file(). - * e-folder-dnd-bridge.c (handle_data_received_path): Likewise. - * e-local-folder.c (construct_loading_metadata): Likewise. - (save_metadata): Likewise. - * e-local-storage.c (remove_folder_directory): Likewise. - (append_xfer_item_list): Likewise. - * e-setup.c (check_dir_recur): Likewise. - (e_shell_rm_dir): Likewise. - (setup_bonobo_conf_private_directory): Likewise. - * e-shell-folder-commands.c - (folder_selection_dialog_folder_selected_callback): Likewise. - (e_shell_command_rename_folder): Likewise. - * e-shell-folder-creation-dialog.c (dialog_response_cb): Likewise. - * e-shell-settings-dialog.c (load_pages): Likewise. - * e-shell-utils.c (get_icon_path): Likewise. - * e-shell.c (setup_local_storage): Likewise. - (get_icon_path_for_component_info): Likewise. - (e_shell_construct): Likewise. - * main.c (main): Likewise. - -2003-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c (timeout_callback): Pass a the context's - language to pango_context_get_metrics() instead of NULL, so the - heights are computed correctly. - -2003-01-27 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (owner_ping_callback): #if 0'ed out - for now, since it seems to cause trouble for local components. - (setup_owner_pinging): Likewise. - - * e-shell-user-creatable-items-handler.c - (get_default_action_for_view): Return default_menu_item [instead - of NULL] if there is no view displayed. [#32736] - -2003-01-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c (get_max_clipped_label_width): Use - clipped_label->layout instead of creating a new PangoLayout; this - way we respect the actual font being used. - -2003-01-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (create_label_for_empty_page): Update for new - args to e_clipped_label_new(). - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct): - Make the title label bold and larger using the new args to - e_clipped_label_new(). - -2002-01-23 Ettore Perazzoli <ettore@ximian.com> - - [Port fix for #34129 from evolution-1-2-branch, unread count in - shortcut bar doesn't update properly.] - - * e-shortcuts.c (update_shortcuts_by_path): Use - e_shell_parse_uri() so we handle default shortcuts properly as - well. - (update_shortcut_and_emit_signal): Use shortcut_item_update() - once, and use the return value from it. [Thanks to Leon Zhang - <leon.zhang@sun.com> for pointing out the brokenness of this - code.] - -2003-01-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Update copyright year. - -2003-01-22 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Install the shell executable as - evolution-$(BASE_VERSION) using an install-exec-local hack. Also - put libeshell in $(privlibdir) instead of $(libdir). - (eshellincludedir): Version using $(BASE_VERSION). - (INCLUDES): Update for the new locations of things. - (etspecdir): Likewise. - - * e-shell-view.c (e_shell_view_construct): Get evolution.xml from - EVOLUTION_UIDIR. - - * importer/Makefile.am: Install libevolution-importer in - $(privlibdir) instead of $(libdir). - (INCLUDES): Updated for the new versioned paths. Define - EVOLUTION_UIDIR. - (libevolution_importerincludedir): Version using $(BASE_VERSION). - (gladedir): Likewise. - - * glade/Makefile.am (gladedir): Version using $(BASE_VERSION). - - * e-setup.c (DEFAULT_USER_PATH): New #define. - (check_evolution_directory): Use it. - (copy_default_stuff): Likewise. Also, remove old shortcuts.xml - removal cruft. - -2003-01-17 Chris Toshok <toshok@ximian.com> - - * e-shell-settings-dialog.c (set_dialog_size): pass - pango_context_get_language (context) to - pango_context_get_metrics. - -2003-01-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Make dialog - New/Cancel/OK to match HIG. - - * glade/e-shell-folder-creation-dialog.glade: Swap Cancel/OK - buttons to match HIG. - - * e-shell-importer.c (choose_importer_from_list): Make dialog - Cancel/OK to match HIG. - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Make dialog Cancel/OK - to match HIG. - - * e-shell-view.c: Do not #include "e-bonobo-widget.h". - -2003-01-14 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (EXTRA_DIST): Add $(schema_DATA) here. - -2003-01-14 Rodney Dawes <dobey@ximian.com> - - * e-shell-view.c: Use GtkPaned instead of EPaned - -2003-01-13 Dan Winship <danw@ximian.com> - - * s/BonoboXObject/BonoboObject/ (for BONOBO_DISABLE_DEPRECATED) - -2003-01-10 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (impl_setOwner): Don't duplicate the - shell object here before passing to evolution_shell_client_new(). - - * evolution-shell-client.c (evolution_shell_client_construct): - Dupliate the @corba_shell before storing into the - EvolutionShellClientPrivate struct. - - * e-shell-config-default-folders.c - (e_shell_config_default_folders_create_widget): Do not duplicate - the shell's CORBA objref. - - * e-shell-config-autocompletion.c - (e_shell_config_autocompletion_create_widget): Do not duplicate - the shell's CORBA objref. - -2003-01-10 Dan Winship <danw@ximian.com> - - * e-storage-set-view.c (popup_folder_menu): Make this work again. - -2003-01-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (e_shell_view_save_defaults): Save the expansion - state of the EStorageSetView. - (setup_defaults): Load the expansion state. - -2003-01-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_request_close_view): Make the view save its - settings as the default ones if it's the last one. - - * e-shell-view-menu.c (command_quit): Make this view save its - settings as the defaults before quitting. - -2003-01-10 Ettore Perazzoli <ettore@ximian.com> - - * main.c (main): Generate the URI list from the popt context - fetched from the GnomeProgram object. - - * e-shell-view.c (setup_defaults): Removed @setup_default_uri arg. - Don't load any URI here. - (e_shell_view_construct): Open the URI here instead. - -2003-01-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (parse_default_uri): Remove bogus is_default check. - -2003-01-10 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c (set_default_folder_physical_uri_from_path): New - function. - (e_setup_check_config): Call it for each of the *_path keys. Do - not set the default for *_path keys as those come from the GConf - schema anyways. - -2003-01-10 Ettore Perazzoli <ettore@ximian.com> - - * apps_evolution_shell.schemas: Set defaults for - /apps/evolution/shell/default_folders/... . - - * e-shortcuts-view.c (pop_up_right_click_menu_for_group): Destroy - the popup_menu with gtk_widget_destroy() instead of - gtk_widget_unref(). - -2003-01-10 Not Zed <NotZed@Ximian.com> - - * evolution-config-control.c (impl_apply): remove cast to - GTK_OBJECT, it isn't, nor needed. - -2003-01-09 Chris Toshok <toshok@ximian.com> - - * e-shell-settings-dialog.c (set_dialog_size): use - pango_layout_get_pixel_size here instead of - pango_layout_get_width, which returns 0 (unless it's been set by - the user before, I believe). - -2003-01-09 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-client.c (impl_dispose): Properly reset - activity_interface to NULL. - (evolution_shell_client_construct): Ref the shell object here. - - * e-shell.c (view_weak_notify): Ref the shell since it's being - passed to notify_no_views_left_idle_cb as the data. - (notify_no_views_left_idle_cb): Only unref the shell here. - -2003-01-08 Not Zed <NotZed@Ximian.com> - - * e-shell-settings-dialog.c (set_dialog_size): dont unref the - pango context, get_context() doesn't create a ref. - -2003-01-08 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Images are now in $(datadir)/evolution/images - instead of $(datadir)/images/evolution. - - * e-folder-list.c (e_folder_list_class_init): Remove - "EFolderList::" prefix from the properties. - -2003-01-08 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (evolution_LDFLAGS): -export-dynamic so custom - widgets in libglade work. - -2003-01-07 Dan Winship <danw@ximian.com> - - * main.c (main): setup gettext - -2003-01-06 Not Zed <NotZed@Ximian.com> - - * evolution-folder-selector-button.c (set_folder): dont - double-free storage_lname. - -2003-01-06 Dan Winship <danw@ximian.com> - - * Makefile.am: Remove idldir definition. (It's defined in - configure.in now). - - * importer/Makefile.am: Likewise - -2002-12-19 Ettore Perazzoli <ettore@ximian.com> - - [With this commit, the shell compiles without deprecated GLib/GTK+ - functions, except for a couple of places were we use GtkCList.] - - * Makefile.am (INCLUDES): Add `-DG_DISABLE_DEPRECATED - -DGTK_DISABLE_DEPRECATED'. - - * evolution-test-component.c (create_new_folder_selector): No - gtk_window_set_policy(). - - * main.c (quit_box_new): gtk_window_set_resizable() instead of - gtk_window_set_policy(). - (view_map_callback): g_signal_handlers_disconnect_by_func() - instead of gtk_signal_disconnect_by_func(). - (main): No need to push the GdkRGB visual/cmap anymore. - (new_view_created_callback): Likewise. - - * e-task-widget.c: Renamed member pixmap of ETaskWidgetPrivate to - `image'. - (init): Updated accordingly. - (e_task_widget_construct): Use GtkImage, not GtkPixmap. - - * e-storage.c (class_init): Converted from gtk_signal_new() to - g_signal_new(). - - * e-storage-set.c (class_init): Converted from gtk_signal_new() to - g_signal_new(). - - * e-storage-set-view.c - (setup_folder_properties_items_if_corba_storage_clicked): - g_string_append_printf() instead of g_string_sprintfa(). - (class_init): Converted from gtk_signal_new() to g_signal_new(). - (setup_folder_changed_callbacks): Use - e_signal_connect_while_alive() and - e_signal_connect_full_while_alive(). - - * e-splash.c (e_splash_construct): gtk_window_set_resizable() - instead of gtk_window_set_policy(). - - * e-shortcuts.c: Do not #include e-unicode.h. - (shortcut_item_update): Use g_path_get_basename() instead of - g_basename(). - (e_shortcuts_add_default_shortcuts): No need to de-utfize strings. - (e_shortcuts_add_default_group): Same here. - - * e-shortcuts-view.c: Do not #include <e-unicode.h>. - (class_init): Converted from gtk_signal_new() to g_signal_new(). - (destroy_group_cb): No need to convert the text from UTF8. - - * e-shell.c (impl_dispose): g_signal_handlers_disconnect_by_func() - instead of gtk_signal_disconnect_by_func(). - (class_init): Use g_signal_new() instead of gtk_signal_new(). - - * e-shell-view.c: Do not #include e-unicode.h. Renamed member - offline_toggle_pixmap to offline_toggle_image in - EShellViewPrivate. - (update_folder_title_bar): No need to de-UTF8-ize the title. - (cleanup_delayed_selection): - g_signal_handlers_disconnect_by_func() instead of - gtk_signal_disconnect_by_func(). - (ui_engine_add_hint_callback): gtk_label_set_text(), not - gtk_label_set(). - (class_init): Use g_signal_new() instead of gtk_signal_new(). - (update_for_current_uri): No need to convert the title from UTF8. - (setup_offline_toggle): Changed to set up a GtkImage, not a - GtkPixmap. - (update_offline_toggle_status): Accordingly (gtk_image* instead of - gtk_pixmap*). - (set_current_notebook_page): gtk_notebook_set_current_page(), not - gtk_notebook_set_page(). - (get_storage_set_path_from_uri): g_ascii_strncasecmp() instead of - g_strncasecmp(). - (folder_bar_popup_map_callback): Use - e_signal_connect_while_alive() instead of - gtk_signal_connect_while_alive(). - (e_shell_view_construct): Likewise. - (display_uri): g_signal_connect_after() instead of - gtk_signal_connect_full(). - (update_for_current_uri): - g_signal_handlers_{block,unblock}_by_func() instead of - gtk_signal_handler_{block,unblock}_by_func(). - - * e-shell-view-menu.c (command_about_box): - gtk_window_set_resizable() instead of gtk_window_set_policy(). - - * e-shell-utils.c (get_mini_name): g_path_get_basename() instead - of g_basename(). - - * e-shell-user-creatable-items-handler.c - (append_xml_for_menu_item): g_string_append_printf() instead of - g_string_sprintfa(). - (create_menu_xml): Likewise. - - * e-shell-shared-folder-picker-dialog.c: Do not #include - e-unicode.h. - (progress_bar_timeout_callback): Expect a GtkProgressBar data and - just use gtk_progress_bar_pulse(). - (create_progress_dialog): gtk_window_set_resizable() instead of - gtk_window_set_policy(). No gtk_progress_set_activity_mode(). - (setup_server_option_menu): Just use - gtk_menu_item_new_with_label() instead of - e_utf8_gtk_menu_item_new_with_label(). - - * e-shell-settings-dialog.c (set_dialog_size): Ported to Pango. - - * e-shell-offline-sync.c - (impl_SyncFolderProgressListener_updateProgress): - gtk_progress_set_fraction() instead of - gtk_progress_bar_set_percentage(). - (sync_folder): Likewise. - (setup_dialog): gtk_window_set_resizable() instead of - gtk_window_set_policy(). - (sync_folder): No gtk_progress_set_activity_mode(). - - * e-shell-offline-handler.c: #undef {G,GTK}_DISABLE_DEPRECATED - here for now (need to port from GtkCList). - (class_init): Use g_signal_new() - - * e-shell-importer.c: #undef {G,GTK}_DISABLE_DEPRECATED here for - now (need to port from GtkCList). - - * e-shell-folder-title-bar.c (create_image_widget_from_xpm): - Renamed from create_pixmap_widget_from_xpm(); handle GtkImage - instead of GtkPixmap. - (new_empty_image_widget): Renamed from new_empty_pixmap_widget(); - return a GtkImage instead of a GtkPixmap. - (add_navigation_buttons): Updated accordingly; so use GtkImages - instead of GtkPixmaps. - (e_shell_folder_title_bar_construct): Likewise. - (e_shell_folder_title_bar_set_icon): Use gtk_image_* instead of - gtk_pixmap_* on the image widgets. - (class_init): Converted to use g_signal_new() instead of - gtk_signal_new(). - (e_shell_folder_title_bar_new): No need for pushing the GdkRGB - visual/cmap anymore. - - * e-shell-folder-selection-dialog.c (check_folder_type_valid): - Just use strcmp instead of strcasecmp(). - (class_init): g_signal_new() instead of gtk_signal_new(). - (e_shell_folder_selection_dialog_construct): Removed call to - gtk_window_set_policy(). - - * e-shell-folder-creation-dialog.c - (type_with_display_name_compare_func): Changed to use - g_utf8_casefold(). - - * e-shell-folder-commands.c: Do not #include e-unicode.h. - (e_shell_command_rename_folder): g_path_get_dirname() instead of - g_dirname(). - (folder_selection_dialog_folder_selected_callback): - g_path_get_basename() instead of g_basename(). - (rename_cb): Likewise. - (delete_dialog): Do not convert from UTF8 for display purposes. - (e_shell_command_rename_folder): Likewise. - - * e-shell-about-box.c (timeout_callback): Ported to Pango and use - gdk_window_invalidate_rect() instead of gtk_widget_draw(). - - * e-setup.c (check_evolution_directory): Use - gtk_window_set_resizable() instead of gtk_window_set_policy(). - - * e-local-storage.c: Do not include e-unicode.h. - (create_folder): Use g_path_get_basename() instead of - g_basename(). - (create_folder_directory): Likewise. - (remove_folder_directory): Likewise. - (append_xfer_item_list): Likewise. - - * e-local-folder.c (construct_loading_metadata): Use - g_path_get_basename() instead of g_basename(). - - * e-folder-dnd-bridge.c (handle_evolution_path_drag_motion): Use - g_path_get_basename() instead of g_basename(). - - * e-corba-storage-registry.c: G_STRUCT_OFFSET instead of - GTK_STRUCT_OFFSET. - - * e-corba-shortcuts.c: G_STRUCT_OFFSET instead of - GTK_STRUCT_OFFSET. - - * e-component-registry.c - (sleep_with_g_main_loop_timeout_callback): g_main_loop_* instead - of g_main_*. - (sleep_with_g_main_loop): Likewise. - - * e-activity-handler.c: G_STRUCT_OFFSET instead of - GTK_STRUCT_OFFSET. - - * evolution-wizard.c (evolution_wizard_class_init): g_signal_new() - instead of gtk_signal_new(). - - * evolution-storage-listener.c (class_init): g_signal_new() - instead of gtk_signal_new(). - - * evolution-shell-view.c (class_init): g_signal_new() instead of - gtk_signal_new(). - - * evolution-shell-component-dnd.c: G_STRUCT_OFFSET instead of - GTK_STRUCT_OFFSET. - - * evolution-shell-component.c: G_STRUCT_OFFSET instead of - GTK_STRUCT_OFFSET. - - * evolution-session.c: G_STRUCT_OFFSET instead of - GTK_STRUCT_OFFSET. - - * evolution-folder-selector-button.c: Do not include e-unicode.h. - (set_folder): No need to convert from UTF8 to locale encoding - anymore. Removed unused variable. - - * evolution-config-control.c (class_init): Use g_signal_new() - instead of gtk_signal_new(). - - * evolution-activity-client.c (class_init): Use g_signal_new() - instead of gtk_signal_new(). - - * e-folder-list.c: Do not include e-unicode.h. Use E_MAKE_TYPE(). - (e_folder_list_get_type): Removed explicit implementation of this. - (e_folder_list_set_arg): Removed. - (e_folder_list_get_arg): Removed. - (e_folder_list_set_property): New. - (e_folder_list_get_property): New. - (e_folder_list_destroy): Removed. - (e_folder_list_dispose): New. - (e_folder_list_class_init): Updated accordingly. - - * e-folder.c (impl_save_info): Use G_OBJECT_TYPE_NAME() instead of - gtk_type_name(). - (impl_load_info): Likewise. - (impl_remove): Likewise. - (class_init): Use g_signal_new() instead of gtk_signal_new(). - -2002-12-16 Jeffrey Stedfast <fejj@ximian.com> - - * e-shell-importer.c: Don't #include "e-util/e-html-utils.h" as - we don't use it. - -2002-12-13 Chris Toshok <toshok@ximian.com> - - [ fixes bug #35394 ] - - * e-shell-shared-folder-picker-dialog.c (setup_name_selector): - return the SelectNames corba interface too. - (show_dialog): unref the corba interface when closing the dialog. - -2002-12-05 Chris Toshok <toshok@ximian.com> - - * e-shell-config-default-folders.c: use "contacts", - "contacts/ldap" as the accepted contacts types, so it'll allow - both normal and ldap contact folders. - -2002-12-04 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.c (component_free): Only invoke - wait_for_corba_object_to_die on components that are out-of-proc. - -2002-11-27 Not Zed <NotZed@Ximian.com> - - * main.c (show_development_warning): changed to use a gtkdialog - instead of a gnome one. - (warning_dialog_response_callback): clicked->response. - - * e-shell-folder-selection-dialog.c: Include gtk/gtkstock.h - - * e-shell-folder-creation-dialog.c: include gnome-dialog.h - (dialog_response_cb): gtk_entry_get_text now returns const. Dont - free result. - - * e-setup.c: include gnome-messagebox.h - - * *.c: (re)run fix.sh over all, for e_notice changes & pick up - some deprecated functions. - - * e-shell-shared-folder-picker-dialog.c - (shared_folder_discovery_callback): reformat e_notice call for - script. - - * e-shell-offline-sync.c - (impl_SyncFolderProgressListener_reportFailure): Fix e_notice - call, we weren't passing type in. - - * e-shell-folder-commands.c (xfer_result_callback): changed around - slightly to save some processing & allow a script to run. - (e_shell_command_rename_folder): reformat e_notice call to help script. - Include gnome-messagebox.h - -2002-11-25 Dan Winship <danw@ximian.com> - - * e-shell-settings-dialog.c (page_new): e_get_language_list now - returns language codes that actually work with oaf, making the - _()s here redundant. - - * e-component-info.c (get_i18n_value): Remove code to turn "fr_FR" - into "fr", since e_get_language_list will return both now. - -2002-11-25 Ettore Perazzoli <ettore@ximian.com> - - * apps_evolution_shell.schemas: Fix <key> -> <applyto> typo. - -2002-11-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-sync.c (e_shell_offline_sync_all_folders): - Filled in, use GConf. - (cleanup): Re-enabled again. - (sync_folder): Likewise. - (progress_dialog_close_callback): Likewise. - (progress_dialog_clicked_callback): Likewise. - (setup_dialog): Likewise. - (setup_progress_listener): Likewise. - (impl_SyncFolderProgressListener_reportFailure): Likewise. - (impl_SyncFolderProgressListener_reportSuccess): Likewise. - (impl_SyncFolderProgressListener_updateProgress): Likewise. - (progress_listener_servant_free): Likewise. - (progress_listener_servant_new): Likewise. - -2002-11-25 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage-set-view.c - (impl_StorageSetView__set_checkedFolders): Updated to pass a - GSList to e_storage_set_view_set_checkboxes_list() [instead of a - GList]. - (impl_StorageSetView__get_checkedFolders): Likewise with the - return value from e_storage_set_view_get_checkboxes_list(). - - * e-shell-config-offline.c (config_control_apply_callback): Filled - in, using GConf. - (init_storage_set_view_status_from_config): Likewise. - - * e-storage-set-view.c (e_storage_set_view_get_checkboxes_list): - Return a GSList instead of a GList. - (essv_add_to_list): Update for the GSList. - (e_storage_set_view_set_checkboxes_list): Get a GSList instead of - a GList. - - * apps_evolution_shell.schemas: Added - /schemas/apps/evolution/shell/offline/folder_paths. - -2002-11-20 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Set displayed_any in the case when we are - calling e_shell_create_view(). Also initialize displayed_any to - FALSE earlier so we dont' end up opening two views at startup by - default. - -2002-11-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c (impl_dispose): Save the - expansion state for the EStorageSetView here. - (impl_finalize): Instead of here. - -2002-11-20 Chris Toshok <toshok@ximian.com> - - * e-folder-list.c (e_folder_list_class_init): use e_shell_ - marshallers, and make sure STRING parameters map to *_STRING* - marshallers. - - * evolution-wizard.c (evolution_wizard_class_init): same. - - * evolution-storage.c (class_init): same. - - * evolution-storage-set-view-listener.c (class_init): same. - - * evolution-storage-listener.c (class_init): same. - - * evolution-shell-view.c (class_init): same. - - * evolution-session.c (class_init): same. - - * evolution-folder-selector-button.c (class_init): same. - - * evolution-config-control.c (class_init): same. - - * evolution-activity-client.c (class_init): same. - - * e-storage-set.c (class_init): same. - - * e-shortcuts.c (class_init): same. - - * e-shortcuts-view.c (class_init): same. - - * e-shell.c (class_init): same. - - * e-shell-view.c (class_init): same. - - * e-shell-offline-handler.c (class_init): same. - - * e-shell-folder-title-bar.c (class_init): same. - - * e-shell-folder-selection-dialog.c (class_init): same. - - * e-folder.c (class_init): same. - - * e-shell-marshal.list: add all the STRING marshallers. - -2002-11-20 Not Zed <NotZed@Ximian.com> - - * e-shell-importer.c (prepare_intelligent_page): gnome message box - -> gtk message dialog. - (prepare_intelligent_page): Fix the signature on this. This could - NEVER have worked. - -2002-11-19 Ettore Perazzoli <ettore@ximian.com> - - * 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(). - -2002-11-19 Not Zed <NotZed@Ximian.com> - - * e-shell-shared-folder-picker-dialog.c (show_dialog): Pass type - to bonobo_widget::set_property. - -2002-11-18 Not Zed <NotZed@Ximian.com> - - * e-shell-view-menu.c (file_verbs[]): re-enable importer wizard. - - * importer/importer.c (dialog_response_cb): from clicked_cb. - (start_import): gtkdialogise. - - * e-shell-importer.c: removed redundant header. - (create_html): Removed utf8 from locale stuff. - (get_name_from_component_info): oaf->bonobo activation. - (get_iid_for_filetype): " - (create_plugin_menu): Likewise, and change oafiid to bonoboiid - (get_intelligent_importers): " - (prepare_intelligent_page): " - (show_import_wizard): add null domain to glade_xml_new. - (choose_importer_from_list): gtkdialogise. - (dialog_response_cb): changed from dialog_clicked_cb. - (start_import): gtkdialogise. - (show_error): use gtk message box. - (error_response_cb): callback to close error box. - (show_import_wizard): gnome_druid_page_start/finish -> - gnome_druid_page_edge. - (prepare_file_page): - (filename_changed): set HELP button insensitive. - (create_plugin_menu): casts for warnings and fix a typo, - set_data->set_data_full. - (import_druid_finish): folder_selection_dialog api change(?), - allow create. - (dialog_weak_notify): renamed from close_dialog(). - (show_import_wizard): remove gnome_dialog_close_hides -> its a - gtkwindow anyway(!). - - * Makefile.am (evolution_LDADD): Added back importer. - (evolution_SOURCES): Added back importer. - - * importer/intelligent.c (get_intelligent_importers): - bonobo-activationised. - (create_gui): gtkdialogise. - (intelligent_importer_init): gtkdialogise. - (create_gui): remove gnome_util_user_home(). - (intelligent_importer_init): " - - * importer/evolution-importer.c (finalise): from destroy. - (evolution_importer_new): type_new->object_new. - - * importer/evolution-importer-listener.c (finalise): from destroy. - (evolution_importer_listener_new): type_new->object_new. - - * importer/evolution-importer-client.c (destroy): removed, as it - wasn't used anyway. - (evolution_importer_client_new): g_object_new. - (finalise): added, tho doesn't do anythign yet, should it unref - the client->objref? This whole class doesn't seem much use. - - * importer/evolution-importer-client.h: removed - bonobo-object-client, change to g_object. - - * importer/*.[ch]: ran fix script over everything. - - * importer/evolution-intelligent-importer.c: gobjectise. - (finalise): renamed from destroy. - (evolution_intelligent_importer_new): gtk_type_new -> g_object_new - -2002-11-18 Chris Toshok <toshok@ximian.com> - - * importer/import.glade: run libglade-convert. - -2002-11-16 Chris Toshok <toshok@ximian.com> - - * e-folder-list.c (e_folder_list_init): force the scrolled table - to be shown, apparently a bug in libglade2. - - * e-shell-config-default-folders.c (setup_folder_selector): same, - but with the evolution-folder-selector-button's. - -2002-11-16 Chris Toshok <toshok@ximian.com> - - * e-shell-settings-dialog.c (load_pages): init the corba exception - before loading each config page, so previous errors don't make - subsequence pages to fail to load. - -2002-11-15 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Added rule to generate - GNOME_Evolution_Shell.server.in from - GNOME_Evolution_Shell.server.in.in, substituting @BINDIR@. - - * GNOME_Evolution_Shell.server.in.in: Renamed from - GNOME_Evolution_Shell.server.in. Prepend @BINDIR@ to the location - of the executable. - -2002-11-15 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage.c (impl_finalize): Fix typo; p -> sp. - -2002-11-15 Ettore Perazzoli <ettore@ximian.com> - - * e-activity-handler.c (impl_operationStarted): No need to check - for priv being NULL here anymore. - (impl_operationProgressing): Likewise. - (impl_operationFinished): Likewise. - (impl_requestDialog): Likewise. - - * evolution-folder-selector-button.c (clicked): Use - g_object_add_weak_pointer() on the parent_window instead of using - GTK_OBJECT_DESTROYED(). - -2002-11-15 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): For - now, always return TRUE. - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-client.c (class_init): Pass the right parent - type to gtk_type_class(). - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-user-creatable-items-handler.c, - * e-shell-user-creatable-items-handler.c: Changed into a GObject - subclass instead of a GtkObject subclass. - - * e-component-registry.c, - * e-component-registri.h: Changed into a GObject subclass instead - of a GtkObject subclass. - - * evolution-shell-view.c (impl_ShellView_set_message): Remove - bogus GTK_OBJECT() cast in call to g_signal_emit(). - (impl_ShellView_unset_message): Likewise. - (impl_ShellView_change_current_view): Likewise. - (impl_ShellView_set_title): Likewise. - - * e-shell-view.c (init): Ref/sink the GtkTooltips. - - * e-uri-schema-registry.c (schema_handler_free): g_object_unref() - on the component instead of bonobo_object_unref(). - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * main.c (no_views_left_cb): Use bonobo_main_quit() instead of - gtk_main_quit(). - (shell_weak_notify): Likewise. - (idle_cb): Likewise. - - * e-shell.c (notify_no_views_left_idle_cb): New idle function to - emit the "no_views_left" signal. - (view_weak_notify): Put it on the idle loop instead of firing the - signal here. - - * e-task-widget.c (e_task_widget_construct): Ref/sink the - GtkTooltips object. - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (save_settings_for_views): Removed. - (e_shell_save_settings): Do not call it here. - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (impl_dispose): NULL priv->ui_component - after unreffing it. - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component-client.c (destroy_listener_interface): - Avoid freeing the servant for now, it looks like something is - messed up and this causes a crash on exit. - - * evolution-storage-set-view-listener.c (impl_finalize): Do not - invoke POA_GNOME_Evolution_StorageSetViewListener__fini(). - - * evolution-storage-listener.c (impl_finalize): Do not invoke - POA_GNOME_Evolution_StorageListener__fini(). - - * e-shell-offline-sync.c (progress_listener_servant_free): Do not - invoke POA_GNOME_Evolution_SyncFolderProgressListener__fini(). - - * e-shell-offline-handler.c (progress_listener_servant_free): Do - not invoke POA_GNOME_Evolution_OfflineProgressListener__fini(). - - * e-corba-storage.c (impl_dispose): Do not invoke - POA_GNOME_Evolution_StorageListener__fini(). - - * evolution-shell-component-client.c (destroy_listener_interface): - Do not invoke POA_GNOME_Evolution_ShellComponentListener__fini(). - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_destroyed_callback): Removed. - (no_views_left_cb): Use g_object_add_weak_pointer() instad of - connecting to the "destroy" signal. - (destroy_cb): Removed. - (shell_weak_notify): New. - (idle_cb): Use g_object_weak_ref() on the shell object instead of - connecting to the "destroy" signal. - - * evolution-test-component.c (dialog_destroy_callback): Removed. - (dialog_weak_notify): New. - (create_new_folder_selector): Use g_object_weak_ref() on the - dialog instead of connecting the "destroy" signal. - - * e-shortcuts.c (view_destroyed_cb): Removed. - (view_weak_notify): New. - (e_shortcuts_new_view): g_object_weak_ref() the new view instead - of connecting the "destroy" signal. - (impl_dispose): Free the ->views and g_object_weak_unref() all the - items. - - * e-shell.c (view_destroy_cb): Removed. - (view_weak_notify): New. - (create_view): Use g_object_weak_ref() on the newly created view - instead of connecting to the "destroy" signal. - (impl_dispose): g_object_weak_unref() the views. - (e_shell_show_settings): Use g_object_add_weak_pointer() on the - settings_dialog instead of connecting to the "destroy" signal. - (settings_dialog_destroy_cb): Removed. - - * e-shell-shared-folder-picker-dialog.c - (progress_bar_weak_notify): New. - (progress_bar_destroy_callback): Removed. - (create_progress_dialog): Use g_object_weak_ref() on the progress - bar object instead of connecting to its "destroy" signal. - (shell_destroy_callback): Removed. - (shell_view_destroy_callback): Removed. - (storage_destroy_callback): Removed. - (shell_weak_notify): New. - (shell_view_weak_notify): New. - (storage_weak_notify): New. - (discover_folder): Use g_object_weak_ref() on the shell, parent, - storage objects instead of connecting to their "destroy" signals. - - * e-shell-importer.c: Removed member destroyed from - ImporterComponentData. - (import_cb): Instead of checking if ->destroyed is TRUE, check if - ->dialog is NULL to decide whether the dialog has been destroyed - or not. - (dialog_destroy_cb): Removed. - (start_import): Use g_object_weak_ref() on the dialog object - instead of connecting to its "destroy" signal. - (dialog_close): Removed. - (dialog_weak_notify): New. - (show_import_wizard): Use g_object_weak_ref() on the dialog object - instead of connecting to its "destroy" signal. - (import_druid_destroy): New. - (import_druid_weak_notify): New. - (show_import_wizard): Use g_object_weak_ref() on the druid object - instead of connecting to its "destroy" signal. - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): g_object_weak_ref() - the shell object instead of connecting to its "destroy" signal. - - * e-shell-folder-creation-dialog.c (dialog_destroy_cb): Removed. - (dialog_destroy_notify): New. - (e_shell_show_folder_creation_dialog): g_object_weak_ref() the - dialog instead of connecting to its "destroy" signal. - (shell_destroy_cb): Removed. - (shell_destroy_notify): New. - (e_shell_show_folder_creation_dialog): g_object_weak_ref() the - shell object instead of connecting to its "destroy" signal. - - * e-shell-config-offline.c (config_control_destroy_callback): - Removed. - (config_control_destroy_notify): New. - (e_shell_config_offline_create_widget): g_object_weak_ref() the - config_control instead of connecting to its "destroy" signal. - - * e-shell-config-default-folders.c - (config_control_destroy_callback): Removed. - (config_control_destroy_notify): New. - (e_shell_config_default_folders_create_widget): - g_object_weak_ref() instead of connecting to the "destroy" signal. - - * e-shell-config-autocompletion.c (config_control_destroy_notify): - New. - (config_control_destroy_callback): Removed. - (e_shell_config_autocompletion_create_widget): - g_object_weak_ref() instead of connecting to the "destroy" signal. - - * e-activity-handler.c (task_bar_destroy_cb): Removed. - (task_bar_destroy_notify): New. - (e_activity_handler_attach_task_bar): Weak_ref the task_bar using - task_bar_destroy_notify. - (impl_dispose): Weak_unref the task bars in priv->task_bars. - -2002-11-13 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-startup-wizard.c: Change type of member etd in - TimezoneDialogPage to GObject from GtkObject. - (make_timezone_page): Cast to G_OBJECT() not GTK_OBJECT(). - -2002-11-13 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): - Connect finish_func to the "next" signal for now, since GnomeDruid - seems to be borked. - - * e-uri-schema-registry.c (schema_handler_new): g_object_ref() - @component instead of bonobo_object_ref(). - - * e-local-storage.c (create_folder): g_object_ref() for the - component_client, instead of bonobo_object_ref(). - (remove_folder_step): Likewise. - -2002-11-13 Not Zed <NotZed@Ximian.com> - - * evolution-storage.c: remove GTK_OBJECT cast and other GTK stuff. - - * evolution-storage.h: this is a gobject not a gtkobject, fix cast - macros, and get_type call. - -2002-11-11 Chris Toshok <toshok@ximian.com> - - * e-task-widget.c (impl_finalize): need to assign priv here, fixes - a crash. - -2002-11-11 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_dispose): Do unref the config_listener here [I - fixed the finalize crash we were getting]. - -2002-11-11 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (impl_finalize): Protect against - priv->checkboxes being NULL. - -2002-11-11 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.c: Make separate dispose/finalize overrides - of just overriding destroy. - * e-corba-config-page.c: Likewise. - * e-corba-storage.c: Likewise. - * e-folder-type-registry.c: Likewise. - * e-folder.c: Likewise. - * e-history.c: Likewise. - * e-local-folder.c: Likewise. - * e-local-storage.c: Likewise. - * e-shell-folder-selection-dialog.c: Likewise. - * e-shell-folder-title-bar.c: Likewise. - * e-shell-offline-handler.c: Likewise. - * e-shell-settings-dialog.c: Likewise. - * e-shell-user-creatable-items-handler.c: Likewise. - * e-shell-view.c: Likewise. - * e-shortcuts-view-model.c: Likewise. - * e-shortcuts-view.c: Likewise. - * e-shortcuts.c: Likewise. - * e-storage-set-view.c: Likewise. - * e-storage-set.c: Likewise. - * e-storage.c: Likewise. - * e-task-bar.c: Likewise. - * e-task-widget.c: Likewise. - * e-uri-schema-registry.c: Likewise. - * evolution-activity-client.c: Likewise. - * evolution-folder-selector-button.c: Likewise. - * evolution-storage-listener.c: Likewise. - * evolution-storage-set-view-listener.c: Likewise. - * evolution-test-component.c: Likewise. - -2002-11-08 Rodrigo Moya <rodrigo@ximian.com> - - * importer/Makefile.am: use correctly IDL flags. - -2002-11-07 Chris Toshok <toshok@ximian.com> - - * e-task-widget.c (impl_destroy): guard against multiple calls. - fixes a crash whenever a task finishes (the addressbook finishing - loading, etc.). - - * e-shell-marshal.list: add NONE:BOOL for - evolution-shell-component. - - * evolution-shell-component.c (class_init): register the signals - with g_signal_new. - -2002-11-05 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_show_settings): Allow type being NULL. - -2002-11-05 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (load_folder): Do add folders with an unknown - type. - -2002-11-05 Ettore Perazzoli <ettore@ximian.com> - - * glade/e-shell-folder-creation-dialog.glade (ok_button): Set - response_id to GTK_RESPONSE_OK. - (cancel_button): Likewise, with GTK_RESPONSE_CANCEL. - - * e-shell-folder-creation-dialog.h, - e-shell-folder-creation-dialog.c: Ported to GtkDialog. - -2002-11-05 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-list.c: Use g_object_get_data() instead of - gtk_object_get_data(). - * e-shell-config-default-folders.c: Likewise. - * e-shell-folder-creation-dialog.c: Likewise. - * e-shell-importer.c: Likewise. - * e-shell-shared-folder-picker-dialog.c: Likewise. - * e-shell-user-creatable-items-handler.c: Likewise. - * e-shell-view.c: Likewise. - * e-shell.c: Likewise. - * e-storage.c: Likewise. - -2002-11-05 Ettore Perazzoli <ettore@ximian.com> - - * e-activity-handler.c: Split finalize/dispose. - * e-corba-shortcuts.c: Likewise. - * e-corba-storage-registry.c: Likewise. - * e-shell-about-box.c: Likewise. - * e-shell.c: Likewise. - * e-splash.c: Likewise. - * evolution-config-control.c: Likewise. - * evolution-session.c: Likewise. - * evolution-shell-component.c: Likewise. - * evolution-shell-view.c: Likewise. - * evolution-storage-set-view.c: Likewise. - * evolution-storage.c: Likewise. - * evolution-wizard.c: Likewise. - -2002-11-05 Ettore Perazzoli <ettore@ximian.com> - - * All: g_object_unref instead of bonobo_object_unref for the - EvolutionShellComponentClient and EvolutionShellClient interfaces. - -2002-11-05 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-client.c (impl_dispose): New. - (impl_finalize): New. - (destroy): Removed. - (class_init): Install dispose, finalize handlers. - - * All: Use evolution_shell_client_corba_objref() or - evolution_shell_component_client_corba_objref() instead of - BONOBO_OBJREF() or bonobo_object_corba_objref() where needed. - - * e-folder-type-registry.c (set_handler): Use g_object_ref() for - the handler, not bonobo_object_ref(). - (folder_type_free): Likewise for unref. - - * evolution-shell-component-client.c - (evolution_shell_component_client_corba_objref): New. - (impl_dispose): Moved from impl_destroy; only unref things. - (impl_finalize) New. - (class_init): Install dispose/finalize. - (evolution_shell_component_client_get_dnd_source_interface): Use - priv->corba_objref instead of bonobo_object_corba_objref() since - we are not a BonoboObject anymore. - (evolution_shell_component_client_get_dnd_destination_interface): - Likewise. - (evolution_shell_component_client_get_offline_interface): Likewise. - (evolution_shell_component_client_set_owner): Likewise. - (evolution_shell_component_client_unset_owner): Likewise. - (evolution_shell_component_client_create_view): Likewise. - (evolution_shell_component_client_handle_external_uri): Likewise. - (evolution_shell_component_client_async_create_folder): Likewise. - (evolution_shell_component_client_async_xfer_folder): Likewise. - (evolution_shell_component_client_populate_folder_context_menu): Likewise. - (evolution_shell_component_client_unpopulate_folder_context_menu): Likewise. - - * e-component-registry.c (register_component): Use - evolution_shell_component_client_corba_objref(). - (e_component_registry_restart_component): Likewise. - (component_free): Likewise. - - * evolution-shell-component-client.c: g_object_new() instead of gtk_type_new(). - * e-component-registry.c: Likewise. - * e-corba-config-page.c - * e-folder-list.c: Likewise. - * e-folder-type-registry.c: Likewise. - * e-folder.c: Likewise. - * e-gray-bar.c: Likewise. - * e-history.c: Likewise. - * e-local-folder.c: Likewise. - * e-local-folder.c: Likewise. - * e-local-storage.c: Likewise. - * e-shell-about-box.c: Likewise. - * e-shell-config-default-folders.c: Likewise. - * e-shell-folder-selection-dialog.c: Likewise. - * e-shell-folder-title-bar.c: Likewise. - * e-shell-offline-handler.c: Likewise. - * e-shell-settings-dialog.c: Likewise. - * e-shell-user-creatable-items-handler.c: Likewise. - * e-shell-view.c: Likewise. - * e-shortcuts-view-model.c: Likewise. - * e-shortcuts-view.c: Likewise. - * e-shortcuts.c: Likewise. - * e-splash.c: Likewise. - * e-storage-set-view.c: Likewise. - * e-storage-set.c: Likewise. - * e-storage.c: Likewise. - * e-task-bar.c: Likewise. - * e-task-widget.c: Likewise. - * e-uri-schema-registry.c: Likewise. - * evolution-activity-client.c: Likewise. - * evolution-folder-selector-button.c: Likewise. - * evolution-shell-client.c: Likewise. - * evolution-shell-view.c: Likewise. - * evolution-storage-listener.c: Likewise. - * evolution-storage-set-view-listener.c: Likewise. - * evolution-storage-set-view.c: Likewise. - * evolution-wizard.c: Likewise. - - * GNOME_Evolution_TestComponent.server: Renamed from - GNOME_Evolution_TestComponent.oaf. - - * evolution-test-component.c (spit_out_shortcuts): Use - BONOBO_EX_REPOID(). - (create_new_folder_selector): Ported to use GtkDialog instead of - GnomeDialog. - (storage_cancel_discover_shared_folder_callback): Add missing - G_OBJECT() cast. - (shared_folder_discovery_timeout_callback): Likewise. - (storage_discover_shared_folder_callback): Likewise. - (timeout_callback_2): Likewise. - (timeout_callback_1): Likewise. - (shared_folder_discovery_timeout_callback): Use - g_object_get_data() instead of gtk_object_get_data(). - (storage_cancel_discover_shared_folder_callback): Likewise. - (timeout_callback_2): Likewise. - (timeout_callback_2): g_timeout_add() instead of - gtk_timeout_add(). - (create_view_fn): Likewise. - (timeout_callback_1): Likewise. - (timeout_callback_1): Pass NULL as the error arg to - gdk_pixbuf_new_from_file(). - (register_component): Use bonobo-activation instead of OAF. - - * e-shell-about-box.c (impl_destroy): Removed. - (impl_finalize): New. - (class_init): Install finalize handler, not destroy. - - * e-shell-view-menu.c (command_about_box): Use a GtkWindow again. - Set the GTK_WINDOW_TYPE_HINT_DIALOG hint. - - * e-shell-about-box.c (e_shell_about_box_construct): Removed. - -2002-11-04 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (e_shell_command_copy_folder): Pass - TRUE for arg allow_creation to - e_shell_folder_selection_dialog_new(). - (e_shell_command_move_folder): Likewise. - * e-shell-view-menu.c (command_goto_folder): Likewise. - (command_new_shortcut): Likewise. - * e-shell.c (impl_Shell_selectUserFolder): Likewise. - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_set_allow_creation): Removed. - (e_shell_folder_selection_dialog_get_allow_creation): Removed. - (e_shell_folder_selection_dialog_new): New arg allow_creation. - (e_shell_folder_selection_dialog_construct): Likewise. Also, do - set priv->shell. - - * e-shell-folder-selection-dialog.h, - e-shell-folder-selection-dialog.c: Port to GtkDialog. - -2002-11-04 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-type-registry.c - (e_folder_type_registry_get_handler_for_type): Remove warning for - when the type is unknown. - (e_folder_type_registry_type_is_user_creatable): Likewise. - (e_folder_type_registry_get_display_name_for_type): Likewise. - (e_folder_type_registry_get_description_for_type): Likewise. - (e_folder_type_registry_get_exported_dnd_types_for_type): - Likewise. - (e_folder_type_registry_get_accepted_dnd_types_for_type): - Likewise. - (e_folder_type_registry_unregister_type): Likewise. - (e_folder_type_registry_get_icon_name_for_type): Likewise. - (e_folder_type_registry_get_icon_for_type): Likewise. - (set_handler): Removed warning here too. - -2002-11-04 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-list.c: Replace gtk_signal_emit() with g_signal_emit(). - * e-folder.c: Likewise. - * e-shell-folder-selection-dialog.c: Likewise. - * e-shell-folder-title-bar.c: Likewise. - * e-shell-offline-handler.c: Likewise. - * e-shell-view.c: Likewise. - * e-shortcuts-view.c: Likewise. - * e-shortcuts.c: Likewise. - * e-storage-set-view.c: Likewise. - * e-storage-set.c: Likewise. - * e-storage.c: Likewise. - * evolution-activity-client.c: Likewise. - * evolution-folder-selector-button.c: Likewise. - * evolution-storage-listener.c: Likewise. - * evolution-storage-set-view-listener.c: Likewise. - -2002-11-04 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-list.c: Use g_object_set_data() instead of - gtk_object_set_data(). - * e-shell-config-default-folders.c: Likewise. - * e-shell-folder-creation-dialog.c: Likewise. - * e-shell-importer.c: Likewise. - * e-shell-shared-folder-picker-dialog.c: Likewise. - * e-shell-user-creatable-items-handler.c: Likewise. - * e-shell-view.c: Likewise. - * e-shell.c: Likewise. - * e-storage-set-view.c: Likewise. - * e-storage.c: Likewise. - * evolution-test-component.c: Likewise. - - * e-storage-set-view.c (e_storage_set_view_construct): Use - g_object_weakref() instead of gtk_object_weakref() for the - ui_container. - (ui_container_destroy_notify): Add param where_the_object_was to - match the GWeakNotify prototype. - - * e-shell.c: Use g_signal_emit() instead of gtk_signal_emit(). - -2002-11-03 Ettore Perazzoli <ettore@ximian.com> - - * glade/e-active-connection-dialog.glade: Converted to Glade2 - format. - * glade/evolution-startup-wizard.glade: Likewise. - * glade/e-shell-shared-folder-picker-dialog.glade: Likewise. - * glade/e-shell-folder-creation-dialog.glade: Likewise. - * glade/e-shell-config-default-folders.glade: Likewise. - * glade/e-folder-list.glade: Likewise. - -2002-11-03 Ettore Perazzoli <ettore@ximian.com> - - * *.c, *.h: Changed all gtk_object_refs()/gtk_object_unrefs() into - g_object_refs()/g_object_unrefs() and all gtk_signal_connect_*() - into g_signal_connect_*(). [Except for some case where we have - gtk_signal_connect_full() or gtk_signal_connect_while_alive() - calls that cannot be trivially ported to use the g_signal_* - functions, we'll have to fix those later.] - - * e-splash.c (impl_finalize): Finalize implementation, copied over - from impl_destroy. - (impl_destroy): Removed. - (class_init): Override finalize, not destroy. - - * e-activity-handler.c: Ported from GtkObject to GObject. - * evolution-storage.c: Likewise. - * e-corba-shortcuts.c: Likewise. - * evolution-session.h: Likewise. - * evolution-config-control.c: Likewise. - * evolution-shell-component-dnd.c: Likewise. - * evolution-shell-component.c: Likewise. - * evolution-shell-view.c: Likewise. - * evolution-storage-set-view.c: Likewise. - * evolution-wizard.c: Likewise. - -2002-11-03 Ettore Perazzoli <ettore@ximian.com> - - * e-component-info.c: Updated for libxml2. - * e-shortcuts.c: Likewise. - * e-folder-list.c: Likewise. - * e-local-folder.c: Likewise. - -2002-11-03 Ettore Perazzoli <ettore@ximian.com> - - * GNOME_Evolution_Shell.server.in: Renamed from - GNOME_Evolution_Shell.oaf.in. - - * Makefile.am: Port from OAF to bonobo-activation. - (INCLUDES): Define SYSCONFDIR, DATADIR, LIBDIR. - - * main.c (main): Use gnome_program_init(). - - * e-corba-storage-registry.c (e_corba_storage_registry_new): - g_object_new(), not gtk_type_new(). - (impl_finalize): New, ported over from destroy. - (destroy): Removed. - (class_init): Install finalize handler, not destroy handler, since - we are not a GtkObject anymore. - - * e-corba-storage.c (e_corba_storage_new): g_object_new(), not - gtk_type_new(). - - * e-shell.c (class_init): Override finalize, not destroy. - (impl_finalize): Finalize implementation, basically the old - destroy renamed. - (e_shell_new): g_object_new(), not gtk_type_new(). - (class_init): Use e_shell_marshal_NONE__INT for - line_status_changed instead of using an ENUM. - (e_shell_construct): Use g_signal_connect_object() instead of - gtk_signal_connect_while_alive(). - - * e-setup.c (e_setup): Do not unref local_folder if NULL. - - * e-folder.c (init): Make not floating. - (e_folder_construct): No need to make it floating here anymore. - - * e-shell.c (impl_Shell_selectUserFolder): For now don't set - dialog parent from xid. - - * main.c (no_views_left_cb): Add missing GTK_SIGNAL_FUNC() cast. - (new_view_created_callback): Likewise. - (warning_dialog_clicked_callback): Update to use the - EConfigListener from the shell instead of bonobo-conf. - (show_development_warning): Likewise. - (upgrade_from_1_0_if_needed): BONOBO_EX_ID -> BONOBO_EX_REPOID. - (idle_cb): Use bonobo-activation and BONOBO_EX_REPOID(). - (main): Cleaned up the various things that are unneeded in GNOME - 2. - (upgrade_from_1_0_if_needed): Use EConfigListener. - - * evolution-storage-set-view.h, evolution-storage-set-view.c: - BonoboXObjectified. - - * e-storage.c (class_init): GLIB2-ified and made to use - e-shell-marshal.h. - (ES_CLASS): Use GTK_OBJECT_GET_CLASS(). - (e_storage_new_folder): Added missing GTK_SIGNAL_FUNC() prototype. - - * e-storage-set.c (class_init): GLIB2-ified and made to use - e-shell-marshal.h. - - * e-storage-set-view.c (popup_folder_menu): For now, do not add - the pop-up since we lack bonobo_ui_container_get_win() and I am - not sure how to work around it. - (popup_folder_menu): Pass self as the for_widget arg to - gnome_popup_menu_do_popup_modal(). - (class_init): GLIB2-ified, and got to use e-shell-marshal.h. - (marshal_NONE__GDKDRAGCONTEXT_STRING_STRING_STRING): Removed. - (impl_tree_drag_data_get): Don't set the selection for now -- we - have to fix the CORBA target stuff to match GTK 2. - (e_storage_set_view_construct): Pass NULL as the opt_ev arg to - bonobo_ui_component_set_container(). - - * e-splash.c: #include <libgnomecanvas/gnome-canvas-pixbuf.h> - instead of <gdk-pixbuf/gnome-canvas-pixbuf.h>. - (e_splash_new): Pass NULL as the error arg to - gdk_pixbuf_new_from_file(). - - * e-shortcuts.c (class_init): GLIB2-ified. Also use the - e-shell-marshal marshallers. - (e_shortcuts_new_view): Add missing GTK_SIGNAL_FUNC() cast. - - * e-shortcuts-view.c: Use GTK_STOCK_* stuff instead of - GNOME_STOCK_* stuff. - (pop_up_right_click_menu_for_group): Pass self as the for_widget - arg to gnome_popup_menu_do_popup_modal(). - (pop_up_right_click_menu_for_shortcut): Likewise. - (class_init): GLIB2-ified. - - * e-shell.c: Do not #include <gal/util/e-unicode-i18n.h> or - #include <libgnome/gnome-defs.h>. - (set_interactive): Use BONOBO_EX_REPOID(). - (setup_local_storage): Use _() not U_(). - (destroy): Use gtk_widget_destroy() instead of - gtk_object_destroy() on priv->settings_dialog. - (class_init): GLIB2-ized. - (init): Initialize config_listener member. - (get_icon_path_for_component_info): Port to bonobo-activation from - OAF. - (setup_components): Likewise. - (destroy): Likewise. - (e_shell_construct): Use e_setup_check_config(), not - e_setup_check_db (). Use the e_config_listener instead of - bonobo-conf. - (save_settings_for_views): Likewise. - (save_misc_settings): Likewise. - (e_shell_restore_from_settings): Likewise. - (parse_default_uri): Likewise. - (e_shell_component_maybe_crashed): Pass NULL for opt_ev arg to - bonobo_unkown_ping() - (e_shell_component_maybe_crashed): Use - bonobo_engine_deregister_dead_components() instead of - bonobo_window_deregister_component_by_ref() which is no more. - (e_shell_send_receive): BONOBO_EX_REPOID() instead of - BONOBO_EX_ID(). - (e_shell_get_config_listener): Return the config_listener. - - * e-shell-view.c (find_inbox_in_storage): Use _() instead of U_(). - (load_images): Pass NULL as the error arg to - gdk_pixbuf_new_from_file(). - (load_images): Likewise. - (find_inbox_in_storage): Work around the lack of - g_utf8_strcasecmp() in glib-2.0. - (class_init): GLIB2-ified. Also, use the marshallers in - e-shell-marshal.h. - (pop_up_folder_bar): Use gtk_window_move()/gtk_widget_show() - instead gtk_widget_popup(). - (unmerge_on_error): Work around the death of - bonobo_ui_component_get_win() and - bonobo_window_deregister_component_by_ref(). - (e_shell_view_construct): Pass NULL as the uic arg to - bonobo_window_construct(). Add missing GTK_SIGNAL_FUNC() cast. - Match the new BonoboWindow behavior wrt the UIContainer and the - new opt_ev args. - (display_uri): Use bonobo_ui_engine_freeze() and - bonobo_ui_engine_thaw() since bonobo_window_freeze() and - bonobo_window_thaw() got axed [sigh]. - (e_shell_view_save_settings): Use EConfigListener. - (e_shell_view_load_settings): Likewise. - (get_view_for_uri): Use bonobo_widget_new_control_from_objref() - instead of e_bonobo_widget_new_control_from_objref(). - - * e-shell-view-menu.c (command_help_faq): Pass NULL for the error - arg to gnome_url_show(). - (command_about_box): Use GtkDialog instead of a GtkWindow of a - type GTK_WINDOW_DIALOG [which does not exist anymore]. - (command_xml_dump): Removed. - (menu_do_misc): Do not add the corresponding verb. - - * e-shell-user-creatable-items-handler.c (execute_verb): Use - BONOBO_EX_REPOID(). - - * e-shell-startup-wizard.c: Remove id member from SWData. Replace - member db with config_listener. - (e_shell_startup_wizard_create): Initialize config_listener. - (make_mail_dialog_pages): Do not set the listener id here. - (druid_event_notify_cb): Pass FALSE as the help_sensitive arg to - gnome_druid_set_buttons_sensitive(). - (e_shell_startup_wizard_create): Likewise. - (make_mail_dialog_pages): Use bonobo-activation instead of OAF. - (get_intelligent_importers): Likewise. - (prepare_importer_page): Likewise. - (start_importers): Do nothing here for now. - (finish_func): Constify local variable displayname. - (finish_func): Updated to use the config_listener instead of the - bono-conf db. - (prepare_importer_page): Do not actually run the importer yet. - (e_shell_startup_wizard_create): Pass NULL as the domain arg to - glade_xml_new(). Use the config_listener. - - * e-shell-shared-folder-picker-dialog.c (user_clicked): - BONOBO_EX_REPOID() instead of BONOBO_EX_ID(). - (setup_name_selector): Likewise. - (setup_name_selector): Use bonobo-activation. - (show_dialog): Pass NULL as the domain arg to glade_xml_new(). - (setup_name_selector): Add a missing GTK_SIGNAL_FUNC() cast. - - * e-shell-settings-dialog.c: #include - <bonobo-activation/bonobo-activation.h>. Use - Bonobo_ActivationProperty instead of OAF_Property. - (set_dialog_size): Use gtk_style_get_font() to get the font from - the widget->style. - (load_pages): Converted to use bonobo-activation instead of OAF. - Pass NULL as the error arg to gdk_pixbuf_new_from_file(). - - * e-shell-offline-sync.c (sync_folder): BONOBO_EX_REPOID(), not - BONOBO_EX_ID(). - (e_shell_offline_sync_all_folders): For now, avoid doing anything - [see changes to e-shell-config-offline.c below]. - (setup_progress_listener): #if 0 for now. - (setup_dialog): Likewise. - (sync_folder): Likewise. - (cleanup): Likewise. - (progress_listener_servant_free): Likewise. - (progress_listener_servant_new): Likewise. - (impl_SyncFolderProgressListener_updateProgress): Likewise. - (impl_SyncFolderProgressListener_reportSuccess): Likewise. - (impl_SyncFolderProgressListener_reportFailure): Likewise. - (progress_dialog_close_callback): Likewise. - (progress_dialog_clicked_callback): Likewise. - - * e-shell-offline-handler.c (prepare_for_offline): Use - BONOBO_EX_REPOID(). - (pop_up_confirmation_dialog): Pass NULL as the domain arg to - glade_xml_new(). - (class_init): GLIB2-ified. - - * Makefile.am: Do not compile e-shell-importer.c, - e-shell-importer.h for now. - - * e-shell-folder-title-bar.c (get_max_clipped_label_width): Use - gtk_style_get_font() to retrieve the font. - (class_init): GLIB2-ified. - (e_shell_folder_title_bar_construct): Get {x,y}thickness from - widget->style, not from widget->style->klass. - - * e-shell-folder-selection-dialog.c: #include <string.h>, - <gtk/gtklabel.h> and <gtk/gtksignal.h>. - (class_init): GLIB2-ified. - - * e-shell-folder-creation-dialog.c: No <libgnome/gnome-defs.h>, - add some GTK includes. - (e_shell_show_folder_creation_dialog): Pass NULL as the domain arg - to glade_xml_new(). Added missing GTK_SIGNAL_FUNC() cast. - - * e-shell-folder-commands.c: Do not #include - <libgnomeui/gnome-stock.h> and #include - <bonobo-conf/Bonobo_Config.h>. - - * e-shell-config-default-folders.c: Replace member db in - EvolutionDefaultFolderConfig with config_listener. - (e_shell_config_default_folders_create_widget): Init here. - (config_control_destroy_cb): Unref here. - (config_control_apply_cb): Use EConfigListener instead of - BonoboConf. - (setup_folder_selector): Likewise. - (e_shell_config_default_folders_create_widget): Pass NULL as the - domain arg to glade_xml_new(). - - * e-shell-config-offline.c (config_control_apply_callback): For - now, do not change the configuration. [Needs to be ported to - EConfigListener or something, but we were storing a sequence using - typecodes here and there is no trivial way to do that right now.] - (init_storage_set_view_status_from_config): Likewise, do not - retrieve the configuration here. - - * e-shell-marshal.list: Removed duplicates, added a bunch new - marshallers. - -2002-11-02 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-config-autocompletion.c: No bonobo-conf; removed member - db in struct EvolutionAutocompletionConfig and replaced with a - config_listener arg. - (e_shell_config_autocompletion_create_widget): Init it here. - (config_control_destroy_callback): Unref it here. - (config_control_apply_callback): Updated to use the - config_listener. - - * e-shell-config.c (e_shell_config_factory_register): Use - bonobo_generic_factory_new() instead of - bonobo_generic_factory_new_multi(). - - * e-shell-about-box.c (impl_realize): Pass NULL as the error arg - to gdk_pixbuf_new_from_file(). - (timeout_callback): Use gtk_style_get_font() to retrieve the - style's font instead of style->font. - (impl_draw): Removed. - (impl_expose_event): Do the drawing of the pixmap here. - - * e-setup.c (e_setup_check_db): Removed. - (e_setup_check_config): New, version using EConfigListener instead - of bonobo-conf. - - * e-setup.h: #include "e-util/e-config-listener.h" instead of - <bonobo-conf/bonobo-config-database.h>. - - * e-local-storage.c (construct): Use _() instead of U_(). - (setup_stock_folders): Likewise. - - * e-icon-factory.c (load_icon): Pass NULL as the error arg to - gdk_pixbuf_new_from_file(). - - * e-folder-type-registry.c (folder_type_new): Pass NULL as the - error arg to gdk_pixbuf_new_from_file(). - - * e-folder-dnd-bridge.c (find_matching_target_for_drag_context): - GdkAtom is not an integer anymore; update accordingly. - - * e-corba-storage.c (async_folder_cb): Constified args - appropriately to match BonoboListenerCallbackFn. - (async_folder_discovery_cb): Likewise. - (cancel_discover_shared_folder): BONOBO_EX_ID() -> - BONOBO_EX_REPOID(). - (e_corba_storage_show_folder_properties): Likewise. - - * e-corba-storage-registry.h, e-corba-storage-registry.c: - BonoboXObjectified. - - * e-corba-config-page.c: Removed member listener_id in struct - ECorbaConfigPagePrivate. - (init): Don't init. - (setup_listener): Bonobo_EventSource_addListener doesn't return an - ID anymore. - (impl_destroy): Just pass the listener to - Bonobo_EventSource_removeListener. - (setup_listener): BONOBO_EX_REPOID() instead of BONOBO_EX_ID(). - (impl_apply): Likewise. - (listener_event_callback): Constified args appropriately to match - BonoboListenerCallbackFn. - (e_corba_config_page_construct): Likewise. - - * e-component-registry.c (wait_for_corba_object_to_die): Pass NULL - for the exception arg to bonobo_unknown_ping(). - - * e-shell-view.h: <bonobo/bonobo-window.h>, not - <bonobo/bonobo-win.h>. - - * e-shell.c: Replace member db in EShellPrivate with an - EConfigListener config_listener. - (destroy): Do not call e_shell_disconnect_db(). Unref - EConfigListener. Destroy settings_dialog if not NULL. Pass - config_listener to e_setup_check_db(). - (e_shell_get_config_db): Removed. - (e_shell_get_config_listener): New. - (e_shell_construct): Set up the config_listener, instead of the - Bonobo_ConfigDatabase. - - * e-shell.h: #include <bonobo-activation/bonobo-activation.h> - instead of <liboaf/oaf.h>. No - <bonobo-conf/bonobo-config-database.h>. - - * e-component-registry.c: #include - <bonobo-activation/bonobo-activation.h> instead of <liboaf/oaf.h>. - - * e-activity-handler.c (task_widget_button_press_event_callback): - Use BONOBO_EX() and BONOBO_EX_REPOID(). - (impl_operationStarted): Don't use GTK_OBJECT_DESTROYED() [needs - to be fixed later]. - (impl_operationProgressing): Likewise. - (impl_operationFinished): Likewise. - (impl_requestDialog): Likewise. - - * evolution-wizard.c (evolution_wizard_class_init): GLIB2-ified. - - * evolution-wizard.h: Remove BEGIN_GNOME_DECLS/END_GNOME_DECLS. - - * evolution-storage.c: Chagned to use generated marshallers - instead of custom ones or GAL's. - - * eshell-marshal.list: New. - * Makefile.am: Added rule to build eshell-marshal.[ch] and link - them in. - - * evolution-storage.h, evolution-storage.c: BonoboXObjectified. - - * evolution-storage-set-view-listener.c (class_init): GLIB2-ified. - - * evolution-storage-listener.c (class_init): GLIB2-ified. - - * evolution-shell-view.h, evolution-shell-view.c: - BonoboXObjectified. - - * evolution-shell-component-utils.c: #include - <bonobo-activation/bonobo-activation.h>. - (e_pixmaps_update): Pass NULL as the error arg to - gdk_pixbuf_new_from_file(). - (e_activation_failure_dialog): Bonobo_GeneralError instead of - OAF_GeneralError. - (e_get_activation_failure_msg): Likewise. - - * evolution-shell-component-dnd.h, evolution-shell-component-dnd.c: - BonoboXObjectified. - - * evolution-shell-component.c: #include <unistd.h>. - (owner_ping_callback): Pass NULL for the opt_ev arg to - bonobo_unknown_ping(). - (impl_populateFolderContextMenu): Pass NULL for the opt_ev arg to - bonobo_ui_component_set_container(). - (class_init): GLIB2-ified. - - * e-component-registry.c (component_free): Use g_object_unref() on - the EvolutionShellComponentClient instead of - bonobo_object_unref(). - (register_component): Likewise. - (component_new): Likewise, use g_object_ref() instead of - bonobo_object_ref(). - - * evolution-shell-component-client.c: New member corba_objref in - EvolutionShellComponentClientPrivate. - (init): Init to CORBA_OBJECT_NIL. - (impl_destroy): Unref. Also CORBA_OBJECT_NILify all the pointers - to unreffed objects. - (corba_exception_to_result): Use BONOBO_EX_REPOID(ev) instead of - ev->_repo_id. - (evolution_shell_component_client_construct): Set the corba_objref - pointer, do not call bonobo_object_client_construct(). - (evolution_shell_component_client_new): Use - bonobo_activation_activate_from_id() here instead of - oaf_activate_from_id(). - - * evolution-shell-component-client.h, - evolution-shell-component-client.c: Derive from GObject instead of - BonoboObjectClient. - - * evolution-shell-client.c - (evolution_shell_client_create_storage_set_view): Use - BONOBO_EX_REPOID() instead of BONOBO_EX_ID(). - - * evolution-folder-selector-button.c (destroy): g_object_unref the - EvolutionShellClient instead of bonobo_object_unref(). - (evolution_folder_selector_button_construct): Likewise. - - * e-folder-list.c (e_folder_list_destroy): g_object_unref the - EvolutionShellClient instead of bonobo_object_unref(). - (e_folder_list_construct): g_object_ref the EvolutionShellClient - instead of bonobo_object_ref(). - - * evolution-shell-client.c: New member corba_objref in - EvolutionShellClientPrivate. - (init): Init to CORBA_OBJECT_NIL. - (destroy): Unref/release. - (query_shell_interface): Use BONOBO_EX() and BONOBO_EX_REPOID() - instead of ._major and ._repo_id. - (destroy): Likewise. - (evolution_shell_client_get_local_storage): Likewise. - - * evolution-shell-client.h: Derive from GObject instead of - BonoboObjectClient. - - * evolution-session.c (corba_class_init): Get klass arg. - (class_init): Pass klass arg. GLIB2-ified. - (evolution_session_construct): Removed. - (evolution_session_new): Just return what gtk_type_new() returns. - - * evolution-session.h, evolution-session.c: Derive from - BonoboXObject. - - * evolution-folder-selector-button.c (init): Make icon a GtkImage - instead of a BonoboUIToolbarIcon. - (set_folder, class_init): GLIB2-ified. - - * evolution-config-control.c (class_init): GLIB2-ified. - - * evolution-activity-client.c (corba_update_progress): Use - BONOBO_EX_REPOID() instead of ._major and ._repo_id. - (evolution_activity_client_request_dialog): Likewise. - (impl_destroy): Likewise. - (class_init): GLIB2-ified. - - * e-folder-list.c: #include <gtk/gtframe.h> and #include - <string.h>. - (e_folder_list_destroy): bonobo_object_unref(), not - bonobo_object_client_unref(). - (e_folder_list_init): Pass NULL as the domain to glade_xml_new(). - - * e-folder-list.h: #include <gtk/gtkvbox.h>. - - * e-folder.c (impl_remove): Renamed from remove(). - (impl_get_physical_uri): Renamed from get_physical_uri(). - (impl_load_info): Renamed from load_info(). - (impl_save_info): Renamed from save_info(). - (class_init): GLIB2-ified. - - * Evolution-Session.idl: #include <Bonobo.idl>, not <Bonobo.h>. - * Evolution-Offline.idl: Likewise. - * Evolution-ShellComponent.idl: Likewise. - * Evolution-ShellComponentDnd.idl: Likewise. - * Evolution-Storage.idl: Likewise. - - * Makefile.am: Do not compile the importer directory for now. - - * evolution-wizard.c (evolution_wizard_set_buttons_sensitive): - ORBit2-ize type names. - (evolution_wizard_set_show_finish): Likewise. - (evolution_wizard_set_page): Likewise. - -2002-10-28 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-settings-dialog.c (set_dialog_size): Increase the width - slightly. - - * e-shell-view-menu.c: Set "settings.png" as the icon for - /menu/Tools/Settings. - -2002-10-25 Ettore Perazzoli <ettore@ximian.com> - - [#31303] - - * e-shell-view (storage_set_view_box_button_release_event_cb): Pop - down the popup folder bar if it's a toplevel node. - (folder_bar_popup_map_callback): Connect to the "folder_opened" - signal on the storage_set_view. - -2002-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-folder-list.c (create_display_string): Don't turn the string - from UTF-8 to GTK. [#32032] - -2002-10-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (setup_local_storage): Set the is_stock flag to TRUE - for the summary folder. - - * e-shell-view.c (setup_verb_sensitivity_for_folder): Don't allow - folder operations on pseudo-folders that have a NULL physical_uri. - - * e-corba-storage.c (async_remove_folder): Make sure the folder - has a physical URI. [#30950] - -2002-10-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-shared-folder-picker-dialog.c - (setup_server_option_menu): Use - e_utf8_gtk_menu_item_new_with_label() to create the option menu - items from the storage's UTF-8 name. [#31564] - -2002-10-21 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component-utils.c - (e_get_activation_failure_msg): If the exception_id is NULL, - return NULL instead of crashing. [#25891] - -2002-10-17 Ettore Perazzoli <ettore@ximian.com> - - [Implement the Cancel button in the "Open other user's folder" - dialog, as per #27735.] - - * e-corba-storage.c (cancel_discover_shared_folder): New, - implementation for the cancel_discover_shared_folder virtual - method. - (class_init): Install. - - * evolution-test-component.c - (storage_discover_shared_folder_callback): Instead of passing the - listener to the timeout function, just pass the storage. Put the - listener and the timeout ID on the storage object by using - gtk_object_set_data(). - (shared_folder_discovery_timeout_callback): Updated accordingly. - (storage_cancel_discover_shared_folder_callback): New, callback - for the cancel_discover_shared_folder signal. - (setup_custom_storage): Connect. - - * e-shell-shared-folder-picker-dialog.c: New member storage in - struct DiscoveryData. While I am at it, rename member user to - user_email_address. - (discover_folder): Set the storage member. - (cleanup_discovery): Unref storage member. - (progress_dialog_clicked_callback): New, callback for the - "clicked" signal on the dialog. - (discover_folder): Connect. - - * evolution-storage.c (class_init): Install signal - "cancel_discover_shared_folder". - (impl_Storage_cancelDiscoverSharedFolder): New, implementation for - the cancelDiscoverSharedFolder CORBA method; emit - "cancel_discover_shared_folder". - (evolution_storage_get_epv): Install CORBA method implementation. - - * evolution-storage.h: Add signal cancel_discover_shared_folder. - - * e-storage.c (e_storage_cancel_discover_shared_folder): New. - - * e-storage.h: New virtual method cancel_discover_shared_folder. - - * Evolution-Storage.idl (cancelDiscoverSharedFolder): New. - -2002-10-07 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c (choose_importer_from_list): Change the - selection mode to GTK_SELECTION_BROWSE so there is always a - selection. The code here doesn't handle a NULL selection. - [#31690] - - * e-shell-importer.c (import_cb): Only delay half a second - (instead of 5 seconds) when getting EVOLUTION_IMPORTER_NOT_READY - or EVOLUTION_IMPORTER_BUSY. - - * importer/evolution-importer-listener.c - (impl_GNOME_Evolution_ImporterListener_notifyResult): Removed - debugging message. - -2002-10-04 Chris Toshok <toshok@ximian.com> - - * e-shell-folder-selection-dialog.c (delete_event_cb): new - function, emit cancelled so the folder selector button will - sensitize the parent window again. - (e_shell_folder_selection_dialog_construct): connect the - delete_event signal. - -2002-09-30 Aaron Weber <aaron@ximian.com> - - * importer/import.glade: Import Assistant vs. Importer assistant. - - * glade/evolution-startup-wizard.glade: setup/set up confusion in 15. - -2002-09-30 Dan Winship <danw@ximian.com> - - * e-shell-view-menu.c (command_remove_other_users_folder): Calls - e_shell_command_remove_shared_folder. - (file_verbs): Set up command_remove_other_users_folder. - - * e-shell-folder-commands.c - (e_shell_command_remove_shared_folder): New. Calls - e_storage_set_async_remove_shared_folder with a callback to pop up - an error dialog if it fails. - - * e-storage-set.c (e_storage_set_async_remove_shared_folder): - Implement. Mostly like async_remove_folder. - - * e-storage.c (e_storage_supports_shared_folders, - e_storage_async_discover_shared_folder, - e_storage_async_remove_shared_folder): New methods. Default - implementations return FALSE, NOTIMPLEMENTED, and NOTIMPLEMENTED. - - * e-corba-storage.c (supports_shared_folders, - async_discover_shared_folder, async_remove_shared_folder): - Implement using CORBA. - - * Evolution-Storage.idl: add Storage_asyncRemoveSharedFolder - - * e-shell-shared-folder-picker-dialog.c: Remove all the CORBA - stuff from here and use the new EStorage methods. - (setup_server_option_menu): Use e_storage_supports_shared_folders. - (discover_folder): Use e_storage_async_discover_shared_folder. - - * evolution-storage.c (impl_Storage_asyncRemoveSharedFolder): - Implement this by emitting a REMOVE_SHARED_FOLDER signal. - (impl_Storage_asyncDiscoverSharedFolder): Make the - DISCOVER_SHARED_FOLDER signal put the Bonobo_Listener first like - all the other signals do. - (class_init): Set up REMOVE_SHARED_FOLDER signal. - -2002-09-30 Dan Winship <danw@ximian.com> - - * evolution-folder-selector-button.c (clicked): If we return from - evolution_shell_client_user_select_folder to find that our parent - window has been destroyed, unref it and bail out, since that means - we've been destroyed (and probably finalized) too. #31360 - -2002-09-26 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (load_folder): Always return TRUE, even in the - unknown-type case. - -2002-09-25 Rodrigo Moya <rodrigo@ximian.com> - - * e-shell-importer.c (importer_file_page_new): set history_id on - GnomeFileEntry, to actually get the history. - -2002-09-25 Dan Winship <danw@ximian.com> - - * e-shell-folder-selection-dialog.c (check_folder_type_valid): - If one of the allowed types is "type/*", allow anything starting - with "type/". - (impl_clicked): If the first allowed type is "type/*", pass "type" - to e_shell_show_folder_creation_dialog. - - * evolution-folder-selector-button.c - (evolution_folder_selector_button_set_uri): Handle "type/*" as an - allowed type. - - * e-shell-settings-dialog.c (e_shell_settings_dialog_show_type): - If there are no pages for the current folder type, try the parent - type (eg, "mail" for "mail/public"). - - * e-shell-config-autocompletion.c - (e_shell_config_autocompletion_create_widget): Use "contacts/*" as - the allowed folder type. - -2002-09-25 Ettore Perazzoli <ettore@ximian.com> - - [Finish fixing #11645.] - - * e-shell-folder-commands.c (xfer_result_callback): Don't update - the shortcuts here anymore since now the shell takes care of it. - - * e-shell.c (storage_set_moved_folder_callback): New callback for - EStorageSetView::folder_moved; update the shortcuts. - (e_shell_construct): Connect. - - * e-storage-set.c: Renamed StorageConverterCallbackData to - StorageCallbackData. New members destination_folder, - source_folder, operation in it. - (class_init): Install "moved_folder" signal. - (storage_callback_data_new): Renamed from - storage_converter_callback_data_new. - (storage_callback_data_free): New. - (storage_callback): Renamed from storage_callback_converter. Use - storage_callback_data_free(). - (e_storage_set_async_create_folder): Updated to use the - storage_callback and storage_callback_data_new(). - (e_storage_set_async_remove_folder): Likewise. - (e_storage_set_async_xfer_folder): Likewise. - - * e-storage-set.h: New signal "moved_folder". - -2002-09-24 Ettore Perazzoli <ettore@ximian.com> - - [Fix #11645 for menu-based folder move operations. Still requires - fixage for the DnD case.] - - * e-shell-view-menu.c (launch_pilot_settings): Placate compiler. - - * e-shell-folder-commands.c (xfer_result_callback): When - FOLDER_COMMAND_MOVE, update the shortcuts by using - e_shortcuts_update_shortcuts_for_changed_uri(). - - * e-shortcuts.c (e_shortcuts_update_shortcuts_for_changed_uri): - New. - -2002-09-24 Dan Winship <danw@ximian.com> - - * e-shell.c (folder_selection_dialog_folder_selected_cb): Don't - destroy the dialog. It does that itself whenever it emits - folder_selected. - - * e-shell-folder-selection-dialog.c (double_click_cb): Don't close - the dialog if the user double-clicks a bad folder. Just ignore it - (like we do when they click OK on a bad folder). - -2002-09-24 Ettore Perazzoli <ettore@ximian.com> - - [#14019] - - * e-shell-view-menu.c: Add PilotConduitSettings verb. - (command_pilot_conduit_settings): Implementation for the verb. - (launch_pilot_settings): Helper function. - -2002-09-24 Mike Kestner <mkestner@ximian.com> - - * e-storage-set-view.c (e_storage_set_enable_search): Use the new - e_tree_set_search_column function instead of my lameass sort hack. - -2002-09-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_construct): Oops, no @shell argument to - e_shell_startup_wizard_create(). - -2002-09-23 Ettore Perazzoli <ettore@ximian.com> - - [#28317] - - * e-shell-view-menu.c (command_close): Use - e_shell_request_close_view(). - - * e-shell.c (e_shell_request_close_view): New, code moved out of - view_delete_event_cb(). - (view_delete_event_cb): Use it. - -2002-09-23 Ettore Perazzoli <ettore@ximian.com> - - [Fix #16556.] - - * e-shell.c (e_shell_construct): Pass self to - e_shell_startup_wizard_create. - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): Get a - shell argument. Set the shell interactive when doing the start-up - wizard thing. - - * e-shell.c (e_shell_set_interactive): New. - -2002-09-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-creation-dialog.c (get_type_from_parent_path): - Return "mail" instead of NULL when we don't have a parent folder. - [#28232] - -2002-09-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Added some missing names. - - * main.c (main): Declare --force-upgrade correctly so it works. - -2002-09-20 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (class_init): Use PARENT_TYPE instead of - e_tree_get_type(). - -2002-09-20 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c: Removed member sort_idle_id in - EStorageSetViewPrivate. - (resort): Removed. - (sort_traverse_callback): Removed. - (sort_idle_callback): Removed. - (queue_resort): Removed. - (impl_destroy): Removed. - (folder_name_changed_cb): Sort now instead of queueing a resort. - -2002-09-19 Ettore Perazzoli <ettore@ximian.com> - - [Fix #28495 with a lame hack that works around Bonobo sizing - brokenness] - - * e-shell-settings-dialog.c (set_dialog_size): New. - (impl_realize): Override for GtkWidget::realize; invoke - set_dialog_size() to set a minimum size. - (class_init): Install. - -2002-09-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-creation-dialog.c (async_create_cb): Don't set - the current folder for E_STORAGE_EXISTS. [#30533] - -2002-09-19 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage.c (evolution_storage_update_folder): Do not - stop propagating the notification to the listeners if - ::notifyFolderUpdate() fails. [#27662 (?)] - -2002-09-19 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (resort): New. - (sort_idle_callback): Use it. - (insert_storages): Use resort() instead of queue_resort() so we - sort immediately. - -2002-09-18 Mike Kestner <mkestner@ximian.com> - - * e-storage-set-view.c (etree_value_at): bandaid for 30248. - -2002-09-18 Not Zed <NotZed@Ximian.com> - - * evolution-wizard.c (impl_GNOME_Evolution_Wizard_notifyAction): - Allow 'back' to run if we're on the finish page. For #29293. - -2002-09-17 Ettore Perazzoli <ettore@ximian.com> - - * e-storage.c (e_storage_result_to_string): Add description for - E_STORAGE_NOTONLINE. - - * e-corba-storage.c - (e_corba_storage_corba_result_to_storage_result): Support - GNOME_Evolution_Storage_NOT_ONLINE (E_STORAGE_NOTONLINE). - - * Evolution-Storage.idl: Add NOT_ONLINE to enum Result. - - * e-storage.h: Add E_STORAGE_NOTONLINE to EStorageResult enum. - -2002-09-17 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (sort_idle_callback): Remove unused - variable. - - * e-shell-view.c (shell_line_status_changed_cb): Make Send/Receive - insensitive when in offline mode. [#27855] - -2002-09-17 Ettore Perazzoli <ettore@ximian.com> - - [Fix #28451.] - - * e-storage-set-view.c: New member sort_idle_id in - EStorageSetViewPrivate. - (init): Init to zero. - (impl_destroy): Remove the idle source if not zero. - (queue_resort): New. - (sort_idle_callback): Idle function to sort. - (setup_folder_changed_callback): New. - (new_folder_cb): Call it on the new folder so we get the callback - for new folders too. - (popup_folder_menu): Ref the folder before popping up the menu, - unref it after popping it down [the folder might be unreffed in - gnome_popup_menu_do_popup_modal() because of a folder action]. - (new_storage_cb): Just queue_resort() instead of sorting. - (new_folder_cb): Likewise. - (insert_folders): Likewise. - (insert_storages): Likewise. - (folder_changed_cb): Queue a resort here too. - - * e-folder.c (class_init): Set up "name_changed" signal. - (e_folder_set_name): Emit "name_changed". - - * e-folder.h: New signal "name_changed". - -2002-09-17 Kjartan Maraas <kmaraas@gnome.org> - - * e-shell-settings-dialog.c (page_new): Invoke gettext on - strings coming from the .oaf files. - -2002-09-17 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c: Remove some leftover junk. - -2002-09-17 Kjartan Maraas <kmaraas@gnome.org> - - * e-folder-list.c (create_display_string): Mark a string for - translation. - - * evolution-folder-selection-button.c (set_folder): Same here. - -2002-09-17 Ettore Perazzoli <ettore@ximian.com> - - * e-storage.c (e_storage_removed_folder): When a highlighted - folder gets removed, update the parent to not have a highlight. - [#24062] - -2002-09-16 Ettore Perazzoli <ettore@ximian.com> - - * evolution-nognome.in: New script to run Evolution under a - non-GNOME session when using a non-default GNOME prefix and a - non-default Evolution prefix. - -2002-09-11 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c (setup_bonobo_conf_private_directory): g_free() not - free(), since we allocate with glib functions. [#19899] - -2002-09-05 Mike Kestner <mkestner@ximian.com> - - * Makefile.am : no longer distribute the etstate files. - * e-shell-folder-selection-dialog.c : enable_search on the view. - * e-storage-set-view.c : add search_enabled flag handling. - (e_storage_set_view_set_show_checkboxes): manipulate the existing state - instead of loading a state file from disk. - (e_storage_set_view_enable_search): new. set a column in the sort_info - on the etree to allow keystroke jumping in the etree. - -2002-09-05 Anna Marie Dirks <anna@ximian.com> - - * GNOME_Evolution_Shell.oaf.in : Changed the description - of the folders page in the settings dialog to be more specific. - -2002-09-04 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (INCLUDES): Add a -DPREFIX. - - * main.c (main): New command-line option "force-upgrade". - (show_development_warning): Suggest 1.0.8, not 1.0.5. - (upgrade_from_1_0_if_needed): New. - (idle_cb): Call it. - -2002-09-04 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (new_folder_cb): Pass FALSE as @queue to - e_shell_view_display_uri() here. - -2002-09-04 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (e_shell_view_get_current_component_id): If the - current_folder_type is NULL, just return NULL instead of passing - it to e_folder_type_registry_get_handler_for_type() [and generate - a warning]. [#21122] - -2002-09-04 Dan Winship <danw@ximian.com> - - * glade/e-shell-shared-folder-picker-dialog.glade: Remove the - "blah blah" text for now and change "Server" to "Account". - -2002-09-04 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-09-04 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Pass FALSE as @restore_all_views to - e_shell_restore_from_settings() so we only restore the first view. - - * e-shell.c (e_shell_restore_from_settings): New arg - @restore_all_views. - -2002-09-04 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (popup_folder_menu): Remove the context - menu items using - evolution_shell_component_client_unpopulate_folder_context_menu() - instead of doing it ourself, since BonoboUI sucks. - - * evolution-shell-component-client.c - (evolution_shell_component_client_unpopulate_folder_context_menu): - New. - - * evolution-test-component.c (register_component): Pass NULL as - @unpopulate_folder_context_menu_fn to - evolution_shell_component_new(). - - * evolution-shell-component.c: New member - unpopulate_folder_context_menu_fn in - EvolutionShellComponentPrivate. New member uic in - EvolutionShellComponentPrivate. - (init): Init new members to NULL. - (destroy): bonobo_object_unref() priv->uic if not NULL. - (evolution_shell_component_new): New arg - @unpopulate_folder_context_menu_fn. - (evolution_shell_component_construct): Likewise. - (impl_populateFolderContextMenu): Set priv->uic to the newly - created UIComponent. - (impl_unpopulateFolderContextMenu): New, implementation for the - ::unpopulateFolderContextMenu CORBA method. - (class_init): Install. - - * Evolution-ShellComponent.idl (unpopulateFolderContextMenu): New - method. - (AlreadyPopulated): New exception. - (populateFolderContextMenu): Can raise it. - (NotPopulated): New exception. - -2002-09-03 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (popup_folder_menu): Create an Items - placeholder under ComponentPlaceholder, and then - bonobo_ui_component_rm() it after we are done with the menu. This - -should- fix #29782, but it doesn't. I am not sure why. - - * evolution-shell-component.h - (EVOLUTION_SHELL_COMPONENT_POPUP_PLACEHOLDER): Append a "/Items" - part. - -2002-09-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c (show_import_wizard): Make the WM close - button in the dialog hide instead of destroying, using - gnome_dialog_close_hides(). [#15572] - -2002-08-28 Dan Winship <danw@ximian.com> - - * e-shell.c (setup_components): Pass a selection_order to - oaf_query so we get the components back in a consistent order. - Hack fix for #28490 for 1.2 by ensuring that Connector gets - started before evolution-mail. - (get_icon_path_for_component_info): Rename the oaf icon name - property to use underscores to match the launch order property - (which needs to use underscores because dashes are interpreted as - subtraction in the selection_order context). - -2002-08-27 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (get_shortcut_info): Make sure - *custom_icon_name_return is at least set to NULL on return [it - used to leave it uninitialized if the URI was not prefixed with - E_SHELL_URI_PREFIX]. Also use e_shell_parse_uri() to parse the - URI so we handle the default shortcuts properly, too. - -2002-08-19 Dan Winship <danw@ximian.com> - - * e-shell-shared-folder-picker-dialog.c (show_dialog): Get the - "addresses" property of the select names control rather than - "text", so we get the email address too. #28953 - - * e-folder-type-registry.c - (e_folder_type_registry_type_registered, - e_folder_type_registry_unregister_type): Fix the names of these - functions. (They previously used "register" instead of - "registry".) - - * e-component-registry.c (register_type): Update for renaming - - * e-local-storage.c (load_folder): Likewise - -2002-08-16 Dan Winship <danw@ximian.com> - - * evolution-folder-selector-button.c - (evolution_folder_selector_button_set_uri): If the selected URI is - of an invalid type, don't accept it. - (evolution_folder_selector_button_get_folder): Returns the - selected folder. - (various): updates to support get_folder, and to simplify. - -2002-08-09 Dan Winship <danw@ximian.com> - - * e-shell-shared-folder-picker-dialog.c (create_progress_dialog): - Remove both timeouts when the dialog is destroyed, not just one of - them. - (shared_folder_discovery_listener_callback): Don't try to access - fields of discovery_data after destroying it. Interpret the result - argument correctly, and put up an error dialog (using - e_corba_storage_corba_result_to_storage_result and - e_storage_result_to_string) if something went wrong. - - * e-corba-storage.c - (e_corba_storage_corba_result_to_storage_result): convert a - GNOME_Evolution_Storage_Result to an EStorageResult. - (async_folder_cb): Use that. - -2002-08-06 Dan Winship <danw@ximian.com> - - * e-storage-set-view.c (folder_property_item_verb_callback): Don't - include the storage name in the path passed to - e_corba_storage_show_folder_properties, for consistency with the - other EStorage methods. - -2002-08-06 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c - (storage_show_folder_properties_callback): New callback for the - show_folder_properties signal. - (setup_custom_storage): Add two property items, and connect the - callback to the signal. - - * e-storage-set-view.c: Renamed private member container into - ui_container; new member ui_component. - (init): Initialize ui_component to NULL. - (impl_destroy): Unref if not NULL. - (e_storage_set_view_construct): If @ui_container is not NULL, - weakref it and create a new ui_component that uses it as its - container. - (ui_container_destroy_notify): New, weakref destroy callback for - priv->ui_container. - (remove_property_items): New helper function. - (setup_folder_properties_items_if_corba_storage_clicked): New - helper function. - (folder_property_item_verb_callback): New callback for the verbs - associated to the folder property items. - (popup_folder_menu): Set up the per-storage folder property items - using setup_folder_properties_items_if_corba_storage_clicked() and - remove them with remove_property_items() after the menu has been - popped down. Don't invoke populate_folder_context_menu if there - is no handler for this node [this avoids a spurious warning]. - - * e-corba-storage.c (e_corba_storage_show_folder_properties): New. - (e_corba_storage_get_folder_property_items): New. - (e_corba_storage_free_property_items_list): New. - - * evolution-storage.c: New private member folder_property_items. - (init): Init to NULL. - (destroy): Free. - (impl_showFolderProperties): New, implementation for the - Storage::showFolderProperties CORBA method. - (class_init): Set up the "show_folder_properties" signal here. - (impl_Storage__get_propertyItems): New, getter for the - Storage::propertyItems property. - (corba_class_init): Install the new methods. - (evolution_storage_add_property_item): New function to add - property items to the storage. - - * evolution-storage.h: New signal show_folder_properties. - - * e-storage-set.c (e_storage_set_create_new_view): Renamed from - e_storage_set_new_view(). - - * Evolution-Storage.idl: Added attribute folderPropertyItems and - method ::showFolderProperties. - -2002-08-01 Ettore Perazzoli <ettore@ximian.com> - - * e-gray-bar.c (endarken_style): Set the color for - GTK_STATE_INSENSITIVE too so it doesn't look ugly when we quit. - -2002-07-31 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (create_default_shortcuts_cb): New, implement - a right-click -> "Add Default Shortcuts" menu item. - (rename_group_cb): Remove double casts. *lol* - - * e-shortcuts.c (e_shortcuts_add_default_shortcuts): New. - (e_shortcuts_add_default_group): Use - e_shortcuts_add_default_shortcuts(). - -2002-07-31 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-user-creatable-items-handler.c (ensure_menu_items): - Don't sort the menu_items here. - (create_menu_xml): Instead, sort here, and only sort the - non-default section of the menu. - (get_default_action_for_view): Just get the first item that is - default; since we don't sort anymore, this works. - (find_menu_item_for_verb): Removed since it is not used anymore. - -2002-07-31 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c (register_component): Pass NULL for - @folder_type to - evolution_shell_component_add_user_creatable_item(). - - * e-shell-user-creatable-items-handler.c: New member folder_type - in struct MenuItem. - (ensure_menu_items): Initialize ->folder_type. - (item_is_default): New helper function. - (create_menu_xml): New arg @folder_type. Put the items on the top - using item_is_default(). - (shell_view_view_changed_callback): Pass the folder type to - create_menu_xml(). - - * evolution-shell-component.c: New member folder_type in - UserCreatableItemType. - (user_creatable_item_type_new): New arg @folder_type. - (user_creatable_item_type_free): Free ->folder_type. - (evolution_shell_component_add_user_creatable_item): New arg - @folder_type. - (impl__get_userCreatableItemTypes): Set ->folderType in the - returned CORBA structs. - - * Evolution-ShellComponent.idl: New member folderType in struct - UserCreatableItemType. - - * e-shell-user-creatable-items-handler.c: New member component_id - in struct MenuItem. Removed member menu_xml from - EShellUserCreatableItemsHandlerPrivate. - (init): No need to initialize menu_xml here anymore. - (impl_destroy): ...And no need to free here, either. - (setup_menu_xml): New, derived from ensure_menu_xml(). This - orders the menu so that the items for the current component go at - the top. - (create_menu_xml): Removed. - (e_shell_user_creatable_items_handler_attach_menus): Set up - properly for the current component ID, using setup_menu_xml(). - -2002-07-29 Jeffrey Stedfast <fejj@ximian.com> - - * evolution-folder-selector-button.c - (evolution_folder_selector_button_set_uri): New function to set - the uri programatically on a EvolutionFolderSelectorButton dingus. - -2002-07-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_new_shortcut): Capitalize the title - of the dialog for consistency. - - * e-shell-folder-creation-dialog.c (setup_dialog): Don't prepend - the window's title with "Evolution -" since we don't do that - anywhere else. Also capitalize properly. - -2002-07-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-user-creatable-items-handler.c (ensure_menu_xml): Put in - the ComponentItems placeholder, instead of NewItems. - -2002-07-26 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (load_all_folders): Don't return FALSE if any - of the folders fails to load; otherwise, if the user has played - with ~/evolution, he might end up not seeing any folders at all. - -2002-07-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_work_online): Remove debugging - message. - (command_work_offline): Likewise. - -2002-07-18 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c (double_click_cb): Renamed - from `dbl_click_cb'. - (check_folder_type): Don't pop up an error dialog anymore. - (check_folder_type_valid): Renamed from check_folder_type(). - (folder_selected_cb): Make the OK button sensitive only if the - type of the selected folder is in the list of valid types; - otherwise, make it insensitive. [#848] - -2002-07-18 Rodrigo Moya <rodrigo@ximian.com> - - * e-shell-importer.c (start_import): removed check for local folders, - so that we can import into non-local ones. - -2002-07-18 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage-set-view.c - (impl_StorageSetView__set_checkedFolders): Removed unused - variable. - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct): - Removed unused variable. - - Mass-replaced G_DIR_SEPARATOR and G_DIR_SEPARATOR_S with - E_PATH_SEPARATOR and E_PATH_SEPARATOR_S: - - * e-storage.c - (e_storage_path_is_absolute) - (e_storage_path_is_relative) - (e_storage_async_xfer_folder) - * e-storage-set.c - (make_full_path) - (get_storage_for_path) - (signal_new_folder_for_all_folders_under_paths) - (signal_new_folder_for_all_folders_in_storage) - (e_storage_set_get_path_for_physical_uri) - * e-storage-set-view.c - (storage_sort_callback) - (new_storage_cb) - (removed_storage_cb) - (new_folder_cb) - * e-shortcuts-view.c - (get_shortcut_info) - * e-shell-view.c - (handle_current_folder_removed) - * e-shell-utils.c - (e_shell_folder_name_is_valid) - * e-local-storage.c - (construct) - * e-folder-tree.c - (get_parent_path) - (get_parent_path) - (e_folder_tree_destroy) - (e_folder_tree_add) - (e_folder_tree_foreach) - * e-folder-dnd-bridge.c - (handle_data_received_path) - * evolution-storage.c - (make_full_uri) - - * e-shell-constants.h: New #defines E_PATH_SEPARATOR and - E_PATH_SEPARATOR_S. - - * e-local-storage.c (load_folder): Don't add the folder if its - type isn't registered. - -2002-07-17 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-07-12 Peter Williams <peterw@ximian.com> - - * Makefile.am (INCLUDES): Add -I$(builddir)/libical/src/libical - for the generated ical.h (some headers rely on this because - they too get installed.) - -2002-07-14 Rodrigo Moya <rodrigo@ximian.com> - - * evolution-storage.c (impl_Storage_getFolderAtPath): no need to - convert the value returned by e_folder_tree_get_folder to a - GNOME_Evolution_Folder, since it already is, and duplicate it before - returning. - -2002-07-14 Chris Toshok <toshok@ximian.com> - - * e-shell.c (folder_selection_dialog_folder_selected_cb): set - corba_folder.customIconName so we don't crash. - (impl_Shell_selectUserFolder): remove the default_type parameter - to fix a compiler warning. - -2002-07-12 Dan Winship <danw@ximian.com> - - * evolution-storage.c (impl_Storage_asyncDiscoverSharedFolder): - dup the listener, for consistency with the other signals - -2002-07-12 Ettore Perazzoli <ettore@ximian.com> - - * evolution-folder-selector-button.c (clicked): Ref the - parent_window and then unref after you are done using it. - [#27673] - -2002-07-12 Peter Williams <peterw@ximian.com> - - * Makefile.am (eshellinclude_HEADERS): Install some headers - that weren't getting installed. - -2002-07-11 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_set_icon): - Allow a NULL icon [remove the precondition]. - - * e-shell-view.c (update_folder_title_bar): Only unref the - folder_icon if not NULL. - -2002-07-11 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage-set-view.c - (impl_StorageSetView__set_checkedFolders): Handle - Folder.evolutionUri as a URI, not as a path. Also use - e_free_string_list(). - -2002-07-11 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (update_folder_title_bar): Ref the folder_icon - that we get from e_folder_type_registry_get_icon_for_type(). - -2002-07-11 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage.c (get_folder_list_foreach): Copy - customIconName and sortingPriority in the new_corba_folder. - [#27670] - -2002-07-11 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c: Remove some `#if 0'ed broken code. - New members title_icon and title_button_icon in struct - EShellFolderTitleBarPrivate. Remove member icon_widget. New - static global variable empty_pixbuf. - (init): Initialize these new members to NULL. Don't initialize - icon_widget anymore since it's gone. - (e_shell_folder_title_bar_construct): Create the title_button_icon - and pack it into the title_button_hbox. Also, create the - title_icon and pack that one as well. Retouched some of the - hardcoded padding values. - (size_allocate_icon): Rewritten to use the title_icon and return - the allocated space like size_allocate_navigation_buttons. - (e_shell_folder_title_bar_set_icon): Remove bogus const from the - @icon arg. Ref the pixbuf, and update the two pixmap widgets from - it. If @icon is NULL, use the empty_pixbuf. - (impl_destroy): Renamed from destroy(). - (realize): Removed. - (unrealize): Removed. - (impl_size_allocate): Renamed from size_allocate(). - (class_init): Call it. - (add_icon_widget): Removed. - (new_empty_pixbuf): New. - (new_empty_pixmap_widget): New. - (size_allocate_navigation_buttons_and_title_icon): Renamed from - size_allocate_navigation_buttons; set up the title_icon too. - - * e-shell-view.c (update_folder_title_bar): Unref the folder_icon - after using it. - - * e-icon-factory.c (e_icon_factory_get_icon): Ref the returned pixbuf. - -2002-07-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (update_folder_title_bar): Get a @folder arg - instead of a @type arg. Use the custom icon if the folder has - one. - (update_for_current_uri): Updated accordingly. - -2002-07-10 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c (setup_custom_storage): Pass - @sorting_priority to evolution_storage_new_folder() so we test it. - Also make /FirstFolder have an "inbox" custom icon. - - * e-local-storage.c (new_folder): Pass zero as @sorting_priority - to evolution_storage_new_folder(). - - * evolution-storage.c (evolution_storage_new_folder): New arg - @sorting_priority; put it in the CORBA folder struct. - - * evolution-shell-client.c - (impl_FolderSelectionListener_selected): Copy the sortingPriority - as well. - - * e-folder.c (e_folder_to_corba): Set sortingPriority. - - * e-corba-storage-registry.c - (impl_StorageRegistry_getFolderByUri): Set sortingPriority in the - new CORBA Folder struct. - - * e-corba-storage.c (impl_StorageListener_notifyFolderCreated): - Set the custom_icon if folder->customIconName is not an empty - string. Likewise, set the sorting_priority - - * Evolution-common.idl: New member sortingPriority in struct - Folder. - - * e-storage-set-view.c (folder_sort_callback): Sort according to - the sorting_priorities. - - * e-folder.c: New member sorting_priority in EFolderPrivate. - (init): Init to zero. - (e_folder_set_custom_icon): Emit "changed" if required. - (e_folder_set_sorting_priority): New. - -2002-07-09 Ettore Perazzoli <ettore@ximian.com> - - * e-icon-factory.c (load_icon): Ooops. Swapped the large/small - pixbufs here. Also, plug a leak. - -2002-07-09 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c (setup_custom_storage): Pass NULL for - @custom_icon_name to evolution_storage_new_folder(). - - * e-local-storage.c (new_folder): Pass the custom_icon_name here - to evolution_storage_new_folder(). - - * evolution-shell-client.c - (impl_FolderSelectionListener_selected): Set customIconName here - too. - - * e-folder.c (e_folder_to_corba): Set customIconName too. - - * e-corba-storage-registry.c - (impl_StorageRegistry_getFolderByUri): Set customIconName. Also, - use e_safe_corba_string() to clean up the code a bit. - - * evolution-storage.c (evolution_storage_new_folder): New arg - @custom_icon_name. - - * Evolution-common.idl: New member customIconName in struct - Folder. - -2002-07-09 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view-model.c (get_icon_for_item): If the - custom_icon_name is not NULL, return the pixbuf for it. - - * e-storage-set-view.c: #include "e-icon-factory.h". - - * e-shortcuts-view.c (impl_shortcut_dropped): Pass the - custom_icon_name. - (get_shortcut_info): New arg @custom_icon_name_return. - (rename_shortcut_cb): Pass the custom_icon_name here. - - * e-shell-view-menu.c (new_shortcut_dialog_folder_selected_cb): - Pass the custom_icon_name for the folder's shortcut. - - * e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar): - Pass the custom_icon_name for the folder's shortcut. - - * e-corba-shortcuts.c (impl_add): Use the customIconName member in - struct ::Shortcuts::Shortcut. - (shorcut_list_to_corba): Set the customIconName member on the - returned shortcuts. - (impl_get): Likewise. - - * Evolution-Shortcuts.idl: New member customIconName in struct - Shortcut. - - * e-shortcuts.c (shortcut_item_new): New arg @custom_icon_name; - initialize the member in EShortcutItem from it. - (shortcut_item_update): New arg @custom_icon_name; set the - custom_icon_name from it. Also remove some braindeadness from - this code. - (update_shortcut_and_emit_signal): New arg @custom_icon_name. - (load_shortcuts): Load the custom icon name from the XML - [eg. <item name="foo" type="mail" icon="inbox">]. - (save_shortcuts): Save the custom icon name in the XML. - (e_shortcuts_add_shortcut): New arg @custom_icon_name. - (update_shortcuts_by_path): Pass the custom_icon_name to - update_shortcut_and_emit_signal(). - (e_shortcuts_update_shortcut): New arg @custom_icon_name; pass it - to update_shortcut_and_emit_signal(). - (e_shortcuts_add_default_group): Pass "inbox" as the - custom_icon_name for the inbox shortcut, and NULL for the other - shortcuts. - - * e-shortcuts.h: New member custom_icon_name in EShortcutItem. - -2002-07-09 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (impl_shortcut_drag_motion): Remove debugging - message. - (impl_shortcut_drag_motion): Likewise. - - * e-local-storage.c (remove_folder_step): Remove debugging message. - - * e-folder-dnd-bridge.c (e_folder_dnd_bridge_data_received): - Remove debugging message. - -2002-07-09 Ettore Perazzoli <ettore@ximian.com> - - * main.c (main): Call e_icon_factory_init(). - - * e-local-storage.c (setup_folder_as_stock): New arg @icon_name; - if not NULL, set up a custom icon for the folder. - (setup_stock_folders): Set up custom icons for inbox and outbox. - - * e-storage-set-view.c (get_pixbuf_for_folder): If the folder has - a custom icon, return the custom icon. - - * e-folder.c: New member custom_icon_name. - (init): Initialize to NULL. - (destroy): Free. - (e_folder_get_custom_icon): New. - (e_folder_set_custom_icon): New. - - * e-icon-cache.c: New. - * e-icon-cache.h: New. - -2002-07-09 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (remove_folder): Remove unused variable. - -2002-07-08 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (toggle_large_icons_cb): Change the group - icon size using e_shortcuts_set_group_uses_small_icons() instead - of changing it on the widget directly. - (toggle_small_icons_cb): Likewise. - (group_change_icon_size_callback): New, callback for the - "group_change_icon_size" signal on the EShortcuts object. - (e_shortcuts_view_construct): Connect. Also, initialize the icon - sizes in the icon bars from the EShortcuts object. - - * e-shell-view.c (e_shell_view_load_settings): Don't set the - shortcut group icon modes here anymore. - - * e-shortcuts.c: New member use_small_icons in struct - ShortcutGroup. - (shortcut_group_new): Init to FALSE. - (e_shortcuts_set_group_uses_small_icons): New. - (e_shortcuts_get_group_uses_small_icons): New. - (class_init): Install "group_change_icon_size" signal. - (save_shortcuts): Save the icon size per-group - here, i.e. <group title="foo" icon_size="small">. - (load_shortcuts): Set the icon size from the group's definition - here. - - * e-shortcuts.h: New signal "group_change_icon_size" in - EShortcutsClass. - -2002-07-08 Ettore Perazzoli <ettore@ximian.com> - - * e-folder.c (safe_corba_string_dup): New helper function. - (e_folder_to_corba): Use it here. - - * Makefile.am (libeshell_la_SOURCES): Move e-folder.c here, from - evolution_SOURCES. - (eshellinclude_HEADERS): Likewise, move e-folder.h here. - - * evolution-storage.c (impl_Storage_getFolderAtPath): New, - implementation for Evoluiton::Storage::getFolderAtPath. - (evolution_storage_get_epv): Install CORBA method here. - - * Evolution-Storage.idl (getFolderAtPath): New method in - Evolution::Storage. - -2002-07-05 Ettore Perazzoli <ettore@ximian.com> - - [Fix #22047, Crash after running the start-up wizard. The patch - was applied a while ago to the evolution-1-0-branch but not on - the trunk.] - - * e-shell-startup-wizard.c (startup_wizard_cancel): Unref the - ETimezoneDialog. - (finish_func): Likewise. - -2002-07-03 Ettore Perazzoli <ettore@ximian.com> - - [Fixes #27354.] - - * e-storage-set-view.c (impl_tree_drag_drop): Invoke - e_folder_dnd_bridge_drop(). - - * e-folder-dnd-bridge.c (find_matching_target_for_drag_context): - New arg @atom_return. Return the GdkAtom associated with the type - through it. - (e_folder_dnd_bridge_drop): New. - -2002-07-02 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_show_settings): Don't set up the settings - dialog as a transient. [#25776] - -2002-07-02 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (bonobo_interface_remove_folder_cb): Add - parameter @listener to match the signal's signature. [#24413] - -2002-07-02 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-user-creatable-items-handler.c: New member tooltip in - struct MenuItem. - (ensure_menu_items): Initialize the tooltip member. - (shell_view_view_changed_callback): Set the tooltip for the "New" - button. - (ensure_menu_xml): Set up the tooltip here as well. - - * evolution-shell-component.c: Add tooltip member to struct - UserCreatableItemType. - (user_creatable_item_type_new): New arg @tooltip. - (evolution_shell_component_add_user_creatable_item): New arg - @tooltip. - (impl__get_userCreatableItemTypes): Put the tooltip in the struct - as well. - - * e-shell-user-creatable-items-handler.c (setup_toolbar_button): - Create a GtkTooltips object and attach it to the combo_button - using gtk_object_set_data(). - (shell_view_view_changed_callback): Set up a tooltip for the - button, according to the default. - - * Evolution-ShellComponent.idl: Add a tooltip member to struct - UserCreatableItemType. - -2002-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_prepare_for_quit): Remove debugging message. - - * e-shell-view.c (setup_verb_sensitivity_for_folder): Set - sensitivity of /commands/AddFolderToShortcutBar, - /commands/OpenFolder and /commands/OpenFolderInNewWindow too, - depending on whether the node that was right-clicked can be opened - as a folder. - - * e-storage-set-view.c (popup_folder_menu): Pop up the right-click - menu even if we are not clicking on a folder with a proper - handler. - -2002-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c: New member preparing_to_quit in EShellPrivate. - (init): Initialize to FALSE. - (e_shell_prepare_for_quit): Set preparing_to_quit to TRUE on - entering, and set it to FALSE on return. - (view_delete_event_cb): Don't call e_shell_prepare_for_quit() if - preparing_for_quit is TRUE. - -2002-06-28 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage.c (impl_Storage_updateFolder): Don't stop - notifying the listeners if ::notifyFolderUpdated() fails. Should - fix #25598. - -2002-06-28 Ettore Perazzoli <ettore@ximian.com> - - [Fix #10681, Incorrect behavior when deleting a hierarchy of local - folders.] - - * e-local-storage.c: Change the ASyncRemoveFolderCallbackData - struct to have only storage and next_paths_to_delete members. - (remove_folder_step): New. - (component_async_remove_folder_callback): Start deletion for the - next path in next_paths_to_delete, so we handle recursion - properly. - (create_subfolder_list): New. - (remove_folder): Create the list with create_subfolder_list, - initialize the ASyncRemoveFolderCallbackData with the - next_paths_to_delete list and do the first deletion. This way we - handle recursion properly. - -2002-06-26 Iain <iain@ximian.com> - - * e-shell-importer.c (show_import_wizard): Only let the dialog be - opened once. - -2002-06-26 Iain <iain@ximian.com> - - * Evolution-StorageSetView.idl: Add a notifyFolderToggled method, - allow checkedFolders to be writable. - - * e-shell-importer.c (free_iid_list): Free the list of iid infos. - (get_name_from_component_info): Move this function from futher down - the file to here because it's useful. - (choose_importer_from_list): Present the user with a list of importer - names to select the one they want to use. - (get_iid_for_filetype): Store the name of the importer as well as the - iid in the list. If there are multiple matches, show the user a list. - - * evolution-storage-set-view-listener.[ch]: Add a folder toggled signal. - (impl_GNOME_Evolution_StorageSetViewListener_notifyFolderToggled): - Notify listeners that a folder has been toggled. - (corba_class_init): Hook up the new method. - (class_init): Create the new signal. - - * evolution-storage-set-view.c - (storage_set_view_widget_folder_toggled_cb): Call the CORBA method for - each listener. - (impl_StorageSetView__set_checkedFolders): Set the checked folders - from the list. - (impl_StorageSetView__get_checkedFolders): Don't include blanks in the - list. - -2002-06-24 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (remove_folder): Removed arg @physical_uri. - - * e-shell-folder-selection-dialog.c (impl_clicked): Pass - default_type to e_shell_show_folder_creation_dialog() properly. - [Patch by Christian Kreibich <christian@whoop.org>.] - -2002-06-19 Kjartan Maraas <kmaraas@gnome.org> - - * e-corba-config-page.h: Remove #include <config.h> - * e-shell-about-box.h: Same - * e-history.h: Same - * e-shell-importer.c: gtk_widget_show() all items in the optionmenu - before showing it. - * e-shell-offline-handler.h: Remove #include <config.h> - * e-shell-settings-dialog.h: Same. - -2002-05-31 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage-set-view.c - (impl_StorageSetView__get_checkedFolders): Set release for the - CORBA path sequence to TRUE. - - * evolution-shell-component.c - (fill_corba_sequence_from_null_terminated_string_array): Set - release for the CORBA sequence to TRUE so it gets freed properly. - (impl__get_externalUriSchemas): Likewise for the returned - uri_chema_list. - - * e-shell-offline-handler.c (duplicate_connection_list): Set - release for the connection sequence to TRUE. - - * e-shell-config-offline.c (config_control_apply_callback): Set - release for the path sequence to TRUE. - - * e-corba-storage-registry.c - (impl_StorageRegistry_getStorageList): Set release for the storage - sequence to TRUE. - - * evolution-storage.c (impl_Storage__get_folderList): Set release - for the folder sequence to TRUE. - -2002-05-30 Ettore Perazzoli <ettore@ximian.com> - - [This fixes #25361.] - - * e-folder-list.c (e_folder_list_construct): Use - bonobo_object_ref() instead of bonobo_object_client_ref() as the - former only refs the CORBA object [Sigh]. - - * e-shell-config-autocompletion.c - (e_shell_config_autocompletion_create_widget): Don't unref the - shell_client here, as we need it. :-) - -2002-05-30 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_about_box): Connect - about_box_event_callback() to the "key_press_event" signal as - well. This way the about box is closed when you press a key too. - [#25349] - -2002-05-28 Chris Toshok <toshok@ximian.com> - - * e-folder-list.c (e_folder_list_set_items): skip folders that - aren't valid uri's. - (e_folder_list_get_items): didn't update this to track the change - in model columns. bad toshok. - -2002-05-24 Chris Toshok <toshok@ximian.com> - - [ fixes 90% of #25047 ] - * e-folder-list.c (get_folder_for_uri): shamelessly lifted from - evolution-folder-selector-button.c. - (create_display_string): modeled again after - evolution-folder-selector-button.c, so we can give a little more - context (and make the table look like the folder selector - buttons.) - (SPEC): add a pixbuf column, also remove the sorting behavior. - (columns): add a pixbuf column and another string column (for the - display string). - (add_clicked): create the display string and get the proper - pixbuf, and insert both. - (edit_clicked): removed. - (update_buttons): remove edit button handling from here. - (e_folder_list_init): remove the hooking up of button-edit's - "clicked" signal. - (e_folder_list_construct): get a reference to the storage registry - so we can look up folders. - (e_folder_list_set_items): analogous change to add_clicked - get - the display string and pixbuf and insert them. - - * glade/e-folder-list.glade: remove the edit button. - - * glade/e-shell-config-default-folders.glade: remove the - frame/vbox, since we embed it in a notebook and the tab has the - title already. - - * e-shell-config.c (config_control_factory_cb): the only config - control we deal with here now is the folder settings control. - - * e-shell-config-default-folders.c - (e_shell_config_default_folders_create_widget): rename - e_shell_config_default_folders_create_control to this, return the - widget, and take the config control to use as an arg. - - * e-shell-config-offline.c (e_shell_config_offline_create_widget): - make an analogous change here as with - default_folders_create_widget. - - * e-shell-config-default-folders.h - (e_shell_config_default_folders_create_widget): track change to - prototype. - - * e-shell-config-offline.h (e_shell_config_offline_create_widget): same. - - * GNOME_Evolution_Shell.oaf.in: remove the DefaultFolders and - OfflineFolders controls and add a FolderSettings_Control. - - * Makefile.am (evolution_SOURCES): add - e-shell-config-folder-settings.[ch] and - e-shell-config-autocompletion.[ch]. - - * e-shell-config-folder-settings.[ch]: new files, embed (after a - fashion) the default folder, offline, and autocompletion UI's in a - notebook. - - * e-shell-config-autocompletion.[ch]: Basically copy over and - shell-ize the addressbook autocompletion config control so it can - be embedded more easily with the other folder settings. - -2002-05-23 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_new): Set @allow_shrink and @allow_grow to - FALSE for the window. Fixes #17534. - -2002-05-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Pass FALSE for - @allow_shrink. Fixes #15688. - -2002-05-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (delete_dialog): Make a little bit - prettier. Default to "Delete", not "Cancel". - -2002-05-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (rename_group_cb): Set the view type from the - original group, thus preserving the small-icon/large-icon state. - Fixes #6732. - -2002-05-23 Ettore Perazzoli <ettore@ximian.com> - - * main.c (show_development_warning): Add a toggle to avoid - displaying the dialog again. Don't display the dialog at all if - the /Shell/skip_warning_dialog_1_1 bonobo-conf key is set to - FALSE. - (warning_dialog_clicked_callback): Set - /Shell/skip_warning_dialog_1_1 according to the state of the check - button. - -2002-05-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_selectUserFolder): No more @default_type - arg to e_shell_folder_selection_dialog_new(). - - * e-shell-view-menu.c (command_goto_folder): No more @default_type - arg to e_shell_folder_selection_dialog_new(). - (command_new_shortcut): Likewise. - - * e-shell-importer.c (import_druid_finish): No more @default_type - arg to e_shell_folder_selection_dialog_new(). - - * e-shell-folder-commands.c (e_shell_command_move_folder): No more - @default_type arg to e_shell_folder_selection_dialog_new(). - (e_shell_command_copy_folder): Likewise. - - * e-shell-folder-selection-dialog.c: Removed default_type member - in EShellFolderSelectionDialogPrivate. - (e_shell_folder_selection_dialog_new): Removed @default_type arg. - (e_shell_folder_selection_dialog_construct): Likewise. - (impl_clicked): Just pass the first of the allowed types to - e_shell_show_folder_creation_dialog() for the default type. - - * evolution-shell-client.c (user_select_folder): No more - @default_type arg to the ::userSelectFolder CORBA method. - - * Evolution-Shell.idl (selectUserFolder): Remove arg - @default_type. - -2002-05-22 Ettore Perazzoli <ettore@ximian.com> - - * main.c (view_map_callback): New callback for when the first - created view in the shell gets mapped. - (new_view_created_callback): New callback for when the first view - of the shell gets created. - (show_development_warning): New function to display a warning - about the fact that Evolution is unstable. - (idle_cb): Call show_development_warning() here unless the - EVOLVE_ME_HARDER environment variable is set. - - * e-shell.c (class_init): Add the "new_view_created" signal here. - (create_view): Emit the signal here. - - * e-shell.h: New signal "new_view_created". - -2002-05-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-user-creatable-items-handler.c: New member - default_menu_item in EShellUserCreatableItemsHandlerPrivate. - (ensure_menu_items): Set ->default_menu_item. - (get_default_action_for_view): When no default item is specified, - just return ->default_menu_item. - -2002-05-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_prepare_for_quit): Only refuse quitting if - the result is CANCEL. This way we allow quitting if one of the - components has crashed or something else otherwise goes wrong. - Fixes #25093. - - * evolution-shell-component-client.c - (result_from_async_corba_result): Handle - GNOME_Evolution_ShellComponentListener_CANCEL. - -2002-05-21 Christopher James Lahey <clahey@ximian.com> - - * e-corba-storage.c (async_open_folder_idle): Do async_open_folder - in an idle callback. - - * e-shell-shared-folder-picker-dialog.c (user_clicked), - glade/e-shell-shared-folder-picker-dialog.glade: Added a select - names button here. - -2002-05-20 Chris Toshok <toshok@ximian.com> - - * evolution-folder-selector-button.c (clicked): set the parent - window insensitive before popping up the dialog and sensitive - after it's popped down, to give us semi-modal behavior. Also, - emit a "popped_up" signal when popping up the dialog, and emit - "canceled" when the return folder is NULL (when the user canceled - the dialog). - (class_init): fix typo (?) - parent type isn't - bonobo_object_get_type(), it's PARENT_TYPE. Also, initialize the - POPPED_UP and CANCELED signals. - - * evolution-folder-selector-button.h (struct - _EvolutionFolderSelectorButtonClass): add popped_up and canceled - signals. - -2002-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-sync.c (sync_folder): Skip the folder if it - doesn't have the can_sync_offline property set. - -2002-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-corba-storage.c (impl_StorageListener_notifyFolderCreated): - Set the can_sync_offline property on the EFolder based on the - canSyncOffline value on the CORBA folder. - - * evolution-test-component.c (setup_custom_storage): Pass FALSE - for @sync_offline to evolution_storage_new_folder(). - - * e-local-storage.c (new_folder): Pass FALSE for @sync_offline to - evolution_storage_new_folder(). - - * evolution-storage.h (evolution_storage_new_folder): New arg - @can_sync_offline. - -2002-05-20 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-Offline.idl (syncFolder): Remove exception. - (cancelSyncFolder): Remove exception. - - * e-shell-config-offline.c (storage_set_view_has_checkbox_func): - New. - (e_shell_config_offline_create_control): Pass it as the - @has_checkbox_func. - - * e-folder.c: New member can_sync_offline in EFolderPrivate. - (init): Init to FALSE. - (e_folder_get_can_sync_offline): New. - (e_folder_to_corba): Set canSyncOffline in the returned CORBA - folder. - (e_folder_set_physical_uri): Protect from when @physical_uri and - ->physical_uri are the same thing. - (e_folder_set_description): Same here with description. - (e_folder_set_type_string): And type. - - * Evolution-common.idl: New member canSyncOffline in struct - Folder. - -2002-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-config-offline.c - (e_shell_config_offline_create_control): Pass NULL for - @has_checkbox_func and @has_checkbox_func_data. - - * evolution-storage-set-view.c - (impl_StorageSetView__set_showCheckboxes): Pass NULL for - @has_checkbox_func and @has_checkbox_func_data. - - * e-storage-set-view.c: New member has_checkbox_func and - has_checkbox_func_data in EStorageSetViewPrivate. - (init): Init to NULL. - (e_storage_set_view_set_show_checkboxes): New args - @has_checkbox_func and @func_data. - (has_checkbox): Always return FALSE for the toplevels. For the - other ones return TRUE unless ->has_checkbox_func is not-NULL; in - which case, we use that function to determine whether the folder - is actually checkable. - - * Evolution-ShellComponent.idl (requestQuit): Remove exception. - -2002-05-16 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (view_delete_event_cb): Ask e_shell_prepare_for_quit() - before destroying the view if it's the last one. - - * e-shell-view-menu.c (command_close): Synthesize a delete_event - on the view instead of directly destroying it. - -2002-05-15 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_quit): Check with - e_shell_prepare_for_quit() before quitting. - - * e-shell.c (e_shell_prepare_for_quit): New. - - * evolution-test-component.c (request_quit_fn): New function - asking for confirmation to quit. - - * evolution-shell-component.c (evolution_shell_component_new): New - arg @request_quit_fn. - (impl_requestQuit): New, implementation for - EvolutionShellComponent::requestQuit. - (evolution_shell_component_result_to_string): Handle - EVOLUTION_SHELL_COMPONENT_CANCEL. - (evolution_shell_component_client_request_quit): New. - - * Evolution-ShellComponent.idl (requestQuit): New. - -2002-05-15 Iain <iain@ximian.com> - - * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): Remove - debuggin spew - -2002-05-15 Iain <iain@ximian.com> - - * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): Apply - patch from Peter Williams to notify listeners when a new storage is - created. - -2002-05-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c - (e_shell_offline_handler_put_components_offline): Call - e_shell_offline_sync_all_folders() if no connection is reported - here. - (dialog_handle_ok): Sync all the folders here through - e_shell_offline_sync_all_folders(). - - * e-shell-offline-sync.c: New. - * e-shell-offline-sync.h: New. - - * Evolution-Offline.idl (syncFolder): Make oneway. - (cancelSyncFolder): Likewise. - (SyncFolderProgressListener::reportSuccess): New method. - -2002-05-14 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Added check-empty.xpm, check-filled.xpm, and - check-missing.xpm. - - * check-empty.xpm, check-filled.xpm, check-missing.xpm: New xpms. - Copied from gal. check-missing.xpm is simply a transparent xpm of - the correct size. - - * e-storage-set-view.c (etree_value_at): When getting, check if - the path doesn't have a check box and return 2 in that case. - (etree_set_value_at): Check if the path doesn't have a check box - and don't change it in that case. Also, just invert the value - here instead of paying attention to the set value passed in. - (class_init): Initialize the checks GdkPixbufs. - (e_storage_set_view_construct): Create the "optional_checkbox" - cell. - - * e-storage-set-view.etspec: Changed the cell for the checkbox - column to "optional_checkbox". - -2002-05-14 Christopher James Lahey <clahey@ximian.com> - - * evolution-storage.c (evolution_storage_new_folder): Compute the - evolutionUri here and pass it in. - -2002-05-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-config-offline.c - (init_storage_set_view_status_from_config): Add a missing - CORBA_free in the case in which the typecode of the - /OfflineFolders/Paths key in the ConfigDatabase doesn't match the - expected type. - -2002-05-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_go_offline): Pass self to - e_shell_offline_handler_new() instead of the component registry. - - * e-shell-offline-handler.c: Replace member `component_registry' - in EShellOfflineHandlerPrivate with a `shell' member. Updated all - the code to retrieve the component registry from the shell instead - of directly. - (e_shell_offline_handler_construct): Get a @shell instead of a - @component_registry. - -2002-05-13 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (e_storage_set_view_get_checkboxes_list): - Changed this to just walk the hash table to get the list of - checked checkboxes instead of walking the tree. (Makes it so that - checked paths will remain checked, even if they're not shown in - the tree when the list is gotten.) - -2002-05-13 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-config.c: Handle the e-shell-config-offline and - e-shell-config-default-folders pages. - - * e-shell-config-offline.h: New. - * e-shell-config-offline.c: New. - - * e-shell-config-default-folders.h: New. - * e-shell-config-default-folders.c: New. Moved default folder - page configuration in from e-shell-config.c. - - * GNOME_Evolution_Shell.oaf.in: Add - GNOME_Evolution_Shell_Config_OfflineFolders_Control. - -2002-05-13 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (etree_set_value_at): Added a signal when - the value of the checkboxes changes. - -2002-05-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-shared-folder-picker-dialog.c: Add members `parent' and - `shell' in DiscoveryData. - (shell_view_destroy_callback): Callback for destruction of - ->parent; set ->parent to NULL. - (shell_destroy_callback): Callback for the desctruction of the - shell; clean up everything. - (discover_folder): Initialize ->parent and shell, and add the - corresponding destruction handlers. - (shared_folder_discovery_listener_callback): Open the discovered - folder. - (setup_progress_dialog): Renamed from `show_progress_dialog'. Set - up a timeout for displaying the dialog instead of displaying it - right away. - (progress_dialog_show_timeout_callback): Callback for showing the - dialog after the callback. - -2002-05-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-shared-folder-picker-dialog.c - (shared_folder_discovery_listener_callback): Updated for - FolderResult instead of DiscoverSharedFolderResult. - - * Evolution-Storage.idl: Remove struct DiscoverSharedFolderResult; - we want to just use FolderResult for asyncDiscoverSharedFolder. - -2002-05-10 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c: Added some tests for the custom - storage. - - * evolution-storage.c: New signal DISCOVER_SHARED_FOLDER. - (impl_Storage_asyncXferFolder): Renamed from - impl_Storage_async_xfer_folder. - (impl_Storage_asyncRemoveFolder): Renamed from - impl_Storage_async_remove_folder. - (impl_Storage_asyncCreateFolder): Renamed from - impl_Storage_async_create_folder. - (impl_Storage_asyncOpenFolder): Renamed from - impl_storage_async_open_folder. - (impl_Storage_addListener): Renamed from - impl_Storage_add_listener. - (impl_Storage_removeListener): Renamed from - impl_Storage_remove_listener. - (impl_Storage_asyncDiscoverSharedFolder): New, implementation for - ::asyncDiscoverSharedFolder. - (evolution_storage_get_epv): Install the CORBA method here. - (class_init): Set up the "discover_shared_folder" signal here. - (e_marshal_NONE__POINTER_POINTER): Yet Another Marshaller. Die - die die. - - * Evolution-Storage.idl (Storage::asyncDiscoverSharedFolder): New - method. - (StorageListener::notifySharedFolderDiscovered): New method. - - * e-shell-shared-folder-picker-dialog.c: New. - * e-shell-shared-folder-picker-dialog.h: New. - - * e-shell-view-menu.c (command_open_other_users_folder): New, - implementation for the FileOpenOtherUsersFolder verb. - - * Makefile.am: Generate stubs and skels for - Evolution::Addressbook::SelectNames as well. - - * glade/e-shell-shared-folder-picker-dialog.glade: New. - -2002-05-09 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (construct): Pass %FALSE as - @has_shared_folders to evolution_storage_new(). - - * evolution-storage.c: New member has_shared_folders in - EvolutionStoragePrivate. - (init): Initialize to FALSE. - (evolution_storage_new): New arg @has_shared_folders. - (evolution_storage_construct): Likewise. - (impl_Storage__get_folderList): Renamed from - impl_Storage__get_folder_list. - (impl_Storage__get_hasSharedFolders): New, implementation for - ::hasSharedFolders. - (evolution_storage_get_epv): Install the CORBA method - implementation. - - * Evolution-Storage.idl: Make Storage::name a readonly attribute. New attribute Storage:: - -2002-05-09 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-Offline.idl: Rename NotPrepared to notPrepared and - NotSyncing to notSyncing. - - * evolution-storage.c (impl_Storage__get_folder_list): Renamed - from impl_Storage_get_folder_list(). - - * Evolution-Storage.idl: Don't typedef FolderList here. Replace - `getFolderList' method with a readonly attribute. - -2002-05-07 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-Offline.idl: New interface SyncFolderProgressListener. - (Offline::cancelSyncFolder): New. - (Offline::syncFolder): New. - -2002-05-07 JP Rosevear <jpr@ximian.com> - - * evolution-storage.c (get_folder_list_foreach): add every folder - to the sequence except the root folder - (impl_Storage_get_folder_list): implement corba method - (evolution_storage_get_epv): set new method implementation - - * evolution-folder-selector-button.h: fix signal prototype - - * e-folder-tree.h: new proto - - * e-folder-tree.c (e_folder_tree_get_count): count nodes - (count_nodes): bump count foreach path - - * e-corba-storage-registry.c - (impl_StorageRegistry_getStorageList): implement idl method - (corba_class_init): set epv method - - * Evolution-Storage.idl: add getStorageList and getFolderList - methods - -2002-05-07 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c (create_new_folder_selector): Use the - new evolution_shell_client_create_storage_set_view() call. - - * evolution-shell-client.c - (evolution_shell_client_create_storage_set_view): New. - -2002-05-07 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage-set-view-factory.c - (evolution_storage_set_view_factory_new_view): Put the - EStorageSetView in an EScrollFrame. - - * e-shell.c (impl_Shell_createStorageSetView): - CORBA_Object_duplicate the object before returning. - - * evolution-test-component.c - (create_new_folder_selector): New function to create a simple test - environment for the new checkbox-enabled StorageSetView. - (register_component): Add user-creatable type FolderSelector. - (user_create_new_item_callback): Handle FolderSelector. - (dialog_clicked_callback): Print out the checked items in the - folder selector. - (main): Print out a message before going into bonobo_main(). - - * evolution-storage-set-view.c - (impl_StorageSetView__get_showFolders): Renamed from - impl_StorageSetView__get_show_folders. - (impl_StorageSetView__set_showFolders): Renamed from - impl_StorageSetView__set_show_folders. - (impl_StorageSetView__set_showCheckboxes): New, write the - showCheckboxes CORBA attribute. - (impl_StorageSetView__get_showCheckboxes): New, read the - showCheckboxes CORBA attribute. - (impl_StorageSetView__get_checkedFolders): New, read the - checkedFolders CORBA attribute. - (corba_class_init): Install the new CORBA methods methods. - - * e-storage-set-view.c (essv_add_to_list): strdup() the path. - (e_storage_set_view_get_storage_set): New. - - * e-folder.c (e_folder_to_corba): New. - - * Evolution-StorageSetView.idl: Add showCheckboxes and - checkedFolders attributes. - - * Evolution-common.idl: Add typedef for FolderList. - -2002-05-03 Christopher James Lahey <clahey@ximian.com> - - * e-folder-list.c: Use bonobo_object_client_(un)?ref instead of - gtk_object_(un)?ref. - (add_clicked): Don't pass NULL to - evolution_shell_client_user_select_folder. - - * glade/Makefile.am: Added e-folder-list.glade - - * glade/e-folder-list.glade: The glade file for e-folder-list. - -2002-05-03 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (eshellinclude_HEADERS): Added e-folder-list.h. - (libeshell_la_SOURCES): Added e-folder-list.c. - - * e-folder-list.c, e-folder-list.h: New widget for editing a list - of folder uris. - -2002-04-29 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (e_storage_set_view_set_checkboxes_list, - e_storage_set_view_get_checkboxes_list): Added these functions. - Implemented checkboxes in the ETreeModel here. - -2002-04-19 Anna Marie Dirks <anna@ximian.com> - - * glade/e-shell-config-default-folders.glade: Minor label tweaks; - changed "Default folders" to "Default Folders", and added - accelerators. - -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 - -2002-04-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (impl_shortcut_drag_motion): New, override - for EShortcutBar::shortcut_drag_motion. - (impl_shortcut_drag_data_received): New, override for - EShortcutBar::shortcut_drag_data_received. - (class_init): Install the method overrides. - -2002-04-17 Christopher James Lahey <clahey@ximian.com> - - * e-activity-handler.c: Updated this to match the new EPopupMenu. - -2002-04-17 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (handle_evolution_path_drag_motion): - Removed. - (impl_tree_drag_motion): Rewritten to use - `e_folder_dnd_bridge_motion()'. - (impl_tree_drag_data_received): Rewritten to use - `e_folder_dnd_bridge_data_received()'. - (convert_gdk_drag_action_to_corba): Removed. - (convert_corba_drag_action_to_gdk): Removed. - (find_matching_target_for_drag_context): Removed. - - * e-folder-dnd-bridge.c: New. - * e-folder-dnd-bridge.h: New. - -2002-04-10 Dan Winship <danw@ximian.com> - - * e-shell-config.c: Shell config page routines. Right now - handles the default folders page. - - * glade/e-shell-config-default-folders.glade: New. - - * GNOME_Evolution_Shell.oaf.in: Add info for the default folders - config page. - - * main.c (idle_cb): If we successfully registered the shell, - register the config factory. - - * evolution-shell-client.c (evolution_shell_client_new): Note the - fact that it frees the corba_shell when it is destroyed. - - * evolution-folder-selector-button.c - (evolution_folder_selector_button_construct, destroy): Use - bonobo_object_ref/unref on the shell client, not gtk. - - * e-shell.c (e_shell_construct): Pass local_directory to - e_setup_check_db. - (handle_default_uri): Fix the config db paths here to match the - other routines. - - * e-setup.c (e_setup_check_db): Make this take the evolution - directory path as well so we can properly set up file: URIs for - the default folders. - -2002-04-09 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Change the logic for displaying a default - window, so we don't end up with two windows all the time. - -2002-04-09 Ettore Perazzoli <ettore@ximian.com> - - [Patch from Max Horn <max@quendi.de>.] - - * e-local-storage.c: Move <dirent.h> down the #include list so it - compiles on Darwin. - -2002-04-09 Dan Winship <danw@ximian.com> - - * e-setup.c (e_setup_check_db): New. Check that things that need - to be in the config db are. Right now it sets up the default - folders. - - * e-shell.c (e_shell_construct): Call e_setup_check_db after - getting the config db. - (impl_Shell_handleURI): Handle "default:" URIs by looking up the - default folders in the config db. - - * main.c (idle_cb): Check for "default:" URIs and treat them the - same way as "evolution:" URIs. If the shell fails to display all - of the requested URIs, fall back to the default URI (Summary). - - * e-shell-constants.h: Add E_SUMMARY_URI, E_LOCAL_INBOX_URI, etc. - - * e-shortcuts.c (e_shortcuts_add_default_group): Use - E_LOCAL_INBOX_URI, etc. - - * e-shell-view.c: #define FALLBACK_URI to E_SUMMARY_URI - -2002-04-09 Dan Winship <danw@ximian.com> - - * Evolution-ShellComponent.idl (createView): Add a "view_info" - argument. - - * e-shell-view.c (get_view_for_uri): if the URI contains a '#', - split it into a URI and a "view_info" at that point. (Otherwise, - pass "" for the view_info to ShellComponent_createView.) This can - be used for things like specifying day/month/week view to the - calendar. - - * e-shell.c (create_view): Ignore e_shell_view_display_uri's - return code: it's possible/likely that the requested URL is remote - and hasn't been filled in yet. - (impl_Shell_handleURI): Don't use Shell_createNewView directly, - call e_shell_create_view_from_uri_and_settings. (For the above fix - and some others.) - - * evolution-shell-component.c (impl_createView): Add view_info. - - * evolution-shell-component-client.c - (evolution_shell_component_client_create_view): Add view_info. - - * evolution-test-component.c (create_view_fn): add view_data. - - * e-corba-storage-registry.c - (impl_StorageRegistry_getFolderByUri): kill a warning - -2002-04-08 Dan Winship <danw@ximian.com> - - Fix "evolution evolution:/path/to/folder" to use default view - 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. - -2002-04-06 JP Rosevear <jpr@ximian.com> - - * e-shell-settings-dialog.c (page_new): set type - (load_pages): get the oaf property for type and track the page - number of the highest priority for each type - (destroy_type_entry): destroy hash func - (impl_destroy): destroy the hash table - (init): create private struct and hash table - (e_shell_settings_dialog_show_type): show the page of the given - type - - * e-shell-view-menu.c (command_settings): show the page for the - current folder type by default - - * e-shell-settings-dialog.h: new proto - -2002-04-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-settings-dialog.c (init): Set the title of the dialog. - -2002-04-04 Dan Winship <danw@ximian.com> - - * evolution-shell-client.c - (evolution_shell_client_get_pixbuf_for_type): Fix a memory mixup. - -2002-04-04 Dan Winship <danw@ximian.com> - - * evolution-folder-selector-button.c: New widget for a button that - displays a folder selection in a standard form, and when clicked - lets the user select a new folder. - - * Evolution-Shell.idl (FolderSelectionListener:notifySelected): - Make this take an Evolution:Folder instead of a pair of uris. - (Shell:getIconByType): New method to get the icon for a type from - the folder type registry. - - * Evolution-common.idl (Folder): add "evolutionUri" to the folder - structure. - - * Evolution-Storage.idl (StorageRegistry:getFolderByUri): get an - Evolution:Folder for a given uri. - - * evolution-shell-client.c - (evolution_shell_client_user_select_folder): Update this to - reflect the IDL change: return a GNOME_Evolution_Folder instead of - a pair of URIs. Make sure it always sets *@folder_return to %NULL - if it fails (even if it's a g_return_if_fail). - (evolution_shell_client_get_storage_registry_interface): New. - (evolution_shell_client_get_pixbuf_for_type): New. Uses - Shell_getIconByType, but caches results. - - * e-shell.c (folder_selection_dialog_folder_selected_cb): Update - for API change. (Return a GNOME_Evolution_Folder.) - (impl_Shell_getIconByType): Implement. - - * e-corba-storage-registry.c - (impl_StorageRegistry_getFolderByUri): Implement. - - * evolution-storage.c (evolution_storage_new_folder): Add a - (dummy) evolutionUri to the folder. - - * Makefile.am (libeshell_la_SOURCES): add - evolution-folder-selector-button.c - (eshellinclude_HEADERS): and .h - -2002-04-04 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c: Change type of parent_class to - BonoboXObjectClass. - - * e-shell.c (pop_up_activation_error_dialog): New helper function - to pop up a dialog if one of the components couldn't be activated, - getting the description for the error from - e_get_activation_failure_msg(). - (setup_components): Use this function in case of activation error. - (set_owner_on_components): Likewise, when the component gets - restarted. Also get a @splash arg so we can set the parent for - this dialog correctly. - - * e-component-registry.c (register_component): New arg @ev. - (e_component_registry_register_component): Likewise. - (e_component_registry_restart_component): Likewise. Also, remove - some bogus code that was #if'ed out. - - * evolution-shell-component-client.c - (evolution_shell_component_client_new): New arg @ev. - - * evolution-shell-component-utils.c - (e_get_activation_failure_msg): New. - -2002-04-03 Dan Winship <danw@ximian.com> - - * e-storage.c (get_path_for_physical_uri_foreach): Deal with - folders with no physical_uri. - -2002-04-02 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (e_storage_set_view_set_show_checkboxes): - Set the show_checkboxes field here instead of the show_folders - field. - -2002-04-02 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (etree_value_at): If folder is NULL, return - the correct type of data. - -2002-04-02 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (etspec_DATA): Added - e-storage-set-view-checkboxes.etstate and - e-storage-set-view-no-checkboxes.etstate here. - - * e-storage-set-view-checkboxes.etstate, - e-storage-set-view-no-checkboxes.etstate: The two possible states - of the EStorageSetView. - - * e-storage-set-view.c, e-storage-set-view.h - (e_storage_set_view_set_show_checkboxes, - e_storage_set_view_get_show_checkboxes): Added this functionality. - Added a model column to the underlying table for the checkbox - data. - - * e-storage-set-view.etspec: Added a view column for the - checkboxes. - -2002-03-29 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-settings-dialog.c: Add type "Page". - (page_new): New helper function. - (page_free): New helper function. - (compare_page_func): Callback for sorting a GList of pages. - (sort_page_list): New helper function. - (load_pages): Create the pages, sort them, add them sorted. Now - we have a priority field that overrides alphabetical sorting. - -2002-03-26 Ettore Perazzoli <ettore@ximian.com> - - * e-component-info.c: New. - * e-component-info.h: New. - -2002-03-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-settings-dialog.c (load_pages): g_warning if the control - cannot be activated. - -2002-03-25 Dan Winship <danw@ximian.com> - - * 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. - -2002-03-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-settings-dialog.c (get_language_list): Removed. - (load_pages): Use e_get_language_list() here instead. Also, free - using e_free_language_list(). - -2002-03-22 Dan Winship <danw@ximian.com> - - * 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) - (evolution_storage_removed_folder): Oops. Fix here too. - (evolution_storage_has_subfolders): And here. When cut and paste - goes bad... - - * 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. - -2002-03-21 Dan Winship <danw@ximian.com> - - * 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. - -2002-03-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Make all the verb/menu arrays appropriately - static. - -2002-03-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_send_receive): New, implementation - for the "SendReceive" verb. - - * e-shell.c (e_shell_send_receive): New. - - * evolution-shell-component.c (impl_sendReceive): Implementation - of ShellComponent::sendReceive. - (class_init): Add the "send_receive" signal. - - * evolution-shell-component.h: Added `send_receive' signal. - - * Evolution-ShellComponent.idl: Added ShellComponent::sendReceive. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.etspec: Add `search="string"' for the - keyboard navigability search thingy. - -2002-03-15 Jeffrey Stedfast <fejj@ximian.com> - - * e-activity-handler.c (show_cancellation_popup): Updated to use - new EPopupMenu API. - -2002-03-14 Dan Winship <danw@ximian.com> - - Support for delayed filling-in of storages/folders. - - * 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. - -2002-03-13 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-03-12 Ettore Perazzoli <ettore@ximian.com> - - * 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'. - -2002-03-09 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (e_shell_command_rename_folder): Make - old_name_locale non-const to placate a compiler warning. - (get_corba_null_value): Likewise. - - * e-activity-handler.c (report_task_event): `#if 0' out. - -2002-03-09 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-03-08 Dan Winship <danw@ximian.com> - - * 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. - -2002-03-07 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-03-07 Dan Winship <danw@ximian.com> - - Addendum to previous commit: Remove "storage_selected" vs - "folder_selected" distinction. - - * evolution-storage-set-view.c - (storage_set_view_widget_storage_selected_cb): Removed. - - * evolution-storage-set-view-listener.c - (impl_GNOME_Evolution_StorageSetViewListener_notifyStorageSelected): - Removed. - (class_init): Remove STORAGE_SELECTED signal. - - * e-storage-set-view.c (impl_cursor_activated): Always emit - FOLDER_SELECTED, never STORAGE_SELECTED. - (class_init): Remove STORAGE_SELECTED signal. - - * e-shell-view.c (storage_selected_cb): Removed. - - * e-shell-folder-creation-dialog.c - (storage_set_view_storage_selected_cb): Removed. - - * Evolution-StorageSetView.idl (StorageSetViewListener): Remove - notifyStorageSelected. - -2002-03-07 Dan Winship <danw@ximian.com> - - Make storages-with-toplevel-views less of a hack. - - * 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 for storages without icons). - (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. - -2002-03-06 Dan Winship <danw@ximian.com> - - * 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] - -2002-03-06 Dan Winship <danw@ximian.com> - - * 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. - -2002-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Reduce width of the copyright message so it - looks prettier with the new Rupert artwork. - -2002-03-04 Iain Holmes <iain@ximian.com> - - * Evolution-Storage.idl: Add some methods to the StorageRegistry - interface to get a storage, and add or remove listeners. Also add a - new exception and some structs and enums for messages. - - * e-corba_storage-registry.c: Add a GSList to the private stuct for - recording the listeners. - (listener_notify): Send a message to the listeners. - (impl_StorageRegistry_getStorageByName): Implementation of the - getStorageByName method. Returns the associated storage interface - (storage_set_foreach): Loop through all the storages in the storageset - and notify the listeners about them. - (find_listener): Find a listener in the list of them. - (impl_StorageRegistry_addListener): Add a new listener to the - registry. - (impl_StorageRegistry_removeListener): Remove a listener. - (corba_class_init): Add the new methods to the EPV. - (init): NULL the listeners list. - - * e-corba-storage.[ch] (e_corba_storage_get_corba_objref): Get the CORBA - interface from the GtkObject. - -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. - -2002-02-26 Ettore Perazzoli <ettore@ximian.com> - - [This gets rid of some spurious "could not find handler" messages - 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(). - -2002-02-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Add year 2002 to the copyright. - -2002-02-23 Ettore Perazzoli <ettore@ximian.com> - - * 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'. - -2002-02-22 Ettore Perazzoli <ettore@ximian.com> - - [Fix #3029, Offline mode should be preserved across sessions.] - - * 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. - -2002-02-22 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-02-22 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-02-22 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-02-22 Ettore Perazzoli <ettore@ximian.com> - - * 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". - -2002-02-21 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-user-creatable-items-handler.c - (get_default_action_for_view): Return NULL if there is no - component ID for the current view. - -2002-02-21 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2002-02-20 Ettore Perazzoli <ettore@ximian.com> - - [Fix #20311, new window from Shortcuts should not show the folder - bar and the shortcut bar. Also do the same for right-click on the - folder bar.] - - * 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. - -2002-02-20 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -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. - -2002-01-27 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Use SHELL_CFLAGS and SHELL_LIBS. - * importer/Makefile.am: Likewise. - -2002-01-24 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Just use BONOBO_HTML_GNOME_CFLAGS and - BONOBO_HTML_GNOME_LIBS for compiling/linking; we don't need the - other ones. - -2002-01-23 Ettore Perazzoli <ettore@ximian.com> - - * 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. - - * e-shell-icon-utils.h: New. - * e-shell-icon-utils.c: New. - -2002-01-23 Ettore Perazzoli <ettore@ximian.com> - - [Patch by Michael Meeks <michael@ximian.com>.] - - * e-splash.c (e_splash_set_icon_highlight): g_return if there is - no num-th icon. - -2002-01-15 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (show_import_wizard): Set the importer druid - as a transient window of the parent shell. - -2002-01-15 Ettore Perazzoli <ettore@ximian.com> - - [Fix #17441, Crash trying to import Multiple VCard file into LDAP - folder.] - - * e-shell-importer.c (show_error): Add a NULL in the call to - `gnome_message_box_new()'. - -2001-12-14 Michael Meeks <michael@ximian.com> - - * e-shell-view.c (set_current_notebook_page): re-order - activate / de-activate to minimise flicker switching between - identical components. - -2002-01-11 Damon Chaplin <damon@ximian.com> - - * e-shell-startup-wizard.c (finish_func): handle translated timezone - names. - - * Makefile.am (INCLUDES): added -I$(top_srcdir)/libical/src/libical. - -2001-12-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Add Michael MacDonald. - -2001-12-17 Ettore Perazzoli <ettore@ximian.com> - - [Fix #17377, Evolution doesn't work on multi-depth displays.] - - * main.c (main): Push GdkRGB visual and colormap. - -2001-12-17 Ettore Perazzoli <ettore@ximian.com> - - [Fix #16693. What happens there is that the user closed the - dialog before the async operation was completed, so when the - notification was received the shell crashed.] - - * e-shell-folder-creation-dialog.c: New member - `creation_in_progress' in `DialogData'. - (e_shell_show_folder_creation_dialog): Init to %FALSE. - (async_create_cb): Set to %FALSE. Also, if the - dialog_data->dialog is %NULL, free the dialog_data before - returning. - (dialog_clicked_cb): Set to %TRUE. - (dialog_destroy_cb): If a creation is in progress, just set the - widget pointers in the DialogData struct to %NULL instead of - freeing the whole struct. - (async_create_cb): Make the OK and Cancel buttons sensitive. - (dialog_clicked_cb): Make them insensitive here. - -2001-12-12 Ettore Perazzoli <ettore@ximian.com> - - [Fix #17258, shell displays splash even if Evolution is already - running.] - - * e-shell.c (e_shell_construct): Display the splash screen only if - the registration succeeds. - -2001-12-10 Ettore Perazzoli <ettore@ximian.com> - - [Fix #14838, saving passwords doesn't work. It is actually a - workaround for some obscure Bonobo-conf bug.] - - * e-setup.c (setup_bonobo_conf_private_directory): New helper - function to create the `~/evolution/private' directory. - (e_setup): Call it. - -2001-12-07 Iain Holmes <iain@ximian.com> - - [Trying to fix #14701, importing locks up Evolution.] - - * e-shell-importer.c (show_error): Show an error message, but not - modally. - (start_import): Use above function so none of the errors are modal. - (folder_selected): Hide the folder dialog. - -2001-12-04 Ettore Perazzoli <ettore@ximian.com> - - [Fix #7827, Switching desktops leaves the folder bar popped up.] - - * 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. - -2001-11-15 Zbigniew Chyla <cyba@gnome.pl> - - * e-shell-folder-commands.c (e_shell_command_rename_folder): Convert - folder name to locale's encoding before using it as part of the prompt. - -2001-11-28 Federico Mena Quintero <federico@ximian.com> - - Fixes bug #3290. - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Use our own filename - for the collapsation state of the tree, instead of sharing the one - of shell view number 0. - (save_expanded_state): New function, saves the collapsation state - of the tree. - (impl_destroy): Call save_expanded_state(). - -2001-11-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Add more contributors to the box. - -2001-11-14 Damon Chaplin <damon@ximian.com> - - * e-shell-startup-wizard.c (finish_func): make timezone default to - "UTC" rather than "". - -2001-11-12 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (make_identity_page): Check for exception. - (make_receive_page): Check for exception. - (make_extra_page): Check for exception. - (make_transport_page): Check for exception. - (make_management_page): Check for exception. - -2001-11-06 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (make_timezone_page): Move the call to - e_timezone_dialog_new out of the the GTK_OBJECT macro to stop it - being called 4 times, and leaking 3. - -2001-11-05 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (set_e_shortcut_selection): Get the storage - name if we are dragging a storage instead of a folder. - -2001-11-01 Anna Marie Dirks <anna@ximian.com> - - * e-shell-importer.c (prepare_intelligent_page): Fixed spacing and - alignment probelms. (See bug #14281) - - * e-shell-startup-wizard.c (prepare_importer_page): Fixed - spacing and alignment problems. (See bug #14281) - -2001-11-05 Dan Winship <danw@ximian.com> - - * e-storage-set-view.c (set_e_shortcut_selection): Set the - shortcut name to be the folder name, not just the last component - of its path, which may be different. - -2001-11-01 Ettore Perazzoli <ettore@ximian.com> - - * glade/evolution-startup-wizard.glade: `timezone-48.png', not - `timezone.png'. - -2001-11-01 Anna Marie Dirks <anna@ximian.com> - - * glade/evolution-startup-wizard.glade: Changed the welcome - message and the finishing message to be more descriptive. Also - changed the window title to be "Evolution Setup Assistant". Finally, - fixed a misnamed icon (replaced timezone.png with timezone-48.png). - Partially fixes bug #14281 and totally fixes #14286. - -2001-10-31 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (cursor_activated): Don't do operations on - a NULL path. - (updated_folder_cb, folder_changed_cb): Send pre_change signal - here. - -2001-10-31 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (handle_evolution_path_drag_motion): If the - source folder is stock and the operation is GDK_ACTION_MOVE, - always return %FALSE as we don't want that to be allowed ever. - -2001-10-30 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (bonobo_widget_is_dead): Removed. - (show_existing_view): Don't call it. - -2001-10-30 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.c (sleep_with_g_main_loop): New utility - function. - (sleep_with_g_main_loop_timeout_callback): Callback function for - `sleep_with_g_main_loop()'. - (wait_for_corba_object_to_die): Use `sleep_with_g_main_loop()' - instead of `sleep()'. - -2001-10-30 Ettore Perazzoli <ettore@ximian.com> - - * main.c (development_warning): Removed. - (idle_cb): Don't call it. - (warning_dialog_clicked_callback): Removed. - -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. - -2001-10-30 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (owner_ping_callback): Duplicate the - owner before pinging it. Fixes #13802. - -2001-10-30 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (impl_owner_unset): New. - (class_init): Install it. - (impl_unsetOwner): Just emit the "owner_unset" signal as the - default implementation for that signal does all the work now. - (impl_owner_died): Set the owner_client to %NULL before unreffing - it. - (destroy): Likewise. - (impl_owner_unset): Likewise. - -2001-10-30 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-10-29 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-startup-wizard.c (next_func): If we're not at the end of - the druid list, tell the druid we're going to change the page. - (back_func): Same for going back a page. This way we can properly - synchronise with the druid object and not race with the wizard - object to set the right page. Part of fix for #12127. - -2001-10-29 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (owner_ping_callback): Slightly - change the debugigng message for when the shell has disappeared. - -2001-10-29 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (owner_ping_callback): Remove - ping debugging messages. - -2001-10-29 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (set_interactive): Remove debugging message. - -2001-10-29 Damon Chaplin <damon@ximian.com> - - * Makefile.am (evolution_LDADD): use libical-evolution.la - -2001-10-29 Ettore Perazzoli <ettore@ximian.com> - - * 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()']. - -2001-10-28 Ettore Perazzoli <ettore@ximian.com> - - * 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()'. - -2001-10-28 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-10-29 <NotZed@Ximian.com> - - * evolution-storage.c (class_init): Set the return type of the - signal handlers to GTK_TYPE_NONE. - -2001-10-28 Ettore Perazzoli <ettore@ximian.com> - - [The following should fix #13802, crash on exit.] - - * evolution-shell-component.c (impl_unsetOwner): Set the ping - timeout ID to -1 when removing the source. - (impl_destroy): Likewise. - (impl_unsetOwner): Remove the timeout before unreffing, not after - unreffing. - -2001-10-28 Jon Trowbridge <trow@ximian.com> - - * e-shell-about-box.c: Distribute credit equally. - -2001-10-27 <NotZed@Ximian.com> - - * evolution-storage.c (impl_Storage_async_xfer_folder): We want - XFER_FOLDER not REMOVE_FOLDER! - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c (prepare_for_offline): Remove - debugging messages. - (finalize_offline_hash_foreach): Likewise. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c: New member `finished' in - `EShellOfflineHandlerPrivate'. - (finalize_offline): Ref the handler as we might get destroyed - while putting every component offline. - (impl_OfflineProgressListener_updateProgress): Don't emit - ::offline_procedure_finished if ->finished is %TRUE. Also, set it - to %TRUE after emitting the signal. - (cancel_offline): Likewise. - (finalize_offline): Likewise. - (update_dialog_clist): Guard against NULL ->dialog_gui. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage.c (impl_Storage_async_xfer_folder): Implement. - (class_init): Add the signal "xfer_folder" signal. - - * evolution-storage.h: New signal "xfer_folder". - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-corba-storage.c - (async_xfer_folder): New, implementation for the - ::async_xfer_folder method. - (class_init): Install it. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (destroy): Set ->is_initialized to %FALSE. - (e_shell_unregister_all): Same here. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c (prepare_intelligent_page): - gtk_widget_show_now() the dialog. - * e-shell-startup-wizard.c (prepare_importer_page): Likewise. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_new): Use gtk_widget_show_now() so the stupid - dialog hopefully displays all the time. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (set_current_notebook_page): Clear the folder bar - label to be empty. [#12553] - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c (timeout_callback): Draw one more line. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_about_box): Set the GtkWindow - policy so that @allow_shrink, @allow_grow and @auto_shrink are all - %FALSE. - -2001-10-26 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (e_shell_command_rename_folder): Don't - allow invalid folder names. [#12027] - - * e-shell-folder-creation-dialog.c (entry_name_is_valid): Removed. - (dialog_clicked_cb): Use `e_shell_folder_name_is_valid()' instead. - - * e-shell-utils.c (e_shell_folder_name_is_valid): New. Sorry I18N - people, it breaks the string freeze slighty. - - * e-component-registry.c (component_free): Add a cast. - (e_component_registry_restart_component): Argh, use the - corba_objref properly in calling `wait_for_corba_object_to_die()'. - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (update_offline_menu_item): Add accelerators - for "Work Offline" and "Work Online". - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (update_for_current_uri): Don't allow translators - to translate "Ximian Evolution". - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.c (wait_for_corba_object_to_die): New - helper function. - (e_component_registry_restart_component): Use it. - (component_free): Call it to wait for the unowned object to die. - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_selectUserFolder): Handle failure from - XGetClassHint properly. Also, free res_name and res_class in case - of success. Fixes #13554. - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (etree_icon_at): Don't display an icon for - storages that have subfolders. - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c: #include "e-util/e-gtk-utils.h". - - * e-shell-folder-creation-dialog.c - (e_shell_show_folder_creation_dialog): Constify a local variable - to placate a warning. - - * e-activity-handler.c (task_widget_cancel_callback): #if 0'ed - out. - - * evolution-shell-component-client.c - (evolution_shell_component_client_new): Remove unused variable - `ior'. - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-activity-handler.c (impl_destroy): Set ->priv to NULL. - (impl_operationStarted): Check for priv not being NULL. - (impl_operationProgressing): Likewise. - (impl_operationFinished): Likewise. - (impl_requestDialog): Likewise. - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-startup-wizard.c (make_mail_dialog_pages): Set the - ->mailer to be CORBA_OBJECT_NIL in case of an exception, otherwise - the caller will not realize about the problem. - -2001-10-25 Ettore Perazzoli <ettore@ximian.com> - - * evolution-wizard.c (evolution_wizard_set_buttons_sensitive): - Don't use __FUNCTION__. - (evolution_wizard_set_show_finish): Likewise. - (evolution_wizard_set_page): Likewise. - - * e-shell-startup-wizard.c (make_mail_dialog_pages): Do not use - __FUNCTION__ and __LINE__. This breaks the string freeze, but the - old way made Evolution non-compilable with non-GNU compilers. - -2001-10-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-about-box.c: Add a few names to the box. - -2001-10-24 Dan Winship <danw@ximian.com> - - * evolution-storage.c (evolution_storage_new_folder): - g_return_if_fail if the display_name is NULL. "Fixes" 11182 - although there may be a few more cases lying around that pass - NULLs in. - -2001-10-24 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_new): Set the WMClass of the quit dialog to be - different from the default one in an attempt to fix #13441. - -2001-10-24 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (storage_result_from_component_result): New. - (async_xfer_folder_callback): Use it so we get the right error - message. - (async_xfer_folder_complete): New arg @success. Don't remove the - directory and the metadata if @success is %FALSE. - -2001-10-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (rename_callback_data_new): Get the - path and the shell view instead. - (rename_callback_data_free): Updated accordingly. - (rename_cb): Set the name on the folder based on the path, not the - actual object [as the old object gets unreffed -- of course]. - -2001-10-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (rename_callback_data_new): New. - (rename_callback_data_free): New. - (rename_cb): Rename the folder here. - (e_shell_command_rename_folder): Don't rename the EFolder here. - -2001-10-23 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (async_xfer_folder_callback): Handle the - return codes properly, and invoke the result callback too. - -2001-10-23 Ettore Perazzoli <ettore@ximian.com> - - * e-activity-handler.c (show_cancellation_popup): #if 0'ed for - now, per #7427. - -2001-10-23 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-10-22 Ettore Perazzoli <ettore@ximian.com> - - * 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()'. - -2001-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_open_folder_in_new_window): Don't - explicitly show the new view. - -2001-10-22 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (impl_unsetOwner): Remove the ping - timeout. - -2001-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_selectUserFolder): Don't die if the parent - window has no WMHints. - -2001-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (show_existing_view): If the view is dead, just - return FALSE. Prevents crash #12483. - -2001-10-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c: New member `is_interactive' in `EShellPrivate'. - (init): Init to %FALSE. - (set_interactive): New. - (e_shell_create_view): Make interactive. - (view_destroy_cb): If no views are left, make non-interactive. - - * evolution-shell-component.c (class_init): Set up the - "interactive" signal. - (impl_interactive): New implementation for the ::interactive - method. - (class_init): Install. - - * evolution-shell-component.h: New signal `interactive'. - - * Evolution-ShellComponent.idl: New method ::interactive. - -2001-10-19 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (tree_drag_data_received): Pass the - @folder_type to ::handleDrop. - - * evolution-shell-component-dnd.c - (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion): - New arg @folder_type. - (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleDrop): - Likewise. - - * evolution-shell-component-dnd.h: Add @folder_type to - `DndDestinationFolderHandleDropFn' and - `DndDestinationFolderHandleMotionFn'. - - * e-storage-set-view.c (tree_drag_motion): Pass the folder type to - `::handleMotion'. - - * Evolution-ShellComponentDnd.idl: Pass @folder_type in - ::handleDrop and ::handleMotion. - -2001-10-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_about_box): Use EShellAboutBox. - (zero_pointer): Removed. - - * e-shell-about-box.h: New. - * e-shell-about-box.c: New. - -2001-10-18 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (evolution_SOURCES): Ooops. Remove stale files - `e-shell-about-box.[ch]'. - -2001-10-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_selectUserFolder): Set the parent - according to the XID we get. - - * Evolution-Shell.idl: New arg @parent_xid in `::selectUserFolder'. - - * evolution-shell-client.c - (evolution_shell_client_user_select_folder): New arg @parent. - (user_select_folder): Likewise. Pass it to the CORBA method. - -2001-10-17 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Urgh. Remove stale line that caused - `display_default' to be set to TRUE for all the non-NULL shell - cases. - -2001-10-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (set_owner_on_components): Re-set the owner on the - component that raised OldOwnerHasDied. - -2001-10-15 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (prepare_importer_page): Stop the prepare - running twice. - -2001-10-14 Dan Winship <danw@ximian.com> - - * e-corba-storage.c (async_folder_cb): - * e-storage.c (e_storage_result_to_string): Add two missing codes. - -2001-10-13 Dan Winship <danw@ximian.com> - - * evolution-shell-component-utils.c (e_activation_failure_dialog): - New function to try to activate a component when you know it's - going to fail, and then pop up a dialog explaining why it failed. - -2001-10-12 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (prepare_intelligent_page): Flush the gdk - functions so that the window will be shown. - - * e-shell-startup-wizard.c (make_mail_dialog_pages): Fix some - strings. - (prepare_importer_page): Flush GDK functions so that the window - is shown. - -2001-10-12 Ettore Perazzoli <ettore@ximian.com> - - [Fix #7643, Starting new view doesn't honor "view" settings.] - - * 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. - -2001-10-12 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_new): Also flush GDK after flushing GTK. - Otherwise GTK might queue draw requests to X that don't get - executed. - -2001-10-12 Ettore Perazzoli <ettore@ximian.com> - - [Hopefully really fix #8615 and friends.] - - * main.c (no_views_left_cb): Invoke `e_shell_disconnect_db()' - before unreffing the shell. - - * e-shell.c (e_shell_disconnect_db): New. - (destroy): Call it instead of unreffing the db manually here. - -2001-10-12 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c - (folder_selection_dialog_folder_selected_callback): Don't free the - folder_command_data here. It is supposed to be freed in the async - callback. The leak that Dan supposedly fixed was probably only - due to the fact that the component that was supposed to perform - the xfer didn't report a result. Now that xfer actually works, it - was triggering the crash instead. [Fixes #9769.] - -2001-10-12 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c (prepare_for_offline): Only invoke - `progress_listener_servant_free()', no need to also do `__fini()' - on it as `__fini()' is also called by the former. [Fixes #12329.] - Also, print out the CORBA exception that gets raised so we have - some more clues about what is wrong. - -2001-10-11 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c - (reparent_storage_set_view_box_and_destroy_popup): Don't die if - the folder_bar_popup is %NULL. Fixes #10922. - -2001-10-11 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Display the default view only if we are - starting our own shell, or if the command-line has no arguments - and we are talking to an already existing shell. - - * e-uri-schema-registry.c - (e_uri_schema_registry_set_handler_for_schema): Do not return a - value. - -2001-10-11 Dan Winship <danw@ximian.com> - - * Evolution-Storage.idl: Remove "display_name" arg from update - methods. It was only there to do the "Inbox (5)" hack, which is - supported directly now. - - * evolution-storage.c (impl_Storage_updateFolder): no longer takes - display_name. - (evolution_storage_update_folder, - evolution_storage_update_folder_by_uri): Likewise. - (class_init): Update signal signature. - - * evolution-storage-listener.c - (impl_GNOME_Evolution_StorageListener_notifyFolderUpdated): No - longer takes display_name, but make it pass the unread_count along - in the signal it emits. - (class_init): Update signal signature. - - * e-local-storage.c (bonobo_interface_update_folder_cb): - * e-corba-storage.c (impl_StorageListener_notifyFolderUpdated): No - longer take display_name. - -2001-10-10 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (handle_evolution_path_drag_motion): Ooops, - remove debugging message. - -2001-10-10 Ettore Perazzoli <ettore@ximian.com> - - * e-storage.c (e_storage_async_xfer_folder): Make this a no-op if - the source and the destination path are the same. - - * e-local-storage.c (impl_async_xfer_folder): return after - returning `E_STORAGE_CANTCHANGESTOCKFOLDER' to the callback. - - * e-storage-set-view.c (handle_evolution_path_drag_motion): Make - the check for dragging a folder over itself a little bit more - accurate. - -2001-10-05 Jon Trowbridge <trow@ximian.com> - - * e-shell-view-menu.c (command_work_offline): This is a message, - not a warning! - (command_work_online): This is also a message, not a warning! - (I'm feeling very anal today.) - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Do not invoke - `e_shell_restore_from_settings()' if `shell' is NULL. - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_handleURI): Handle the return value from - `evolution_shell_component_client_handle_external_uri()' as an - EvolutionShellComponentClientResult instead of treating it as a - boolean. This prevents the incorrect NotFound exceptions we were - getting for `mailto:' invocations. - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_new): Also `gdk_flush()'. - (idle_cb): If the user doesn't specify at least one `evolution:' - URI, restore from the settings. [Fixes #6093.] - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c: New member `ping_timeout_id' in - `EvolutionShellComponentPrivate'. - (setup_owner_pinging): New helper function. - (impl_owner_died): Unref the owner and set ->owner_client to - %NULL. - (impl_setOwner): Don't unref here. - (destroy): Remove the source for ->ping_timeout_id if not -1. - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * main.c: #include "e-util/e-gtk-utils.h". - (quit_box_new): Queue a draw on the window; otherwise it seems to - fail to redraw in some cases for some reason [see #11412]. - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (impl_setOwner): If the owner is - dead, emit "owner_died" instead of "owner_unset". - (impl_owner_died): New, default implementation for "owner_died". - (class_init): Install it. - - * evolution-shell-component.h: New signal "owner_died". - -2001-10-05 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (set_owner_on_components): If setting the owner fails, - print the a warning message out. Then restart the component. - - * e-component-registry.c (component_free): Return a boolean value. - %FALSE if ::unsetOwner raises an exception. - (register_type): New arg @override_duplicate, to avoid complaining - if a component gets re-registered. - (register_component): Likewise. - (e_component_registry_restart_component): New. - - * e-uri-schema-registry.c - (e_uri_schema_registry_set_handler_for_schema): Changed return - type to `void'. Just remove the old handler and set up the new - one. - - * evolution-shell-component-client.c (corba_exception_to_result): - Translate ::OldOwnerHasDied into - EVOLUTION_SHELL_COMPONENT_OLDOWNERHASDIED. - - * evolution-shell-component.h: New enum value - `EVOLUTION_SHELL_COMPONENT_OLDOWNERHASDIED'. - - * evolution-shell-component.c (impl_setOwner): If the old owner is - not alive anymore [use CORBA_Object_non_existent() to figure this - out], emit OWNER_UNSET and raise `OldOwnerHasDied'. - (evolution_shell_component_result_to_string): New. - - * Evolution-ShellComponent.idl: New exception `OldOwnerHasDied'. - (ShellComponent::setOwner): Can raise it. - - * e-folder-type-registry.c - (e_folder_type_register_type_registered): New. - (e_folder_type_register_unregister_type): New. - -2001-10-04 Rodrigo Moya <rodrigo@ximian.com> - - * importer/Makefile.am: added BONOBO_GNOME_CFLAGS to make it compile - with latest Bonobo - -2001-10-02 Ettore Perazzoli <ettore@ximian.com> - - [Fix #11326, The folder list can become detached from its parent - window.] - - * e-shell-view.c (folder_context_menu_popped_down_cb): Pop down - the folder bar if it's popped up. - -2001-10-02 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_component_maybe_crashed): Make the crash - message less dorky. [#10264] - -2001-10-02 Ettore Perazzoli <ettore@ximian.com> - - [Don't allow dragging from a folder to one of its descendants or - onto itself, when the operation is GDK_DRAG_MOVE. This fixes bugs - like #8737.] - - * e-storage-set-view.c (handle_evolution_path_drag_motion): Don't - highlight if the user is attempting to move a folder to one of its - descendants. - -2001-10-02 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (e_shell_view_construct): Use - `bonobo_ui_component_new_default()', not - `bonobo_ui_component_new()'. - -2001-10-02 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-09-28 Ettore Perazzoli <ettore@ximian.com> - - [Fix #8053, `GNOME_Evolution_Shortcuts' doesn't seem to work.] - - * e-shell.c (e_shell_construct): Don't create the EShortcuts - object a second time. - -2001-09-28 Ettore Perazzoli <ettore@ximian.com> - - [Fix #8434, Shortcut bar not shown properly.] - - * 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. - -2001-09-28 Iain Holmes <iain@ximian.com> - - * importer/import.glade: Add new pages. - - * e-shell-importer.c (show_import_wizard): Set up new pages. - (import_druid_finish): Check which type of importer to run. - -2001-09-26 Iain Holmes <iain@ximian.com> - - * Evolution-Shell.idl: Added a default_type parameter for setting the - default folder creation type. - - * e-shell-folder-commands.c (e_shell_command_create_new_folder): Add NULL - for default type. - (e_shell_command_move_folder): Add NULL for default type. - - * e-shell-folder-creation-dialog.c (add_folder_types): Check for the - default_type instead of for mail. - (get_type_from_parent_path): Get the folder type from the parent folder - (e_shell_show_folder_creation_dialog): Get the default folder type - before creating the menu. - - * e-shell-folder-creation-dialog.h: Update headers. - - * e-shell-folder-selection-dialog.c (impl_clicked): Add default type. - (e_shell_folder_selection_dialog_construct): Add default type. - (e_shell_folder_selection_dialog_new): Add default type. - - * e-shell-folder-selection-dialog.h: Update headers. - - * e-shell-importer.c (import_druid_finish): Add NULL for default type. - - * e-shell-view-menu.c (command_new_folder): Set NULL for default type. - (command_goto_folder): Set NULL for default type. - - * e-shell.c (impl_Shell_selectUserFolder): Update for the new default - type. - - * evolution-shell-client.c (user_select_folder): Add "" for default type - -2001-09-27 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (DEFINE_UNIMPLEMENTED): Remove. - (command_new_mail_message): Removed. - (command_pilot_settings): New. - (e_shell_view_menu_setup): Add tools verbs. - -2001-09-26 Ettore Perazzoli <ettore@ximian.com> - * 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". - -2001-09-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (e_shell_command_rename_folder): - Change the name on the EFolder object too. - -2001-09-25 Ettore Perazzoli <ettore@ximian.com> - - * e-storage.c (e_storage_async_xfer_folder): Ooops. Make the - check for CANTMOVETODESCENDANT really work. - - * e-storage-set-view.c (tree_drag_data_received): Pass the - EStorageSetView as the data for the async_xfer function. - (folder_xfer_callback): Display an error dialog if something goes - wrong. - - * e-shell-view-menu.c (command_rename_folder): Enable again. - - * e-shell-folder-commands.c (e_shell_command_rename_folder): - Re-implemented. - (delete_dialog): Use double quotes instead of single quotes around - the folder name, for consistency with the other dialogs. - -2001-09-25 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-09-21 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (folder_selected): Use GNOME functions to get - full expanded path from file entry. - -2001-09-20 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (tree_drag_motion): Check for a component - for the given row *after* trying to handle - EVOLUTION_PATH_TARGET_TYPE. Otherwise, we always fail in the case - of dnd between a folder and the toplevel node of its storage. - (find_matching_target_for_drag_context): If not on a folder, - always return EVOLUTION_PATH_TARGET_TYPE. - -2001-09-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (storage_set_view_box_event_cb): Removed. - (folder_bar_popup_map_callback): Don't connect. - (reparent_storage_set_view_box_and_destroy_popup): Don't ungrab - here. - (popdown_transient_folder_bar): Ungrab here. - (popdown_transient_folder_bar_idle): New. - (switch_on_folder_tree_click): Invoke it in the idle loop. Also, - ungrab. - -2001-09-20 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (e_shell_startup_wizard_create): Check - the number of mail accounts that exist and display the dialog it this - is 0. - -2001-09-19 Ettore Perazzoli <ettore@ximian.com> - - * e-task-widget.c: New member `tooltips' in `ETaskWidgetPrivate'. - (init): Init to NULL. - (e_task_widget_construct): Create a GtkTooltips and make - `tooltips' point to it. - (e_task_widget_update): Set the tooltip for the label too. - -2001-09-19 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c: Removed globals `activity_client', - `progress'. - (timeout_callback_3): Get the activity client from @data. - (timeout_callback_2): Likewise here. Pass the activity client as - the user data pointer for `gtk_timeout_add()'. Put the progress - count in a "my_progress" GtkObject data key. - (timeout_callback_1): Pass the newly created EActivityClient as - the user data pointer for `gtk_timeout_add()'. Also, dispatch - itself again with a random timeout delay, for a maximum of - NUM_ACTIVITES times. Initialize the "my_progress" GtkObject data - to be -1. - - [Lame hack to reduce the number of parallel operations reported by - the same component displayed in the task bar.] - - * e-activity-handler.c: New member `component_id' in - `ActivityInfo'. - (activity_info_new): New arg @component_id. Init the - `component_id' member accordingly. - (activity_info_free): Free the `component_id' member. - (impl_operationStarted): Pass the component_id to - `activity_info_new()'. - (task_widget_new_from_activity_info): Pass the component_id to the - activity_info. - - * e-task-widget.c: New member `component_id' in - `ETaskWidgetPrivate'. - (impl_destroy): Free it. - (init): Init to NULL. Also init all the other members to NULL as - well. - (e_task_widget_construct): New arg @component_id. Assign - ->component_id to match it. - (e_task_widget_new): New arg @component_id here as well. Pass it - over to `e_task_widget_construct()'. - (e_task_widget_get_component_id): New. - -2001-09-18 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (handle_evolution_path_drag_motion): New - arg @row. Highlight that row. - (tree_drag_motion): Pass @row to - `handle_evolution_path_drag_motion()'. - -2001-09-18 Ettore Perazzoli <ettore@ximian.com> - - * e-splash.c: #include "e-gtk-utils.h". - -2001-09-18 Ettore Perazzoli <ettore@ximian.com> - - * e-splash.c (e_splash_construct): Make the canvas backing stored. - -2001-09-17 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_new): Call `e_make_widget_backing_stored()' on - the widget so it refreshes properly even when we are busy waiting - on CORBA calls. - -2001-09-17 Ettore Perazzoli <ettore@ximian.com> - - * main.c (quit_box_new): New. - (quit_box_destroyed_callback): New. - (no_views_left_cb): Use these two functions to display a warning - message when Evolution is quitting. - -2001-09-17 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-09-17 Ettore Perazzoli <ettore@ximian.com> - - [Fix #9060, Shell crash after mailer crash.] - - * 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. - -2001-09-16 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (e_shell_view_show_folder_bar): Hide the - storage_set_view_box *before* getting the child1_size [otherwise, - the latter will, um, always be zero]. - -2001-09-16 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (etree_get_node_by_id): Made save_id const - here. - -2001-09-14 Ettore Perazzoli <ettore@ximian.com> - - [Automake 1.5 fixes pointed out by Richard Boulton - <richard@tartarus.org>, as per #9258.] - - * importer/Makefile.am (CLEANFILES): Assign directly using `=', - instead of `+='. - * Makefile.am (CLEANFILES): Likewise. - -2001-09-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (impl_Shell_getLocalStorage): Return a proper value. - (impl_Shell_createStorageSetView): Likewise. - (impl_Shell_setLineStatus): Likewise. - (impl_Shell__get_displayName): Likewise. - (impl_Shell_getComponentByType): Likewise. - (impl_Shell_createNewView): Likewise. - (impl_Shell_handleURI): Likewise. - -2001-09-14 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (start_import): Only check for local path if the - folderpath != NULL. - - * e-shell-startup-wizard.c (prepare_importer_page): Remove GTK_CLIST - cast. - -2001-09-12 Iain Holmes <iain@ximian.com> - - * evolution-wizard.c: Remove spewage. - -2001-09-14 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-importer.c (start_import): Removed unused variable. - -2001-09-14 Ettore Perazzoli <ettore@ximian.com> - - [Fix #8204 and the other bugs caused by allowing invocations on - 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. - -2001-09-13 Ettore Perazzoli <ettore@ximian.com> - - [Fix #5990, Remembering Evolution window geometry.] - - * 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. - -2001-09-13 Ettore Perazzoli <ettore@ximian.com> - - [Remove a bunch of debugging messages, as per #7741.] - - * evolution-wizard.c (impl_GNOME_Evolution_Wizard_notifyAction): - Removed debugging messages. - - * e-storage-set.c (storage_removed_folder_cb): Removed debugging - message. - - * e-storage-set-view.c (tree_drag_begin): Removed debugging - message. - (tree_drag_data_received): Removed debugging messages. - - * e-shortcuts.c (idle_cb): Removed debugging message. - - * e-shortcuts-view-model.c (get_icon_for_item): Removed debugging - message. - - * e-shell.c (setup_components): Removed debugging message. - - * e-shell-startup-wizard.c (druid_event_notify_cb): Removed - debugging message. - (e_shell_startup_wizard_create): Removed debugging message. - - * e-shell-offline-handler.c (finalize_offline_hash_foreach): - Removed debugging message. - - * e-shell-importer.c (start_import): Removed debugging message. - (item_selected): Same here. - - * e-local-storage.c (async_xfer_folder_step): Removed debugging - message. - - * e-corba-storage.c (impl_StorageListener_notifyFolderCreated): - Changed the error from a g_print() into a g_warning(). Removed - debugging message. - - * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): - Removed debugging message. - (impl_StorageRegistry_removeStorageByName): Likewise. - - * e-component-registry.c (component_free): Removed debugging - message. - (register_component): Don't printf() about the registered folder - type. - (register_component): Don't printf() about the registered schema - type. - -2001-09-13 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-09-12 Ettore Perazzoli <ettore@ximian.com> - - * main.c (main): Add SUB_VERSION to the version string passed to - `gnome_init_with_popt_table()'. - -2001-09-12 Chris Toshok <toshok@ximian.com> - - * e-shell-importer.c (start_import): only allow importing to - /local folders. - -2001-09-12 Ettore Perazzoli <ettore@ximian.com> - - [Fix #4962, "Highlighting is left after a drag".] - - * e-storage-set-view.c (tree_drag_motion): Only highlight when - moving over allowed targets. - -2001-09-12 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c (unrealize): Only - gtk_widget_destroy() the icon_widget if it's not NULL. - -2001-09-12 Iain Holmes <iain@ximian.com> - - * importers/evolution-importer-client.c - (evolution_importer_client_process_item): Remove spew. - -2001-09-10 Dan Winship <danw@ximian.com> - - * e-shell-view.c (socket_destroy_cb): Oops. Remove duplicate free. - -2001-09-09 Dan Winship <danw@ximian.com> - - Purify run. All small leaks. - - * 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. - -2001-09-07 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (prepare_importer_page): New design. - (make_importer_page): Remove the extra widgets for the new design. - -2001-09-07 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (tree_start_drag): Changed this to use the - new ETable/ETree drag stuff. - -2001-09-07 Dan Winship <danw@ximian.com> - - * evolution-shell-component-client.c - (evolution_shell_component_client_new): Remove the "see previous - error messages?" comment from the error message when starting a - component, since oafd eats the output of the components it - launches now, so it's just misleading. - -2001-09-06 Chris Toshok <toshok@ximian.com> - - * evolution-storage.c (impl_Storage_async_remove_folder): change - to match create_folder. - (e_marshal_NONE__POINTER_POINTER_POINTER): new marshaller for - remove_folder. - (class_init): make sure to use the right marshaller for - create/remove_folder. - - * evolution-storage.h: change the signature of both the - create_folder and remove_folder signals to be more in line with - what's in evolution-storage.c. They both take a Bonobo_Listener - which the signal func notifies, instead of synchronously returning - the result. - -2001-09-06 Ettore Perazzoli <ettore@ximian.com> - - * evolution-activity-client.c (evolution_activity_client_update): - Allow a value of -1.0 for @progress [which means "unknown - progress"]. - -2001-09-05 Ettore Perazzoli <ettore@ximian.com> - - [Fix #958, ShellComponents should not be created by factories, for - the test component.] - - * GNOME_Evolution_TestComponent.oaf: Remove the factory. - - * evolution-test-component.c (COMPONENT_FACTORY_ID): Removed. - (component_factory_init): Removed. - (register_component): Rename from `component_fn'. No args, no - return value. Register the thing on OAF by yourself instead of - using a factory. - -2001-09-05 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (get_shortcut_info): New. - (get_efolder_from_shortcut): Removed. - (impl_shortcut_dropped): Use `get_shortcut_info()' instead. - -2001-09-05 Ettore Perazzoli <ettore@ximian.com> - - * main.c (development_warning): s/Evolution/Ximian Evolution/. - (idle_cb): Likewise. - - * e-splash.c (e_splash_construct): s/Evolution/Ximian Evolution/. - - * e-shell-view.c (e_shell_view_construct): s/Evolution/Ximian - Evolution/. - (update_for_current_uri): Likewise. - (update_offline_toggle_status): Likewise. - - * e-shell-view-menu.c (command_about_box): s/Evolution/Ximian - Evolution/. - -2001-09-04 Ettore Perazzoli <ettore@ximian.com> - - [Fix #6474 and friends, crash when selecting things from the - context activity context menu.] - - * e-activity-handler.c: New member `menu' in struct - `ActivityInfo'. - (activity_info_new): Init to NULL. - (show_cancellation_popup): Set the `menu' member to point to this - newly created pop-up, use `gnome_popup_menu_do_popup_modal()' - instead of `gnome_popup_menu_do_popup()', and set the `menu' - member to NULL when the menu is gone. - (activity_info_free): Destroy `menu' member. - (impl_requestDialog): Return - `GNOME_Evolution_Activity_DIALOG_ACTION_ERROR' instead of nothing. - -2001-09-04 Ettore Perazzoli <ettore@ximian.com> - - [Fix #6971, Default folder should be the Summary.] - - * main.c (idle_cb): s/DEFAULT_URI/E_SHELL_VIEW_DEFAULT_URI/. - - * e-shell.c (e_shell_create_view): - s/DEFAULT_URI/E_SHELL_VIEW_DEFAULT_URI/. - - * e-shell-view.c (socket_destroy_cb): - s/DEFAULT_URI/E_SHELL_VIEW_DEFAULT_URI/. - (e_shell_view_save_settings): Likewise. - - * e-shell-folder-commands.c (e_shell_command_delete_folder): - s/DEFAULT_URI/E_SHELL_VIEW_DEFAULT_URI/. - - * e-shell-view.h (DEFAULT_URI): Rename to - `E_SHELL_VIEW_DEFAULT_URI'. Change from "evolution:/local/Inbox" - to be "evolution:/summary". - -2001-09-04 Ettore Perazzoli <ettore@ximian.com> - - [Fix ^#7675, Crashes trying to empty trash folder.] - - * e-shortcuts.c (e_shortcuts_construct): Use - `gtk_signal_connect_while_alive()' so we don't invoke the - callbacks on dead EShortcuts objects. - -2001-09-04 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (start_importer): Report errors in a dialog. - -2001-09-04 Ettore Perazzoli <ettore@ximian.com> - - * e-activity-handler.c (impl_operationProgressing): Just ignore - the request if the activity handler has the GTK_OBJECT_DESTROYED() - flag set. This should prevent crashes like #7542 and friends when - the components are not well-behaved enough to respect the Bonobo - refcounting. - (impl_operationStarted): Likewise. - (impl_operationFinished): Likewise. - (impl_requestDialog): Likewise. - -2001-09-04 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (start_import): Check the file exists before trying - to do anything. - -2001-09-04 Iain Holmes <iain@ximian.com> - - * e-shell.c (e_shell_construct): Make the other components shut down - correctly when the first time dialog is cancelled. - -2001-09-04 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (tree_drag_motion): Remove debugging - message. - (tree_drag_motion): Likewise. - -2001-09-04 Ettore Perazzoli <ettore@ximian.com> - - [Patch from Richard Boulton <richard@tartarus.org> to fix #8497, - "Warning when shutting view: RootNode not found".] - - * e-storage-set-view.c (e_storage_set_view_construct): Add the - root node to the hash. - (e_storage_set_view_set_show_folders): Likewise. - -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. - -2001-08-31 Zbigniew Chyla <cyba@gnome.pl> - - * e-local-storage.c - (setup_folder_as_stock): Don't convert folder name to UTF-8 manually... - (setup_stock_folders): ... just use U_() here. - (impl_get_display_name): Marked string for translation (with U_). - - * e-storage-set-view.c - (storage_sort_callback): s/strcasecmp/g_utf8_collate/ - (folder_sort_callback): ditto - - * e-summary-storage.c (impl_get_display_name): - Marked string for translation (with U_). - -2001-08-29 Iain Holmes <iain@ximian.com> - - * e-local-storage.c (notify_listener): Function to create CORBAany - and notify listeners. - (component_async_create_folder_callback): Notify the listener again. - (create_folder): Handle the Bonobo_Listener again and make it async. - (impl_async_create_folder): Pass CORBA_OBJECT_NIL as the listener. - (bonobo_interface_create_folder_cb): Make async. - - * evolution-storage.c (notify_bonobo_listener): Removed this broken - broken function. - (impl_Storage_async_create_folder): Make async, duplicate the listener - instead of notifying it. - (impl_Storage_async_remove_folder): Notify listener by hand. - (e_marshal_NONE__POINTER_POINTER_POINTER_POINTER_POINTER): Return of the - worst signal marshaller in Scotland. - (class_init): Use the above marshaller for the create_folder signal. - -2001-08-30 Jeffrey Stedfast <fejj@ximian.com> - - * e-shell-folder-creation-dialog.c (entry_name_is_valid): Check - for \r in the folder name, this is an invalid char. Also take a - "reason" argument so we can inform the user why his folder name is - invalid. - (dialog_clicked_cb): Tell the user why the folder name is invalid. - -2001-08-28 Ettore Perazzoli <ettore@ximian.com> - - [Fix #8125, Evolution crashes while starting.] - - * e-shortcuts.c (load_shortcuts): Handle the case when there is no - URI without crashing. Only add shortcuts when they are evolution: - URIs. - -2001-08-27 Ettore Perazzoli <ettore@ximian.com> - - * 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> - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (update_for_current_uri): Also display the unread - count in the title bar. - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c (copy_default_stuff): Remove the stupid "do you want - me to initialize stuff?" dialog. - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c: Change the `selected_row_path' to be - non-const. - (destroy): Free it. - (e_storage_set_view_set_current_folder): Set the selected_row_path - to be this path. - (tree_drag_begin): Free the selected_row_path and strdup() the - value we assign. - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - [Fix #5978, "If a component dies, it's toolbar buttons remain".] - - * 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. - -2001-08-24 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (druid_event_notify_cb): Implement the other - missing events. - (make_identity_page): - (make_receive_page): - (make_extra_page): - (make_transport_page): - (make_management_page): Add the GnomeDruidPages to the page_list. - -2001-08-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c: Added accelerators for the right-click - shortcut menu. - -2001-08-23 Zbigniew Chyla <cyba@gnome.pl> - - * e-shortcuts.c (e_shortcuts_add_default_group): Convert names of the - default group and shortcuts to UTF-8 (still no U_ :(). - -2001-08-23 Zbigniew Chyla <cyba@gnome.pl> - - * e-shortcuts-view.c (destroy_group_cb): Convert the name of the group - to GTK+ locale before displaying it in a dialog. - -2001-08-23 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (tree_drag_data_received): If we get no - data, don't notify the receiving component at all. - -2001-08-23 Ettore Perazzoli <ettore@ximian.com> - - [Fix #5736, crashing when copying a message with drag and drop.] - - * e-storage-set-view.c (tree_drag_data_received): Handle NULL data - gracefully. - -2001-08-22 Ettore Perazzoli <ettore@ximian.com> - - * e-storage.c (e_storage_async_xfer_folder): If the remove_source - is %TRUE and destination is a descendant of the parent, pass an - `E_STORAGE_CANTMOVETODESCENDANT' error code to the callback. - - * e-storage.h: New value `E_STORAGE_CANTMOVETODESCENDANT' in - `EStorageResult'. - -2001-08-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c - (folder_selection_dialog_folder_selected_callback): Actually - return if the folder is being moved into one of its descendants. - -2001-08-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c (label_realize_callback): `#if 0'ed - out. - (make_bold): Likewise. - (e_shell_folder_title_bar_construct): Don't call it. - - * e-local-storage.c (component_async_remove_folder_callback): Only - remove the directory if the component succeeds. - -2001-08-22 Peter Williams <peterw@ximian.com> - - * e-local-storage.c (async_xfer_folder_callback): Fix the improper - construction of the new folder's physical URI. - -2001-08-22 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (remove_folder): Don't remove the folder - directory here. - (component_async_remove_folder_callback): Remove it here instead. - -2001-08-22 Ettore Perazzoli <ettore@ximian.com> - - [Fix #7775, crash trying to do New Task] - - * e-shell-user-creatable-items-handler.c (verb_fn): Make sure we - don't pass NULL strings to - `GNOME_Evolution_ShellComponent_userCreateNewItem()'. - -2001-08-21 Damon Chaplin <damon@ximian.com> - - * e-gray-bar.c (endarken_style): unref the rc_style. - -2001-08-21 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c: #include "e-shell-startup-wizard.h". - - * e-shell-startup-wizard.h: New. - -2001-08-21 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (make_mail_dialog_pages): Show an error - window if mailer doesn't respond. - -2001-08-21 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c (label_realize_callback): Fix a leak: - unref the EFont after we have used it. Also, don't crash if - `e_font_to_gdk_font()' returns NULL. [This should fix #7666, - Folder View crashes Evo.] - -2001-08-21 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (start_import): Don't print a NULL. - -2001-08-20 Iain Holmes <iain@ximian.com> - - * e-shell-importer.c (import_druid_finish): Do the correct thing when - the new folder button is clicked. - (folder_selected): Import the file. - (folder_cancelled): Kill the dialog. - -2001-08-18 Iain Holmes <iain@ximian.com> - - * e-shell-startup-wizard.c (make_identity_page): - (make_receive_page): - (make_extra_page): - (make_transport_page): - (make_management_page): Check that the mailer has been inited correctly. - (e_shell_startup_wizard_create): If some of the pages could not be - created, just stop trying to show the startup wizard. - -2001-08-20 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-startup-wizard.c (finish_func): Don't free the returned - displayname. - -2001-08-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (pop_up_folder_bar): Make sure we display a pin - when we are popped up. - -2001-08-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (setup_widgets): Don't set the paned tree - position. - -2001-08-19 Chris Toshok <toshok@ximian.com> - - * evolution-shell-component.c (impl__get_supported_types): fill - the corba sequence for the accepted_dnd_types. - -2001-08-20 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-20 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c: Added display_name and description - to the type. - - * evolution-shell-component.c (impl__get_supported_types): Pass - `display_name' and `description' here. - (evolution_shell_component_construct): Likewise. - - * evolution-shell-component.h: New members `display_name', - `description' in `EvolutionShellComponentFolderType'. - - * e-component-registry.c (register_type): New args @description - and @display_name. Pass to - `e_folder_type_registry_register_type()'. - (register_component): Pass the values returned in the sequence - from __get_supported_types. - - * e-folder-type-registry.c: New members `display_name' and - `description' in `struct _FolderType'. - (folder_type_new): New args @description and @display_name. - Initialize the respective fields in the `FolderType' accordingly. - (folder_type_free): Free `display_name' and `description'. - (register_folder_type): New args @display_name, @description. - (e_folder_type_registry_register_type): New args @display_name, - @description. - (e_folder_type_registry_get_description_for_type): New. - (e_folder_type_registry_get_display_name_for_type): New. - - * Evolution-ShellComponent.idl: Added `display_name' and - `description' fields to the `FolderType' struct. - -2001-08-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (destroy): Put the bonobo_object_release_unref() for - the db at the top in an attempt to fix #7542. - -2001-08-19 Ettore Perazzoli <ettore@ximian.com> - - * e-summary-storage.c (e_summary_storage_new): Change type of - toplevel node from "Summary" to "summary". [All the other folder - types use lowercase names.] - - * e-shortcuts.c (load_shortcuts): Also use the display name for - the storage. - -2001-08-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts.c (load_shortcuts): Use xmlMemStrdup() to override - the type as it's expected to be allocated by libxml later on. - Also, get the icon for the storage if the shortcut points to a - storage. - - * e-storage-set-view.c (etree_icon_at): Don't special case the - Summary storage. Rather, use `e_storage_get_toplevel_node_type()' - for getting the type of the node. - - * e-shortcuts-view-model.c (get_icon_for_item): New helper - function. - (shortcuts_update_shortcut_cb): Use it. - (shortcuts_new_shortcut_cb): Use it. - (load_group_into_model): Use it. - -2001-08-18 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-18 Ettore Perazzoli <ettore@ximian.com> - - * 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'. - -2001-08-17 Iain Holmes <iain@ximian.com> - - * Makefile.am: Add the Evolution-Wizard.idl file - -2001-08-17 Iain Holmes <iain@ximian.com> - - * e-shell-folder-selection-dialog.c (folder_creation_dialog_result_cb): - Check the priv isn't NULL before dereferencing it. - -2001-08-17 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-client.c - (evolution_shell_client_set_line_status): g_return_if_fail(), not - g_return_val_if_fail(). - -2001-08-17 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-client.c - (evolution_shell_client_get_local_storage): Added some g_warnings - for when we return CORBA_OBJECT_NIL; this might help to figure out - what is wrong with bug #6625. Also, added a missing - CORBA_exception_free(). - -2001-08-17 Jeffrey Stedfast <fejj@ximian.com> - - * e-shell.c (e_shell_construct): Don't destroy the splash twice. - - * e-local-storage.c (setup_folder_as_stock): utf_name should not - be const as e_utf8_from_locale_string() returns an allocated - buffer. - -3001-08-17 Iain Holmes <iain@ximian.com> - - * Evolution.idl: Add Evolution-Wizard.idl - - * Evolution-Wizard.idl: New file implementing a wizard interface. - - * Makefile.am: Add the wizard stuff and the startup dialog stuff - - * e-shell.c (e_shell_construct): Hide the splash screen and try to - start the startup assistant. - - * glade/Makefile.am: Add the evolution-startup-wizard.glade - -2001-08-16 Jason Leach <jleach@ximian.com> - - * e-shell-view-menu.c (authors): Add myself. - - * e-shell-view.c (folder_selected_cb): Desensitize the - move/copy/delete/rename in the menus (including right click) for - stock folders. - - * Evolution-Icon.idl: Actually remove this file from CVS (its - contents are now in Evolution-common.idl). - -2001-08-16 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Remove the Help menu verbs and add a - "HelpFAQ" verb. - (command_help): Removed. - (command_help_faq): New, implementation for the "HelpFAQ" verb. - -2001-08-16 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c (label_realize_callback): New - callback for the realize signal. - (make_bold): New. Hooks up the label_realize_callback. - (e_shell_folder_title_bar_construct): Make the name of the folder - bold using it. - -2001-08-16 Ettore Perazzoli <ettore@ximian.com> - - * e-gray-bar.c (endarken_style): Just hardcode the colors. - - * e-shell-folder-title-bar.c (set_title_bar_label_style): New. - (e_shell_folder_title_bar_construct): Call it on the labels here, - so we get nice white labels. - -2001-08-16 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_component_maybe_crashed): s/the view for `%s' - have/the views for `%s' have/. - -2001-08-16 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (etree_icon_at): Remove debugging message. - -2001-08-15 Jason Leach <jleach@ximian.com> - - * e-shell-view-menu.c (command_help): Don't hardcode/build a help - URI here, use gnome_help_display() instead, which will figure out - what language the user needs, etc. - (help_verbs): Adapt these menu items to above changes, they don't - need to pass "evolution/foo.html" to command_help, just - "foo.html". - - * e-folder.c (e_folder_set_child_highlight): Emit a "changed" - signal at the end of this function. Bug #7232. - -2001-08-15 Aaron Weber <aaron@ximian.com> - - * e-shell-view-menu.c (command_about_box): Changed help menus to - point to evolution/ and not evolution-guide/. - -2001-08-15 Iain Holmes <iain@ximian.com> - - * e-summary-storage.c: s/My Evolution/Summary - - * e-storage-set-view.c: s/My Evolution/Summary - -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. - -2001-08-14 Dan Winship <danw@ximian.com> - - * evolution-storage.c (evolution_storage_new_folder): Use the - passed-in unread_count. - - * e-corba-storage.c (impl_StorageListener_notifyFolderCreated): - Pass the passed-in unread_count to e_storage_new_folder. - -2001-08-13 Ettore Perazzoli <ettore@ximian.com> - - * e-gray-bar.c (impl_style_set): Chain to the parent class. - (endarken_style): Hardcode the colors here. - -2001-08-13 Anna Marie Dirks <anna@ximian.com> - - * importer/intelligent.c : Changed the "Evolution has found the - following data sources" text in the import dialog to "Evolution - can import data from the following files" in an attempt to - increase user-friendliness. - -2001-08-13 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (setup_widgets): Add some little padding to the - title bar so it looks nicer. - -2001-08-13 Ettore Perazzoli <ettore@ximian.com> - - [Fix #7109, Evolution crashes when the splash screen dialog is - killed by clicking the "X" button.] - - * e-shell.c (e_shell_construct): Connect - `gtk_widget_hide_on_delete()' correctly. - -2001-08-13 Anna Marie Dirks <anna@ximian.com> - - * importer/import.glade : Changed all instances of "druid" - and "wizard" to "assistant". - -2001-08-13 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Replaced the chained `if' statements with a - `switch' statement for clarity. Also, don't ref the created - shell, and release the object reference properly. - -2001-08-13 Ettore Perazzoli <ettore@ximian.com> - - * e-corba-shortcuts.c (shortcut_list_to_corba): set_release on the - sequence, not the buffer. - -2001-08-13 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (view_destroy_cb): Restore the shell reffing/unreffing - here. - -2001-08-13 Peter Williams <peterw@ximian.com> - - * e-corba-shortcuts.c (shortcut_list_to_corba): Don't cause an abort - if the shortcut group is empty. - -2001-08-13 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (IDLS): Add `Evolution-common.idl'. - -2001-08-13 Dan Winship <danw@ximian.com> - - * evolution-shell-component.c (init): Initialize - priv->user_creatable_item_types. [Score: g_new: 0, g_new0: 2] - -2001-08-13 Jason Leach <jleach@ximian.com> - - * e-local-storage.c (remove_folder_directory): Remove unused - variable @folder. - - * e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar): - Give icons to shortcuts added via Right-click->Add to Shortcut - Bar. - -2001-08-12 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Grab focus on the - storage set view. - -2001-08-12 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (setup_folder_as_stock): Use utf 8 to set the - name. - -2001-08-12 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (etree_value_at): Remove debugging message. - -2001-08-12 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (setup_widgets): Put the folder title bar into an - EGrayBar. - - * e-gray-bar.c: New. - * e-gray-bar.h: New. - -2001-08-12 Ettore Perazzoli <ettore@ximian.com> - - [Finally! Fix #413, "Support for stock folders", and #786, "i18n: - default folder names are not translated".] - - * e-local-storage.c (setup_folder_as_stock): New helper function. - (setup_stock_folders): Use it to set the default folders as - "stock" folders. This will give them a translated name and also - make them unmodifiable. - (load_all_folders): Call `setup_stock_folders()' here. - - * e-shell-folder-commands.c (delete_cb): Display an error dialog - if the deletion fails. - (e_shell_command_delete_folder): Pass the shell view to the delete - callback. - - * e-storage.c (e_storage_result_to_string): Add a string for - `E_STORAGE_CANTCHANGESTOCKFOLDER' as well. - - * e-local-storage.c (remove_folder): Don't allow a stock folder to - be removed. - (impl_async_xfer_folder): Don't allow a stock folder to be moved. - - * e-corba-storage.c (async_remove_folder): Don't allow a stock - folder to be removed. - - * e-storage.h: New enum value `E_STORAGE_CANTCHANGESTOCKFOLDER' in - `EStorageResult'. - - * e-folder.c: Make member `self_highlight' a :1 int. New :1 int - member `is_stock'. - (init): Init `is_stock' to %FALSE. - (e_folder_set_is_stock): New. - (e_folder_get_is_stock): New. - - * e-local-storage.c (bonobo_interface_update_folder_cb): For now, - don't set the display name. - -2001-08-10 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-common.idl: Add Folder struct here. - - * Evolution-Storage.idl: Removed Folder struct. - - * Evolution.idl: #include <Evolution-common.idl>, not - <Evolution-Icon.idl>. - - * Evolution-common.idl: New. - - * Evolution-Icon.idl: Removed. - -2001-08-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (rename_clicked): `#if 0'ed out. - (rename_cb): Likewise. - - * evolution-shell-component.c (destroy): Fixed a confusion between - GList and GSList. - -2001-08-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-user-creatable-items-handler.c (component_free): Only - free the `type_list' if not NULL. - (setup_menu_xml): Deal with the case of `type_list' being NULL - gracefully. - (verb_fn): Same here. - (add_verbs_to_ui_component): Likewise. - -2001-08-10 Ettore Perazzoli <ettore@ximian.com> - - [Fix #6787, Removing a storage with children and then re-adding it - causes a crash.] - - * e-storage-set-view.c (convert_corba_drag_action_set_to_gdk): - Removed `#if 0'ed function. - (etree_node_destroy_func): New destroy function. - (e_storage_set_view_construct): Set this as the new destroy - function on the ETreeMemory. - -2001-08-09 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-09 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c (show_new_group_dialog): Cast the toplevel to - be passed to `e_request_string()' to GtkWindow, not GtkWidget. - Also, remove unused variables. - (get_efolder_from_shortcut): Constify @item_url. - (get_storage_set_path_from_uri): Removed. - - * evolution-shell-component.c (destroy): `p' shall be a GList, not - a GSList. - -2001-08-09 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-09 Federico Mena Quintero <federico@ximian.com> - - * e-component-registry.c (destroy): Chain to the destroy handler - in the parent class! - - * e-shortcuts-view-model.c (impl_destroy): Likewise. Sigh. - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - [Fixes, among other things, #5705, "Ampersands not handled - correctly in drag + drop". Thanks to Nat for actually discovering - the problem.] - - * e-shortcuts.c (save_shortcuts): Use `xmlNewTextChild()' instead - of `xmlNewChild()'. - - * e-local-folder.c (save_metadata): Use `xmlNewTextChild' instead - of `xmlNewChild()'. - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c - (fill_corba_sequence_from_null_terminated_string_array): Set the - release flag on the sequence, and CORBA_string_dup() the strings - anyway. - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c - (impl_ShellComponent__get_supported_types): Set the release flag - on the returned folder type list too. - - * evolution-activity-client.c (create_icon_from_pixbuf): Set the - release flag on the sequence, not the struct that contains it. - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - * e-corba-shortcuts.c (shortcut_list_to_corba): Set the release - flag for the newly allocated sequence. - - * e-activity-handler.c (impl_operationStarted): Unref the - icon_pixbuf. - - * e-task-widget.c (impl_destroy): g_free the private struct. - -2001-08-08 Jason Leach <jleach@ximian.com> - - * e-storage-set-view.c (etree_icon_at): Set the My Evolution icon - for the folder tree correctly. - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c - (impl_ShellComponent__get_supported_types): Fill the CORBA - sequence once. - - * e-activity-handler.c (activity_info_free): Unref the icon. - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - * e-task-bar.c (e_task_bar_prepend_task): Sigh. If the function - says "prepend", of course the function to call is - `g_list_prepend()', not `g_list_append()'. You dumbass. - -2001-08-08 Jason Leach <jleach@ximian.com> - - * e-shell-folder-creation-dialog.c - (storage_set_view_storage_selected_cb): Set the sensitivity for - the OK button when a storage is selected too. Bug #6473. - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - * evolution-activity-client.c (create_icon_from_pixbuf): Set the - release flag on the returned icon to %TRUE. - -2001-08-07 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts.c (load_shortcuts): If the shortcut points to some - folder in the storage set, get the type from it. - - * e-storage-set.c (signal_new_folder_for_all_folders_under_paths): - New helper function. - (signal_new_folder_for_all_folders_in_storage): New helper - function. - (e_storage_set_add_storage): Call the latter to emit a - "new_folder" signal for all the folders contained in the newly - added storage. - -2001-08-07 Ettore Perazzoli <ettore@ximian.com> - - [This should fix #5407, application crash on re-opening.] - - * 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. - -2001-08-07 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view-model.c (load_group_into_model): Get the icon - from the folder type registry. - (shortcuts_new_shortcut_cb): Likewise. - (shortcuts_update_shortcut_cb): Likewise. - - * e-shortcuts-view.c (icon_callback): Removed. - (e_shortcuts_view_construct): Don't set the icon callback anymore. - -2001-08-07 Jason Leach <jleach@ximian.com> - - * e-storage-set-view.c (etree_value_at): Don't use a leaky hash to - get folder names with unread count, use gtk_object_set_data_full - and gtk_object_get_data on the EFolder. - (etree_icon_at): Give the "My Evolution" storage an icon through a - non-generic way. Will be replaced by a generic method when other - storages get icons too. - -2001-08-07 Ettore Perazzoli <ettore@ximian.com> - - * evolution-activity-client.c - (evolution_activity_client_construct): Free the CORBA version of - the animated icon. - -2001-08-07 Not Zed <NotZed@Ximian.com> - - * evolution-activity-client.c (impl_destroy): Unref the listener - when done. - -2001-08-06 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-title-bar.c: Remove member `hbox' from `struct - _EShellFolderTitleBarPrivate'. - (make_icon_pixmap): Removed. - (rgb_from_gdk_color): Removed. - (endarken_style): Removed. - (set_style_cb): Removed. - (create_arrow_pixmap): Renamed from `create_icon_pixmap'. - (get_max_clipped_label_width): New helper function. - (size_allocate_icon): New helper function. - (size_allocate_button): New helper function. - (size_allocate_label): New helper function. - (add_icon_widget): New helper function. - (realize): Changed to use `add_icon_widget()'. - (size_allocate): New function, handler for the ::size_allocate - method. - (class_init): Install it. - (e_shell_folder_title_bar_construct): Changed so that the widget - get added to this widget instead of adding an hbox to it and - adding the widgets to the hbox. - (e_shell_folder_title_bar_set_icon): Changed to use - `add_icon_widget()'. - - * e-shell-folder-title-bar.h, e-shell-folder-title-bar.c: Changed - to derive from GtkHBox, not GtkEventBox. - -2001-08-06 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (tree_drag_motion): Turn on highlighting on - a row by row basis. - -2001-08-04 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-03 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (tree_drag_data_received): Some paths here - don't set handled properly so lets initialize it to FALSE. - (update_folder_with_unread_hash, etree_value_at): constified - folder_name here. - (init): Initialize priv->drag_path here to NULL. - -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. - -2001-08-03 Ettore Perazzoli <ettore@ximian.com> - - [Fix #6232, the thirty-four-splash-screens-at-startup bug.] - - * 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. - -2001-08-03 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (storage_sort_callback): Put the storage - named E_SUMMARY_STORAGE_NAME on top. - - * e-shell.c: New member `summary_storage' in `EShellPrivate'. - (init): Init to NULL. - (destroy): Unref if not NULL. - - * e-summary-storage.c: New. - * e-summary-storage.h: New. - - * e-storage-set-view.c: New #define `ROOT_NODE_NAME', defined to - be "/RootNode". - (e_storage_set_view_set_show_folders): Use that instead of "My - Evolution". - (e_storage_set_view_construct): Hide the root node. Use - `ROOT_NODE_NAME' instead of "My Evolution". - - * e-shortcuts-view.c (icon_callback): No bad special hack for "My - Evolution" here. - - * e-shell-view.c (update_window_icon): Remove kludgey - @is_my_evolution arg and stop doing special "My Evolution" things. - (update_folder_title_bar): Likewise. - (update_for_current_uri): Don't do special "My Evolution" things - here either. - (get_control_for_uri): Don't do the "My Evolution" hack here. - -2001-08-03 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (tree_drag_data_received): Call - `gtk_drag_finish()' here. - -2001-08-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c (progress_listener_servant_free): - Actually __fini the servant and deactivate the object too. - (component_info_free): Updated accordingly [i.e. don't do the - deactivation stuff here]. - -2001-08-03 Ettore Perazzoli <ettore@ximian.com> - - [Fixes #4663, startup crash.] - - * 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. - -2001-08-03 Ettore Perazzoli <ettore@ximian.com> - - [Fixes #3818, crash when going off-line.] - - * e-shell-offline-handler.c (component_info_free): Also call - `PortableServer_POA_deactivate_object()' on the progress listener - object so it gets deactivated. - -2001-08-02 Ettore Perazzoli <ettore@ximian.com> - - * 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. - -2001-08-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (switch_on_folder_tree_click): Set the - `set_folder_uri' to NULL when freeing it. - - * e-task-bar.c (e_task_bar_remove_task): Just destroy the widget. - No need to `gtk_container_remove()' it. - -2001-08-01 Jeffrey Stedfast <fejj@ximian.com> - - * e-shell-view-menu.c (command_new_folder): Do a NULL-check on - current_uri - socket is being closed? (as per the comments for the - NULL-check in e-shell-view.c:socket_destroy_cb). - -2001-07-31 Ettore Perazzoli <ettore@ximian.com> - - * evolution-activity-client.c: Removed debugging messages. - -2001-07-31 Not Zed <NotZed@Ximian.com> - - * evolution-activity-client.c (evolution_activity_client_update): - Also update have_pending_update before calling corba, as below. - -2001-07-30 Ettore Perazzoli <ettore@ximian.com> - - [This should fix #5110, shell crash when switching folders.] - - * evolution-activity-client.c (update_timeout_callback): Set the - `have_pending_update' flag before doing the CORBA call. - (evolution_activity_client_update): Set the timeout before doing - the CORBA call. - -2001-07-30 Jason Leach <jleach@ximian.com> - - * e-shortcuts-view.c (rename_group_cb): Remember the current group - so after renaming a group it doesn't flip to the next group. Bug - #3857. - - * e-shortcuts.c (e_shortcuts_rename_group): Comparing two - separately allocated strings, use strcmp() instead of !=. - -2001-07-30 Jason Leach <jleach@ximian.com> - - * e-shell-folder-creation-dialog.c (async_create_cb): If we can't - create a folder because it already exists, select that folder that - exists. Bug #1716. - -2001-07-30 Frederic Crozat <fcrozat@mandrakesoft.com> - - * main.c (main): call gconf_init if gtkhtml is compiled with gconf - support. - - * Makefile.am (INCLUDES): add $(GTKHTML_CFLAGS) since we might - need to link with GConf (if gtkhtml is compiled with GConf - support) - -2001-07-26 Ettore Perazzoli <ettore@ximian.com> - - * evolution-activity-client.c (impl_destroy): Remove the source - for the timeout *before* invoking the CORBA method, as we might - get the timeout callback while invoking the CORBA method, thus - screwing things up. - - * evolution-shell-component-client.c (destroy_listener_interface): - New helper function. - (dispatch_callback): Use it. - (impl_destroy): Call it when destroying the listener interface - instead of just freeing the servant. - -2001-07-26 Jason Leach <jleach@ximian.com> - - * e-shell-view-menu.c (update_offline_menu_item): Little UI thing: - capitalize the words Offline/Online for the File menu. - -2001-07-25 Jason Leach <jleach@ximian.com> - - * e-shell-folder-selection-dialog.c (folder_selected_cb): New - function. When a folder is selected set the OK button to be - sensitive (but before that have it desensitized). Bug #5483. - -2001-07-25 Jason Leach <jleach@ximian.com> - - * e-shortcuts-view.c (icon_callback): A warning fix from Jacob. - Bug #5057. - - * Makefile.am (INCLUDES): $(BONOBO_CONF_CFLAGS) was here twice, - took out one of them. - - * e-shell-view.c (socket_destroy_cb): Mem leak fix. Thanks to the - amazing Jacob B. Bug #5054. - -2001-07-25 Jason Leach <jleach@ximian.com> - - * e-task-widget.c: #include <libgnome/gnome-defs.h> and - <libgnome/gnome-i18n.h> instead of the full <libgnome/libgnome.h>, - as noted by a comment here. - -2001-07-24 Jason Leach <jleach@ximian.com> - - * e-storage-set-view.c (e_storage_set_view_construct): Add the - "/My Evolution" path to the path_to_etree_node hash so that - storage_set_view_set_current_folder() can select the My Evolution - node when it's the current one. Fixes #5114 and #3956. - -2001-07-23 Ettore Perazzoli <ettore@ximian.com> - - * main.c (development_warning): Only show the warning dialog - instead of using `gnome_dialog_run()' so it is not modal. Modal - would be nice, but unfortunately it works bad with Bonobo. Plus - Sawfish doesn't like to keep the modal dialog on top, so it gets - very confusing for users. - -2001-07-23 Ettore Perazzoli <ettore@ximian.com> - - * e-task-widget.c (e_task_widget_construct): Uhm, set the usize to - `1, -1' instead. - -2001-07-23 Ettore Perazzoli <ettore@ximian.com> - - * e-task-widget.c (e_task_widget_construct): Set the usize for the - contained hbox to 0x0. - -2001-07-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Get the manuals from the `evolution-guide' - dir as that's where they get installed. - -2001-07-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (storage_set_view_box_button_release_event_cb): - Don't handle button events whose button number is not 1. - -2001-07-22 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (remove_folder): Pass the folder type to - `evolution_shell_component_client_async_remove_folder()'. - (async_xfer_folder_step): Likewise with - `evolution_shell_component_client_async_xfer_folder()'. - - * evolution-shell-component-client.c - (evolution_shell_component_client_async_remove_folder): New arg - @type. Pass it to the `ShellComponent::removeFolder' CORBA - method. - (evolution_shell_component_client_async_xfer_folder): Likewise - with `::xferFolder'. - - * evolution-shell-component.c (impl_removeFolderAsync): Add @type - arg according to the IDL. - (impl_xferFolderAsync): Likewise. - - * evolution-shell-component.h: Add arg @type to - `EvolutionShellComponentRemoveFolderFn' and - EvolutionShellComponentXferFolderFn'. - - * Evolution-ShellComponent.idl: Add @type arg to - `::removeFolderAsync' and `::xferFolderAsync'. - -2001-07-21 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-creation-dialog.c (add_folder_types): Only put - the types that are user-creatable in the folder type option menu. - - * evolution-shell-component.c - (impl_ShellComponent__get_supported_types): Set the - `user_creatable' member too. - (evolution_shell_component_construct): Copy the `user_creatable' - member too. - - * evolution-shell-component.h: New member `user_creatable' in - `EvolutionShellComponentFolderType'. - - * e-component-registry.c (register_type): Pass the user_creatable - member of the CORBA FolderType struct. - - * e-folder-type-registry.c: New member `user_creatable' in struct - FolderType. - (e_folder_type_registry_register_type): New arg @user_creatable. - (register_folder_type): Likewise. - (folder_type_new): Likewise. - (e_folder_type_registry_type_is_user_creatable): New. - - * Evolution-ShellComponent.idl: New member `user_creatable' in - `struct FolderType'. - -2001-07-21 Ettore Perazzoli <ettore@ximian.com> - - * evolution-activity-client.c (impl_destroy): Use - `g_source_remove()' instead of `gtk_timeout_remove()' here, as we - are using `g_timeout_add()' and not `gtk_timeout_add()' to set up - the timeout callback. - (update_timeout_callback): Reset `have_pending_update' when - returning %TRUE. Set the timeout id to zero when returning - %FALSE. - -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. - -2001-07-20 Jason Leach <jleach@ximian.com> - - [This is a better way to have "Local Folders" be shown as the - local storage name without breaking current user's shortcuts.] - - * e-corba-storage.c (get_display_name): Implement this, but it's - only returning the real name now. Need to change the IDL soon to - let corba storages have separated display names. - - * e-shortcuts.c (e_shortcuts_add_default_group): Set these default - shortcut URI's back to evolution:/local/ - - * e-shell-view.h (DEFAULT_URI): Set this back to - "evolution:/local/Inbox" - - * e-storage-set-view.c (etree_value_at): Get the display name for - a storage rather than it's true name. - - * e-local-storage.c (impl_get_display_name): Implemented for the - local folder (to return a translated "Local Folders"). - - * e-storage.c (e_storage_get_display_name): New virtual function - for retrieving the display name. - -2001-07-19 Jason Leach <jleach@ximian.com> - - * e-local-storage.h: Make the local storage name "Local Folders" - instead of "local", looks better with "My Evolution", "VFolders", - and "Other Contacts". - - * e-shell-view.h: Put the #define DEFAULT_URI here instead of in - e-shell-view.c. - - * main.c: Remove the duplicated #define STARTUP_URI, actually make - use of the nice defines. - - * e-shell-folder-commands.c (e_shell_command_delete_folder): Use - the DEFAULT_URI here instead of a hard coded string. - - * e-shortcuts.c (e_shortcuts_add_default_group): Fix the URI's - here to use "Local Folder". - -2001-07-19 Jason Leach <jleach@ximian.com> - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct): - Line up the padding for the folder title bar labels when you have - the folder bar enabled or disabled (previously when disabled it - was padding ~8 pixels to the right while the other had 0). - - * e-shell-view.c (setup_widgets): Take out a 2 pixel padding - around the vbox containing the title bar, folder bar, message list - and mail display. Also remove 2 more extra pixels of padding on - the bottom. - -2001-07-16 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts.c - (override_shortcut_name_and_type_from_storage_set): Removed. - (load_shortcuts): Don't call it. - -2001-07-15 Ettore Perazzoli <ettore@ximian.com> - - [Fix #4387, Shortcut bar items don't keep the name after rename.] - - * e-shortcuts.c (update_shortcuts_by_path): Do not change the name - of the shortcut if the folder's name changes. - -2001-07-15 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (etree_icon_at): Return an icon for depths - greater than 2 as well. - -2001-07-15 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (e_shell_view_menu_setup): Connect the - "line_status_changed" signal with - `gtk_signal_connect_while_alive()' for the shell views, so we - don't crash if a view gets destroyed. - * e-shell-view.c (e_shell_view_construct): Likewise. - -2001-07-12 Jason Leach <jleach@ximian.com> - - * e-shell-view-menu.c (command_submit_bug): Because - bugzilla.ximian does have a mail gateway now, we can have - Help->Submit Bug Report open up bug-buddy. - -2001-07-12 Iain Holmes <iain@ximian.com> - - * importers/intelligent.c (create_gui): Remove the g_warnings as - they are an annoying red herring - -2001-07-12 Dan Winship <danw@ximian.com> - - * 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. - -2001-07-11 Iain Holmes <iain@ximian.com> - - * importers/intelligent.c (intelligent_importer_init): Sync the config - so that the Don't Ask Again gets saved. - -2001-07-11 Kjartan Maraas <kmaraas@gnome.org> - - * importers/intelligent.c: Mark a string for translation. - -2001-07-11 Jason Leach <jleach@ximian.com> - - * e-shell-view.c (e_shell_view_save_settings): Make sure to create - ~/evolution/config/ if it doesn't exist. (ShellView settings get - saved before component settings, so when the mailer comes around - to saving ETree stuff, this dir will be there). Fixes bug #4279. - -2001-07-10 Jason Leach <jleach@ximian.com> - - * e-setup.c (copy_default_stuff): Add a temporary block of code to - not use the $GNOME/share/evolution/default_user/shortcuts.xml for - users who might be upgrading, so they'll get the shell-generated - default set of shortcuts. See notes on #4394. - -2001-07-09 Larry Ewing <lewing@ximian.com> - - * e-shell-folder-commands.c (delete_dialog): convert the folder - name from utf8 before displaying them in the dialog and set the - dialog parent. - -2001-07-09 Federico Mena Quintero <federico@ximian.com> - - * e-shortcuts-view.c: Make the "Rename" item be a - GNOMEUIINFO_ITEM_NONE() since we don't have a stock icon; likewise - for the "Open in New Window". This gets rid of warnings from - gnome-libs. Use a better stock icon for the "Remove" command, and - add a stock icon to the "Open" command. - -2001-07-09 Jason Leach <jleach@ximian.com> - - * e-shell-view.c (updated_folder_cb): It's very possible that - get_storage_set_path_from_uri() returns NULL (5 of the 6 return - cases), so check that it's not NULL before trying to strcmp() it. - Fixes a startup crash. - -2001-07-06 Dan Winship <danw@ximian.com> - - * e-shortcuts.c (shortcut_item_update): Return a gboolean saying - whether or not the shortcut changed. Use strcmp rather than - pointer comparisons to determine this. - (update_shortcut_and_emit_signal): propagate the gboolean from - shortcut_item_update (and only emit the signal if it's TRUE). - (update_shortcuts_by_path): Only call make_dirty if something - changed. - (storage_set_new_folder_callback, - storage_set_updated_folder_callback): Don't call make_dirty: - update_shortcuts_by_path will have called it if necessary. - - * e-shell-view.c (updated_folder_cb): Don't call - update_for_current_uri if the folder that was updated isn't the - one being displayed. - -2001-07-06 Jason Leach <jleach@ximian.com> - - * e-shortcuts-view.c: Little UI tweak for right click menu, - pronouns shouldn't be capitalized ("This" in this case). - - [Misc fixes and part of #2228, There should be no dialog boxes - during startup.] - - * e-setup.c (e_setup): Check for searches.xml instead of - shortcuts.xml, since shortcuts.xml doesn't really need to exist - (and thus wouldn't be a necessary test whether ~/evolution was - invalid) because shell can generate shortcuts. - (copy_default_stuff): For first time users, only present a dialog - if a problem occurred. We've already clicked "Ok" on a dialog - about copying files. - (check_evolution_directory): Take out the "successfully installed" - dialog on updates too. - -2001-07-06 Ettore Perazzoli <ettore@ximian.com> - - [This should fix #3873, Bizzarre crash after deleting a few - folders.] - - * e-local-storage.c (remove_folder): Don't free the - `physical_path' on error, as it gets freed when freeing the - callback data. - -2001-07-06 Ettore Perazzoli <ettore@ximian.com> - - [Fix #3959, copying a folder over itself crashes Evolution.] - - * e-shell-folder-commands.c - (folder_selection_dialog_folder_selected_callback): Sanity checks: - don't allow copying a folder over itself, or moving it under one - of its descendants. In such cases, pop up an error dialog. - -2001-07-05 Iain Holmes <iain@ximian.com> - - * e-shortcuts-view.c (icon_callback): Special case the evolution:/My - Evolution uri. - -2001-07-05 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Removed handler for verb - "ChangeFolderProperties". - (command_folder_properties): Removed. - - * e-shell-folder-commands.c (e_shell_command_folder_properties): - Removed. - -2001-07-03 Ettore Perazzoli <ettore@ximian.com> - - * main.c (development_warning): Use both `VERSION' and - `SUB_VERSION' here. - (main): Likewise. - -2001-07-04 Gediminas Paulauskas <menesis@delfi.lt> - - * evolution-shell-component-utils.c (e_pixmaps_update): set - "pixname" value only if pixbuf was loaded successfully. Otherwise - component crashes if image is not found. Should be checked for - sanity in bonobo_ui_component_set_prop IMHO. - -2001-07-03 Aaron Weber <aaron@ximian.com> - - * main.c (development_warning): Revised to make it less scary. - -2001-07-03 Ettore Perazzoli <ettore@ximian.com> - - [Fix a problem with not being able to save a newly created - `shortcuts.xml' file, and another bug that caused the default - group to be added at every start-up, even there were groups - already.] - - * e-shortcuts.c (e_shortcuts_new): If loading the shortcuts fails, - set the file_name. - (load_shortcuts): Update `num_groups'. - -2001-07-03 Iain Holmes <iain@ximian.com> - - * importer/Makefile.am: Add bonobo-conf stuff - -2001-07-03 Ettore Perazzoli <ettore@ximian.com> - - [The following makes the shell able to create the `shortcuts.xml' - 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. - -2001-07-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c - (e_shell_offline_handler_put_components_offline): Ref/unref the - handler so the signal handlers can unref it safely. Also, if - `prepare_for_offline()' fails, don't say that there was an - internal error, as that's confusing. Just say we couldn't put the - components off-line. - - [Fix #3758, clicking on the online/offline button crashed - Evolution.] - - * Evolution-Offline.idl: Don't derive OfflineProgressListener from - Bonobo::Unknown. - -2001-07-03 Ettore Perazzoli <ettore@ximian.com> - - [Fixed #3643, Shell crash when component crashed] - - * e-shell-view.c (socket_destroy_cb): Fix Jason's broken fix for - #3205 that was causing #3643. It is not safe to strcmp() the - return value from `e_shell_view_get_current_uri()' as it might be - NULL already. - -2001-07-02 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (INCLUDES): Added $(BONOBO_CONF_CFLAGS). - (evolution_LDADD): Added $(BONOBO_CONF_LIBS). - -2001-07-02 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (popup_folder_menu): Don't assert that - there is a handler, so we don't crash if user clicks on a folder - whose type we cannot handle for some reason [such as an - uninstalled component]. - - * evolution-test-component.c (activity_client_cancel_callback): - New callback for the "cancel" signal on the - EvolutionActivityClient object. - (activity_client_show_details_callback): New callback for the - "show_details" signal. - (timeout_callback_1): Connect these two signal handlers. - - * e-activity-handler.c (task_widget_button_press_event_callback): - Ahem, right-click is button 3, not button 2. - (show_cancellation_popup): Actually pop up the menu. - (get_corba_null_value): New helper function to create a CORBA_any - null value. - (report_task_event): New helper function to report events to the - listener. - (task_widget_cancel_callback): Use it. Report "Cancel" instead of - "Cancelled". - (task_widget_show_details_callback): New, callback for the "Show - Details" right-click menu item. - - * evolution-activity-client.c: Updated to dispatch the "Cancel" - and "ShowDetails" events as "cancel" and "show_details" signals. - (class_init): Install the signals. - (listener_callback): Updated to update the signals corresponding - to the "ShowDetails" and "Cancel" events. - - * Evolution-Activity.idl: Changed the docs about the events sent - to the Bonobo::Listener. We now only have "ShowDetails" and - "Cancelled". - - * evolution-test-component.c (timeout_callback_1): Make the - activity cancellable so we can test the right-click cancel menu - too. - - * main.c (idle_cb): Actually exit if we cannot reach to the shell. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-uri-schema-registry.c (init): Unset the FLOATING flag on the - object. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c: Fixing a bug that could cause Evolution to crash - if a new ShellView was created and then destroyed, and then a new - folder would appear in the folder tree. Sigh, this code with the - delayed_selection is pretty messed up, but at least this will add - some consistency to it and make it safe. - (cleanup_delayed_selection): New function to disconnect the - "new_folder_cb" callback if the `delayed_selection' is not NULL, - and also free the `delayed_selection' itself. - (new_folder_cb): Use it. - (destroy): Call it here, otherwise we might [a] leak [b] cause a - crash as soon as a new folder appears in the folder tree, as - "new_folder" gets emitted and our connected signal handler has no - EShellView to handle the signal on. - (e_shell_view_display_uri): Call it here before re-setting the - `delayed_selection'. - - * e-shortcuts-view.c (open_shortcut_in_new_window_cb): Add - invocation for `open_shortcut_helper()' back in [it was gone, for - unknown reasons]. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (tree_drag_begin): If the node doesn't have - a component, just don't start the whole CORBA drag thing instead - of crashing with an assertion. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_new_shortcut): New, implementation - for the "New Shortcut" command create a new shortcut. - (goto_folder_dialog_cancelled_cb): Renamed from - `folder_selection_dialog_cancelled_callback'. - (goto_folder_dialog_folder_selected_cb): Renamed from - `folder_selection_dialog_cancelled_callback'. - - * e-shell-folder-selection-dialog.c: New member `allow_creation' - in `EShellFolderSelectionDialogPrivate'. - (e_shell_folder_selection_dialog_get_allow_creation): New; return - the value of `allow_creation'. - (e_shell_folder_selection_dialog_set_allow_creation): New; hide or - show the "New" button according to the @allow_creation arg. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c: Added "Rename Group" command to the - right-click group menu item. - (rename_group_cb): New callback for the "Rename Group" command. - - * e-shortcuts-view-model.c (shortcuts_rename_group_cb): New, - callback for the EShortcuts::rename_group signal. It renames the - group by removing it and creating a new one which is the same; - this sucks, but there is no other way with the current shortcut - bar widget. - (e_shortcuts_view_model_construct): Connect it. - - * e-shortcuts.c - (class_init): Install signal "rename_group". - (e_shortcuts_rename_group): New. - - * e-shortcuts.h: New signal "rename_group". - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts.c: Removed `title_to_group' hash from - `EShortcutsPrivate'. - (init): Don't initialize it anymore. - (unload_shortcuts): Don't remove the groups from the hash, and - don't destroy/realloc the hash. - (load_shortcuts): Don't check for duplicate group names. Don't - add the groups to the hash. - (destroy): Don't free the hash. - (e_shortcuts_get_shortcuts_in_group): Changed to get a @group_num - instead of a @group_title. - - * e-shortcuts-view-model.c (load_group_into_model): Updated to - pass the group number to `e_shortcuts_get_shortcuts_in_group()'. - Removed arg @group_title. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view.c: Added a "Rename" right-click command. - (rename_shortcut_cb): New function, implementation for the "Rename - command". - (rename_shortcut_dialog_cb): Callback for the gnome_request_dialog - function to ask the new name. - - * e-shortcuts.c (e_shortcuts_update_shortcut): Call `make_dirty()' - so we get saved too. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (activate_shortcut_cb): Receive an @in_new_window - arg as well. - - * e-shortcuts-view.c: Added a new "Open in New Window" right-click - menu item. Renamed "Activate" to "Open". - (class_init): Update the installation of the "activate_shortcut" - signal for the additional @in_new_window_arg. - (open_shortcut_helper): New helper function. - (open_shortcut_cb): Renamed from `open_shortcut_cb'. Changed to - use `open_shortcut_helper' - (open_shortcut_in_new_window_cb): New. - (item_selected): Pass %FALSE as the @in_new_window arg for - "activate_shortcut". - - * e-shortcuts.c (save_shortcuts): Set the "name" and "type" - properties for the <item> nodes too. - (load_shortcuts): Change `shortcut_group_title' to be an `xmlChar - (shortcut_set): New helper function. - (shortcut_update): New helper function. - (update_shortcut_and_emit_signal): New helper function. - (e_shortcuts_update_shortcut): Use it. - -2001-07-01 Ettore Perazzoli <ettore@ximian.com> - - This is a first shoot at making shortcuts renameable [#3719]; - unfinished. Also, it causes the shortcut bar to stop displaying - message unread count, but this is unfixable until we get rid of - the ::LocalStorage interface, which should hopefully happen soon. - - * e-shortcuts-view.c (icon_callback): Get the icon from the type - member of the shortcut item instead of going to the actual folder. - - * e-shell-view.c (updated_folder_cb): Don't update the shortcuts - here for now. - - * e-shortcuts-view.c (item_selected): Use - `e_shortcuts_get_shortcut()' instead of `e_shortcuts_get_uri()'. - (impl_shortcut_dropped): Pass a NULL @name and @type. - - * e-shortcuts-view-model.c (load_group_into_model): Updated to - match the new `e_shortcuts_get_shortcuts_in_group()' function that - doesn't allocate the list anymore and returns a list of - EShortcutItems instead of a list of strings. - (load_group_into_model): Likewise. - (load_all_shortcuts_into_model): Likewise. - (shortcuts_new_shortcut_cb): Get the URI and the name from the - EShortcutItem instead of retrieving them from the storage. - (shortcuts_update_shortcut_cb): Likewise. - (get_storage_set_path_from_uri): Removed [now unused]. - - * e-shortcuts.c: Define the shortcuts to be EShortcutItems instead - of just strings. - (shortcut_new): New helper function to allocate a Shortcut. - (shortcut_free): New helper function to free a Shortcut. - (shortcut_group_new): New helper function to allocate a - ShortcutGroup. - (shortcut_group_free): New helper function to free a - ShortcutGroup. - (load_shortcuts): Use `shortcut_group_new()' here. - (e_shortcuts_add_group): Same here. - (unload_shortcuts): Use `shortcut_group_free()' here. - (e_shortcuts_remove_group): Here too. - (load_shortcuts): Update to handle `Shortcut's instead of simple - `char *'s representing the URIs. - (save_shortcuts): Likewise. - (e_shortcuts_get_shortcuts_in_group): Likewise. The returned list - now doesn't belong to the caller anymore; the return type is now - const. - (removed_folder_cb): Removed. - (e_shortcuts_construct): Don't connect. - (e_shortcuts_get_group_titles): Dont' re-allocate the string. - (e_shortcuts_get_uri): Removed. - (e_shortcuts_get_shortcut): New. - (e_shortcuts_add_shortcut): new args @name, @type. - (e_shortcuts_update_shortcut_by_uri): Remove. - (e_shortcuts_remove_shortcut_by_uri): Remove. - (get_item): New helper function. - (e_shortcuts_get_shortcut): Use it. - (find_positions_by_uri): Removed. - - * e-shortcuts.h: New typedef EShortcutItem. - -2001-06-30 Federico Mena Quintero <federico@ximian.com> - - * e-storage-set-view.c (popup_folder_menu): Pass the event time to - gtk_menu_popup() so that we can release the button and have the - menu stay up. - -2001-06-29 Christopher James Lahey <clahey@ximian.com> - - * e-shortcuts-view-model.c (load_all_shortcuts_into_model): - Replaced GList with GSList here to fix a type mismatch. - -2001-06-29 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (INCLUDES): Changed $(datadir)/evolution/etspec to - "$(etspecdir)" here. - -2001-06-29 Christopher James Lahey <clahey@ximian.com> - - * e-shortcuts-view-model.c (load_group_into_model): Replaced GList - with GSList here to fix a type mismatch. - -2001-06-29 Ettore Perazzoli <ettore@ximian.com> - - * e-shortcuts-view-model.c (load_group_into_model): Updated to - match the fact that `e_shortcuts_in_group()' now returns a GSList - instead of a GList. - (load_all_shortcuts_into_model): Likewise for - `e_shortcuts_get_group_titles()'. - - * e-shortcuts.c: Change all `groups' and `views' from GLists to - GSLists in EShortcutsPrivate. - (e_shortcuts_get_group_titles): Return a GSList instead of a - GList. - (e_shortcuts_get_shortcuts_in_group): Likewise. - -2001-06-28 Ettore Perazzoli <ettore@ximian.com> - - [Fix #3756, `--debug' option not working anymore.] - - * main.c (main): Get the URI list from popt with `poptGetArgs' - instead of just using argv. Sigh, I am rusty. - -2001-06-28 Ettore Perazzoli <ettore@ximian.com> - - [Fix #3382, shortcut bar crashes when checking mail, and all the - different incarnations involving updates to an shortcut bar having - shortcuts to non-existent folders. Also, this fixes #1643, - shortcuts not visible until you enable an IMAP account, and #2436, - misbehavior of shortcut groups when IMAP or invalid shortcuts are - involved.] - - * e-shortcuts-view-model.c (load_group_into_model): Add the - shortcuts that point to folders that don't exist yet, too. - -2001-06-28 Dan Winship <danw@ximian.com> - - * e-storage.c (e_storage_new_folder): Call folder_changed_cb after - adding the new folder so that if it was added highlighted, its - parent will get its child_highlight set. - (e_storage_new_folder): Move the folder_changed_cb() call to avoid - a g_warning. - -2001-06-28 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_create_view): Renamed from - `e_shell_new_view'. - -2001-06-28 Ettore Perazzoli <ettore@ximian.com> - - * main.c (idle_cb): Re-implemented to get a GSList of URIs and - open them on a running shell [if any] or on a newly created shell. - If no args are provided [i.e. the list is NULL], it either - restores from settings [if any], or it just opens the Inbox. - (main): Set up the GSList of arguments and have it passed to the - idle callback. - - * e-shell.c (init): Ooops. Init `uri_schema_registry' to NULL as - well. - - * evolution-shell-component-client.c - (evolution_shell_component_client_handle_external_uri): New. - (corba_exception_to_result): Handle the `UnsupportedSchema' - exception too. - - * evolution-shell-component.h: New - EvolutionShellComponentResult value - `EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDSCHEMA'. - - * Evolution-ShellComponent.idl: New exception `UnsupportedSchema'. - (handleExternalURI): This can now raise `NotFound', - `UnsupportedSchema' and `InternalError'. - (createView): This can now raise `UnsupportedSchema' too. - - * e-shell.c (impl_Shell_handleURI): Finish implementation. - (class_init): Install it. - - * e-uri-schema-registry.c - (e_uri_schema_registry_get_handler_for_schema): Ooops. Rename - from `e_uri_schema_get_handler_for_schema'. Also, return NULL if - no handler is found. - -2001-06-27 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.c (register_component): Get the supported - schemas and register them into the schema registry. - - * e-shell.c: New member `uri_schema_registry' in `EShellPrivate'. - (e_shell_construct): Init. - (destroy): Unref. - (impl_Shell_createNewView): Raise exception `UnsupportedSchema' if - it's not an `evolution:' URI. Raise exception `NotFound' if - `e_shell_new_view()' returns NULL. - (impl_Shell_handleURI): New, implementation for the `::handleURI' - method. - (e_shell_get_uri_schema_registry): New. - - * Evolution-Shell.idl: New exceptions `UnsupportedSchema' and - `InvalidURI'. - (createNewView): Make this able to raise `NotFound', - `UnsupportedSchema' and `InvalidURI'. - (handleURI): New method. - - * e-uri-schema-registry.h: New. - * e-uri-schema-registry.c: New. - -2001-06-27 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component-client.c: Remove redundant declaration - for `free_ShellComponentListener_servant()'. - -2001-06-27 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (impl_handleExternalURI): - Implementation for the `::handleExternalURI' CORBA method; just - emit the `HANDLE_EXTERNAL_URI' signal. - (class_init): Install. - -2001-06-27 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (impl_setOwner): Renamed from - `impl_ShellComponent_set_owner'. - (impl_unsetOwner): Renamed from `impl_ShellComponent_unset_owner'. - (impl_debug): Renamed from `impl_ShellComponent_debug'. - (impl_createView): Renamed from `impl_ShellComponent_create_view'. - (impl_createFolderAsync): Renamed from - `impl_ShellComponent_async_create_folder'. - (impl_removeFolderAsync): Renamed from - `impl_ShellComponent_async_remove_folder'. - (impl_xferFolderAsync): Renamed from - `impl_ShellComponent_async_xfer_folder'. - (impl_populateFolderContextMenu): Renamed from - `impl_ShellComponent_populate_folder_context_menu'. - (class_init): Updated accordingly. - -2001-06-27 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c (factory_fn): Pass NULL as the - @external_uri_schemas arg to `evolution_shell_component_new'. - - * evolution-shell-component.c: New enum value - `HANDLE_EXTERNAL_URI'. New member `external_uri_schemas' in - `EvolutionShellComponentPrivate'. - (init): Initialize `external_uri_schemas' to NULL. - (destroy): Free it. - (destroy): - (class_init): Add the "handler_external_uri" signal. - (evolution_shell_component_new): Added precondition on - @folder_types. New arg @external_uri_schemas. - (evolution_shell_component_construct): Added preconditions. New - arg @external_uri_schemas. Initialize the `external_uri_schemas' - member in the EvolutionShellComponentPrivate part. - (impl_ShellComponent__get_external_uri_schemas): New, - implementation for reading the `external_uri_schemas' attribute. - (class_init): Install it in the EPV. - - * evolution-shell-component.h: New signal `handle_external_uri'. - - * Evolution-ShellComponent.idl: New attribute `extra_uri_schemas'. - (handleExternalURI): New method. - -2001-06-26 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (etree_value_at): Don't strdup "My - Evolution"! It was getting leaked every time the e-table wanted - to read the value this way. - -2001-06-26 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c: Removed member `BonoboListener' from - `AsyncCreateFolderCallbackData' and - `AsyncRemoveFolderCallbackData'. - (bonobo_interface_remove_folder_cb) : Return the value from - `create_folder()'. - (bonobo_interface_remove_folder_cb): Return the value from - `remove_folder()'. - (notify_bonobo_listener): Removed. - (component_async_create_folder_callback): Don't notify the - listener here. - (component_async_remove_folder_callback): Ditto. - (create_folder): Removed @listener arg. Not here either. Return - a valid E_STORAGE error code instead. Also, don't set the - `listener' field in `callback_data'. - (remove_folder): Likewise. - (bonobo_interface_create_folder_cb): Remove @listener arg. - (bonobo_interface_remove_folder_cb): Likewise. - -2001-06-25 jacob berkman <jacob@ximian.com> - - * e-shell-view.c: (set_folder_timeout): display a selected uri in - a timeout rather than right away, so the UI feels a bit more - responsive, and the tree is more navigable via keyboard - (switch_on_folder_tree_click): use the timeout rather than setting - the URI right away - (destroy): remove the timeout if it still exists - (update_for_current_uri): if there is a timeout set, don't update - (e_shell_view_display_uri): remove the timeout if it exists - -2001-06-25 Ettore Perazzoli <ettore@ximian.com> - - * main.c (no_views_left_cb): Call `e_shell_unregister_all()'. - - * e-shell.c (e_shell_unregister_all): New. - -2001-06-25 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (convert_gdk_drag_action_to_corba): Remove - trailing "\n" from g_warning. - (convert_corba_drag_action_to_gdk): Likewise. - (tree_drag_data_received): Likewise. - (new_folder_cb): Likewise. - - * e-shortcuts-view-model.c (load_group_into_model): Remove - trailing "\n" from g_warning. - -2001-06-25 Ettore Perazzoli <ettore@ximian.com> - - * main.c (no_views_left_cb): Unref the shell here. - - * e-storage-set.c (destroy): Use - `name_to_named_storage_foreach_destroy()' as the function argument - to `g_hash_table_foreach()', not `named_storage_destroy()', which - is just plainly wrong. - - * e-shell.c (setup_corba_storages): Don't ref the - corba_storage_registry here. - (destroy): Don't unref here. - (setup_activity_interface): Don't ref the activity_handler either. - (destroy): Don't unref it here. - - * e-component-registry.c (e_component_registry_construct): Don't - ref the shell here. - (destroy): Don't unref it here. - -2001-06-25 Ettore Perazzoli <ettore@ximian.com> - - * main.c (no_views_left_cb): Don't call `e_shell_quit()' anymore. - - * e-shell-view-menu.c (command_quit): Call - `e_shell_destroy_all_views()' instead of `e_shell_quit()', which - does not exist anymore. - - * e-shell.c (e_shell_quit): Removed. - (e_shell_destroy_all_views): New. - -2001-06-24 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: s/\.oafinfo/.oaf/g. - - * GNOME_Evolution_TestComponent.oafinfo: Renamed to - `GNOME_Evolution_TestComponent.oaf'. - -2001-06-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c: New member `iid' in EShellPrivate. - (init): Init to NULL. - (e_shell_construct): Set it to the value of the @iid argument. - (destroy): Unregister that IID. - (register_shell): Removed. - (e_shell_construct): Just do all the work here. The function was - too simple to really be useful as separate. - - * e-shell.c, e-shell.h: Changed to derive from BonoboXObject - instead of deriving from BonoboObject and doing all the nasty - CORBA work by hand. - -2001-06-24 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c (activity_client_clicked_callback): - New callback for the "clicked" signal on the EActivityClient. - Just spit out a warning now, for testing purposes. - (timeout_callback_1): Connect it. - - * evolution-activity-client.c (listener_callback): Emit the - "clicked" signal if we get the "Clicked" event from the Bonobo - listener. - -2001-06-24 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c: #include <gtk/gtklabel.h>. - (delete_dialog): Constify @folder_name properly. - (delete_cb): Change the first arg to be an EStorageSet as expected - for EStorageSetResultCallbacks. - (rename_dialog): #if 0. - -2001-06-24 Ettore Perazzoli <ettore@ximian.com> - - * e-task-widget.h, e-task-widget.c: Changed to derive from - GtkEventBox. - - * e-activity-handler.c (task_widget_button_press_event_callback): - New callback for the "button_press_event" signal on the - ETaskWidgets. Dispatch the "Clicked" event through the Bonobo - listener. - (task_widget_new_from_activity_info): Connect here. - -2001-06-24 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c: Changed to use the - `EvolutionActivityClient' object. New global static variable - `activity_client'. - (create_animated_icon): Removed. - (create_icon_from_pixbuf): Removed. - (task_bar_event_listener_callback): Removed. - (timeout_callback_1): Create an EvolutionActivityClient object and - put a pointer to it into `activity_client'. Lower the timeout - delay from 1000 msecs to 100 msecs, so we can stress-test the - speed control code in EvolutionActivityClient. - (timeout_callback_2): Use the EvolutionActivityClient. Increment - progress by 1, instead of 10. - (timeout_callback_3): Destroy the EvolutionActivityClient. - - * Makefile.am (libeshell_la_SOURCES): Add - `evolution-activity-client.c'. - (eshellinclude_HEADERS): Add `evolution-activity-client.h'. - - * evolution-activity-client.c: New. - * evolution-activity-client.h: New. - - * e-activity-handler.c: Updated all instances of `ActivityID' with - `ActivityId'. - - * Evolution-Activity.idl: Renamed `ActivityID' to `ActivityID'. - Added value `DIALOG_ACTION_ERROR' to `DialogAction'. - -2001-06-24 Ettore Perazzoli <ettore@ximian.com> - - * evolution-test-component.c: Remove the `activity_interface' - global. - (timeout_callback_3): Get the ::Activity interface using - `evolution_shell_client_get_activity_interface()' on - `parent_shell' instead. - (timeout_callback_2): Likewise. - (timeout_callback_2): Likewise. - (timeout_callback_1): Likewise. - (owner_set_callback): Don't query interface here. Check if the - shell has an ::Activity interface by using - `evolution_shell_client_get_activity_interface()' here as well. - - * evolution-shell-client.c: New member `activity_interface' in - `EvolutionShellClientPrivate'. - (destroy): unref/release it. - (evolution_shell_client_construct): Initialize it by querying the - shell CORBA Object for the ::Activity interface. - (evolution_shell_client_get_activity_interface): New. - -2001-06-23 Jason Leach <jleach@ximian.com> - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Make the folder tree - have a similar expanded state as the shell's folder tree. - - * e-local-storage.c (remove_folder): New function that does the - meat of actual deletion stuff. - (remove_folder_directory): A helper function that remove_folder() - uses. - (component_async_remove_folder_callback): A new callback to do the - removing stuff from shell (if there weren't errors from the - component). - (impl_async_remove_folder): Implemented this. - - * evolution-shell-component-client.c - (evolution_shell_component_client_async_remove_folder): - Implemented this. - - * e-shell-view.c (e_shell_view_remove_control_for_uri): New - function. - -2001-06-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (e_shell_view_set_current_shortcuts_group_num): - Moved at the bottom, as it's public API. Also add preconditions. - (e_shell_view_get_current_shortcuts_group_num): Likewise. - -2001-06-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c: Get rid of some `#if 0'ed code. - -2001-06-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (corba_interface_set_message_cb): Replaced with - an empty stub, as the "set_message" method is going to be - deprecated. - (corba_interface_unset_message_cb): Likewise for the - "unset_message" method. - -2001-06-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c (e_shell_construct): Set `splash' to NULL when - @show_splash is false, so the compiler doesn't complain. - - * e-shell-view-menu.c: #include <gtk/gtkmain.h>. - - * e-setup.c: #include <unistd.h>. - - * importer/intelligent.c: #include <gtk/gtkhbox.h> and - <gtk/gtkdrawingarea.h>. - -2001-06-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c: New member `menu_hint_label' in - `EShellViewPrivate'. - (init): Init to NULL. - (ui_engine_add_hint_callback): Set the label in the menu hint - label, show the menu hint label, hide the task bar. - (ui_engine_remove_hint_callback): New callback for the - "remove_hint" signal on the BonoboUIEngine; hide the hint label, - show the task bar. - (setup_statusbar_hints): Connect it. - (setup_menu_hint_label): New helper function to create the menu - hint label. - (create_status_bar): Call it. - -2001-06-23 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_quit): Add a `gtk_main_quit()' at - the end here. - -2001-06-23 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Add rules to build the test component and an - `install-test-component' target to install it. - - * GNOME_Evolution_TestComponent.oafinfo: New OAF file for the test - component. - - * evolution-test-component.c: New component, currently to test the - activity interfaces. We will be able use it for testing more - things in the future. - - * e-shell.c: New member `activity_handler' in `EShellViewPrivate'. - (init): Init here. - (class_init): Unref. - (setup_activity_interface): New helper function to create an - `EActivityHandler' object and aggregate it to the `EShell'. - (e_shell_construct): Call here. - (e_shell_new_view): Attach the task bar of the newly created view - to the activity handler by using - `e_activity_handler_attach_task_bar()'. - - * e-shell-view.c: Removed old progress bar code. New members - `status_bar' and `task_bar' in EShellViewPrivagte; removed member - `progress_bar'. - (init): Initialize the new fields; remove initialization for - `progress_bar'. - (impl_destroy): Handle the new fields here too. - (setup_task_bar): New helper function to set up an ETaskBar. - (create_status_bar): New helper function to create the status bar - with an ETaskBar in it. - (ui_engine_add_hint_callback): New callback for the "add_int" - BonoboUIEngine signal. - (setup_statusbar_hints): New helper function to set up the menu - hints for the status bar; connect `ui_engine_add_hint_callback()' - here. - (setup_widgets): Call `create_status_bar()' and - `setup_statusbar_hints()'; pack the status bar in a vbox instead - of using the Bonobo status bar stuff, which is kinda broken. - (e_shell_view_get_task_bar): New. - (get_type_for_folder): No use to get the EFolderTypeRegistry here. - - * Evolution.idl: #include <Evolution-Activity.idl> and - <Evolution-Icon.idl>. - - * Evolution-Activity.idl: New. - - * Evolution-Icon.idl: New. - - * e-activity-handler.c: New. - * e-activity-handler.h: New. - - * e-task-bar.c: New. - * e-task-bar.h: New. - - * e-task-widget.c: New. - * e-task-widget.h: New. - -2001-06-21 Jason Leach <jleach@ximian.com> - - * evolution-storage.c (evolution_storage_deregister_on_shell): New - function, uses the StorageRegistry::removeStoragebyName corba call - to properly make the storage vanish from the shell. - -2001-06-18 Dan Winship <danw@ximian.com> - - * Makefile.am (evolution_LDADD): Remove DB3_LDADD - - * e-shell-view-menu.c: Fix the help URLs - -2001-06-13 Not Zed <NotZed@Ximian.com> - - * e-shell-view.c (switch_on_folder_tree_click): Check priv->uri - isn't null before strcmp'ing it here too. - -2001-06-11 Dan Winship <danw@ximian.com> - - * e-shell-view.c (destroy): Don't destroy the - offline_toggle_pixmap: the offline_toggle 0wnz it. - (update_for_current_uri): Check priv->uri isn't NULL before - strcmp()ing it. - -2001-06-11 Jason Leach <jleach@ximian.com> - - * evolution-storage.c (impl_Storage_async_create_folder): Fixed - folder creation on IMAP storages (by notifying bonobo listener - with the result). - - * evolution-storage-listener.c: Some cleaning. - -2001-06-08 Iain Holmes <iain@ximian.com> - - * e-setup.c (check_dir_recur): Don't copy the old Executive-Summary dir. - (e_setup): If there is an Executive-Summary dir in ~/evolution/local - ask it the user wants to remove it. - (e_shell_rm_dir): Function to completely delete a directory. - -2001-06-07 Iain Holmes <iain@ximian.com> - - * evolution-storage.c (impl_Storage_async_create_folder): Removed - debug spew. - - * e-shell-importer.c (start_import): Removed spew. - - * e-shell-view.c (update_window_icon): Take a gboolean to say if - the folder is my evolution. Do special cased things for My Evolution. - (update_folder_title_bar): Same. - (update_for_current_uri): Find out if the uri is the my evolution one - and act accordingly. - (get_control_for_uri): Handle the toplevel My Evolution. - - * e-storage-set-view.c (etree_icon_at): Get an icon for the toplevel - My Evolution. - (etree_value_at): Default is to return "My Evolution" - (e_storage_set_view_construct): Set the toplevel to be called "My - Evolution" and show it. - (e_storage_set_view_set_show_folders): Same. - -2001-06-08 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar): - Allow a NULL @shell_view arg. - -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. - -2001-06-06 Jon Trowbridge <trow@ximian.com> - - * evolution-storage.c (impl_Storage_async_create_folder): Changed - purely informational debug spew from a g_warning to a g_message. - - * e-shell-importer.c (show_import_wizard): The import wizard - defined in import.glade only has three pages... yet we were trying - to manipulate "page4" as the finish page, with the expected bad - results. My guess is that the .glade file got changed, but the - code didn't get updated. - (start_import): We were trying to bonobo_object_unref - (BONOBO_OBJECT (icd->client)), which is fine except for the - fact that icd->client is just a GtkObject, not a BonoboObject. - Changed to a gtk_object_unref. - (start_import): Changed a purely informational bit of debug - spew from a g_warning to a g_message. - -2001-06-06 Iain Holmes <iain@ximian.com> - - * importers/intelligent.c (create_gui): Make a few boxes, and make - the whole dialog horizontal. Add better buttons, and a "Don't ask - again button" (And the world rejoices). - Fixed the notebook so it displayed the blank page on startup. - (intelligent_importer_init): Handle the "Don't ask me again" button. - -2001-06-06 Jason Leach <jleach@ximian.com> - - (Fix bug #3205: Component crash causes folder switch even when not - needed) - - * e-shell-view.c (socket_destroy_cb): Only flip around the - ShellView to different folders when we're currently viewing the - URI that's being closed/crashed. - -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. - -2001-06-05 Jason Leach <jleach@ximian.com> - - * e-shell-view-menu.c: Plug in all the folder tree right click - menu verbs so bonobo-warnings aren't emitted (even though the - respective implementation functions are currently unimplemented). - (command_delete_folder): New function, see above. - (command_rename_folder): Ditto. - (command_folder_properties): Ditto. - - * e-shell-folder-commands.c (e_shell_command_delete_folder): New - function, currently unimplemented. - -2001-06-04 Jason Leach <jleach@ximian.com> - - (Fixing bug #1299: Shell saves shortcuts when display name - changes) - - * e-shortcuts.c (class_init): New signal: "update_shortcut". - - * e-shortcuts-view-model.c (e_shortcuts_view_model_construct): - Connect thew new signal here. - - * e-shortcuts-view-model.c (shortcuts_update_shortcut_cb): New - function, uses the new e_shortcut_model_update_item(). - - * e-shell-view.c (corba_interface_set_folder_bar_label): Fix a - warning here. - -2001-06-03 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (evolution_LDADD): Move `$(DB3_LDADD)' before - libeutil. - -2001-06-01 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (evolution_LDADD): Add `$(DB3_LDADD)'. - -2001-05-30 Jason Leach <jleach@ximian.com> - - * e-shell-view.c (e_shell_view_set_current_shortcuts_group_num): - New function (probably should just be static). - (e_shell_view_load_settings): Load the current shortcut group here - using the above new function. - (e_shell_view_save_settings): Save current shortcut group in here. - -2001-05-30 Jason Leach <jleach@ximian.com> - - * e-shell-folder-title-bar.c: New 'folder_bar_label' member for - EShellFolderTitleBar, it's for information that's shown to the - left of the icon like the dates in the calendar (or, potentially - total and unread numbers for mailer). - (e_shell_folder_title_bar_set_folder_bar_label): New function, - lets others set the title bar extra label. - - * Evolution-ShellView.idl: New method 'setFolderBarLabel' for our - exposed ShellView interface. - - * evolution-shell-view.h: New signal "set_folder_bar_label" for - EvolutionShellView. - - * evolution-shell-view.c (impl_ShellView_set_message): Emit the - new signal here. - - * e-shell-view.c (setup_corba_interface): Connect the signal here. - - * e-shell-view.c (corba_interface_set_folder_bar_label): New - function, callback for the above signals, does the actual extra - label setting for the folder title bar. - - * e-shell-folder-commands.c (e_shell_command_add_to_shortcut_bar): - Fix a warning here. - -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. - -2001-05-29 Federico Mena Quintero <federico@ximian.com> - - * e-shell-view.c (setup_progress_bar): Added missing castt. - (setup_offline_toggle): Likewise. - -2001-05-29 JP Rosevear <jpr@ximian.com> - - * e-shell-view.c (setup_progress_bar): unref the control when - finished with it - (setup_offline_toggle): ditto - (destroy): destroy offline and progress widgets - -2001-05-28 Dan Winship <danw@ximian.com> - - * e-storage-set-view.c (new_storage_cb): Call - e_tree_node_set_expanded on the storage_set_view, not the - storage_set (which is not an ETree). - -2001-05-27 Dan Winship <danw@ximian.com> - - * evolution-shell-component-utils.c: New file. - (e_pixmaps_update): Moved here from e-util to break e-util bonobo - dependency. - - * e-shell-view-menu.c: #include - "evolution-shell-component-utils.h" instead of "e-gui-utils.h" - - * Makefile.am (libeshell_la_SOURCES, eshellinclude_HEADERS): Add - evolution-shell-component-utils.[ch] - -2001-05-26 Dan Winship <danw@ximian.com> - - * e-storage-set-view.c (destroy): Don't free the hash keys in - priv->path_to_etree_node, because they're owned by the ETree now. - (e_storage_set_view_set_show_folders): Likewise. - -2001-05-25 Peter Williams <peterw@ximian.com> - - * Makefile.am: Change libeshell from a noinst_LIBRARIES to - a lib_LTLIBRARIES. Install its headers in - $includedir/evolution/shell. - - * evolution-storage.c (safe_corba_string): New, copy of e_safe_corba_string - in libeutil. This way libeshell doesn't have a missing symbol when programs - that don't have libeutil link to it. - (evolution_storage_register): s,e_safe_corba_string,safe_corba_string,g. - -2001-05-25 jacob berkman <jacob@ximian.com> - - * e-shell-view.c (setup_widgets): place the shortcut bar in a - frame - -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. - -2001-05-23 Chris Toshok <toshok@ximian.com> - - * evolution-shell-component.h - (EVOLUTION_SHELL_COMPONENT_POPUP_PLACEHOLDER): track change to the - path to the ComponentPlaceholder. - -2001-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c: New static members `offline_pixmap', - `offline_mask', `online_pixmap', `online_mask'. Add members - `tooltips', `offline_toggle' and `offline_toggle_pixmap' to - `EShellViewPrivate'. - (init): Init to NULL. Also init the `progress_bar' member to NULL - as well, as we were not initializing it. - (destroy): Unref the tooltips. - (load_images): New static function to load the offline and online - icons into the pixmaps/masks. - (class_init): Call it. - (update_offline_toggle_status): New. - (shell_line_status_changed_cb): Call it. - (offline_toggle_clicked_cb): New, callback for the "clicked" - signal on the offline/online button. - (setup_offline_button): New function to set up the - `offline_button'. - (setup_widgets): Call it. - (setup_progress_bar): Changed to get an `EShellView' pointer, - instead of an `EShellViewPriv' pointer. - (setup_widgets): Updated accordingly. - -2001-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Define the verb for "CopyFolder" as well. - (command_copy_folder): Implementation for the "CopyFolder" verb. - - * e-shell-folder-commands.c: New struct `FolderCommandData'. - (folder_command_data_new): New function to allocate and initialize - it. - (folder_command_data_free): New function to free it. - (e_shell_command_move_folder): Pass a pointer to a filled-in - `FolderCommandData' struct to the callbacks instead of just - passing a pointer to the shell object. - (move_folder_selected_callback): Removed. - (move_folder_cancelled_callback): Removed. - (folder_selection_dialog_folder_selected_callback): New generic - callback for the folder selection dialog. - (folder_selection_dialog_cancelled_callback): New generic callback - for the folder selection dialog. - (connect_folder_selection_dialog_signals): New function to connect - these two handlers to a folder selection dialog. - (xfer_result_callback): New callback for the async xfer function. - (get_folder_name): New utility function. - (e_shell_command_copy_folder): Implement. - -2001-05-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-commands.c - (e_shell_command_create_new_folder): Changed to use - `e_shell_view_get_current_path()' to get the default path, instead - of computing it itself. - (move_folder_cancelled_callback) (move_folder_selected_callback): - New, callbacks for the "cancelled" and "folder_selected" signals - on the folder selection dialog for the "Move folder" operation. - (e_shell_command_move_folder): Implemented. - - * e-shell-view-menu.c (command_move_folder): New, implementation - for the "MoveFolder" verb. - - * e-shell-view.c (e_shell_view_get_current_path): New. - -2001-05-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.h: Rename @default_path to - @default_uri. - - * e-shell.c (impl_Shell_selectUserFolder): Pass a NULL @caption to - `e_shell_folder_selection_dialog_new()'. - - * e-shell-importer.c (import_druid_finish): Add a caption to the - folder selection dialog. Constify local variable `foldername', - and avoid g_strdupping/g_freeing it, as it's useless. - - * e-shell-view-menu.c (command_goto_folder): Add a caption to - the folder selection dialog. - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_new): New arg @caption. - (e_shell_folder_selection_dialog_construct): Likewise. Also - cleaned up a bit. - -2001-05-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Removed "NewView" verb. Added - `folder_verbs', with "OpenFolderInNewWindow" in it. - (e_shell_view_menu_setup): Set up the `folder_verbs' too. - (command_new_view): Renamed to - `command_open_folder_in_new_window'. - - * e-shell-folder-commands.c - (e_shell_command_open_folder_in_other_window): Implement. - -2001-05-19 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_create_folder): Call - `e_shell_command_create_new_folder()' implemented in - `e-shell-folder-commands.c'. - - * e-shell-folder-commands.c: New. - * e-shell-folder-commands.h: New. - -2001-05-17 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c - (populate_folder_context_menu_with_common_items): Removed. - (popup_folder_menu): Instead of creating the component and the - folder popup definition here, just do `bonobo_window_add_popup()' - and assume that "/popups/FolderPopup" is defined in the toplevel - window's UI xml file. - -2001-05-16 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component-client.c: Moved some functions around - to avoid the warning about the static - `free_ShellComponentListener_servant()' function being used prior - to declaration. - -2001-05-15 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c (command_run_bugbuddy): `#if 0'ed out. - (command_submit_bug): New. Just fire up the web browser with - `http://bugzilla.ximian.com' in it. - (menu_do_misc): Associate the latter instead of the former to the - "HelpSubmitBug" verb. - -2001-05-15 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Add an `HelpFAQ' verb. - -2001-05-14 jacob berkman <jacob@ximian.com> - - * e-folder-tree.c (remove_folder): set the subfolder's parent to - NULL so the subfolder list doesn't change whilst we are using it - (folder_remove_subfolder): this function didn't used to work at - all - -2001-05-12 Chris Toshok <toshok@ximian.com> - - * e-storage-set-view.c (tree_drag_data_received): implement the - CORBA side of dragging. - (convert_gdk_drag_action_set_to_corba): rename - convert_gdk_drag_action_to_corba to this. - (convert_corba_drag_action_set_to_gdk): rename - convert_corba_drag_action_to_gdk to this. - (convert_gdk_drag_action_to_corba): new function that doesn't - build a bitmask, useful for the Action types, instead of - ActionSet. - (convert_corba_drag_action_to_gdk): same. - -2001-05-11 Chris Toshok <toshok@ximian.com> - - * e-storage-set-view.c - (populate_folder_context_menu_with_common_items): add RemoveFolder - menu item and verb. - (folder_context_menu_remove_cb): new function, call - e_storage_set_async_remove_folder. - (remove_cb): callack for e_storage_set_async_remove_folder. - - * evolution-shell-component-client.c - (evolution_shell_component_client_populate_folder_context_menu): - fix prototype to reflect Component -> Container. - - * evolution-shell-component-client.h: same. - -2001-05-11 Chris Toshok <toshok@ximian.com> - - * evolution-shell-component.h - (EVOLUTION_SHELL_COMPONENT_POPUP_PLACEHOLDER): add this define for - the xml path to use when adding menu items to the folder popup. - - * e-storage-set-view.c - (populate_folder_context_menu_with_common_items): add (#ifdef - DEBUG_XML) a menu item to dump the bonobo xml. - (popup_folder_menu): pass the BonoboUIContainer to the - populate_folder_context_menu CORBA call, instead of the component. - Also, reorder things a bit so the component doesn't get an error - when setting xml the first time. - -2001-05-11 Iain Holmes <iain@ximian.com> - - * e-shell-folder-selection-dialog.c (dbl_click_cb): Use gnome_dialog_close - instead of gtk_widget_destroy. - (impl_clicked): Use gnome_dialog_close instead of gtk_widget_destroy. - - * e-shell-view-menu.c: #include e-shell-importer.h instead of importer/importer.h - - * importer/Makefile.am: Remove importer.c and importer.h. - - * importer/importer.[ch]: Moved these to e-shell-importer.[ch] - - * e-shell-importer.c (start_import): Take a folderpath to import into. - (importer_druid_finish): Show the EShellFolderSelectionDialog to get a folder to - import into. - -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. - -2001-05-11 Dan Winship <danw@ximian.com> - - * e-local-storage.c (load_folder): Lots of people seem to have - "broken" local storage hierarchies. So ignore errors (like the old - code did) and just print a warning. - -2001-05-11 Chris Toshok <toshok@ximian.com> - - * evolution-storage-set-view-factory.c - (evolution_storage_set_view_factory_new_view): the only - problematic area - pass NULL for now in as the BonoboUIContainer. - how do we pass this container to the control? - - * e-storage-set-view.c (folder_context_menu_activate): un-#if 0 - this function. - (populate_folder_context_menu_with_common_items): build our popup - using the new xml bonobo stuffs. - (popup_folder_menu): convert to using the new xml bonobo stuffs. - (right_click): only do the popup menu if we have a - BonoboUIContainer. - (e_storage_set_view_new): add BonoboUIContainer* arg. - (e_storage_set_view_construct): same. - - * e-storage-set-view.h: add BonoboUIContainer* args to - e_storage_set_view_new and e_storage_set_view_construct. - - * e-shell-folder-creation-dialog.c (add_storage_set_view): pass - NULL for the BonoboUIContainer, since we shouldn't (?) have a - popup in this dialog. - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): pass NULL for the - BonoboUIContainer, since we shouldn't (?) have a popup in this - dialog. - - * e-storage-set.h: add BonoboUIContainer* arg to - e_storage_set_new_view. - - * e-storage-set.c (e_storage_set_new_view): add arg, and track - change to e_storage_set_view_new. - - * e-shell-view.h: add prototype for - e_shell_view_get_bonobo_ui_container. - - * e-shell-view.c (setup_storage_set_subwindow): track change to - e_storage_set_view_new. - (e_shell_view_construct): the BonoboUIContainer is now part of our - private structure. - (e_shell_view_get_bonobo_ui_container): new function. - -2001-05-09 Christopher James Lahey <clahey@ximian.com> - - * importer/intelligent.c (create_gui): Made this function static. - Removed the unused variable placeholder. - (intelligent_importer_init): Cast from gpointer to int here - properly using GPOINTER_TO_INT. - -2001-05-09 Dan Winship <danw@ximian.com> - - * e-local-storage.c: Remove get_physical_path and load_folders, - and replace the calls to them with calls to the e_path_* functions - they inspired. - -2001-05-08 Dan Winship <danw@ximian.com> - - * glade/e-active-connection-dialog.glade: Rename "port" to "type" - here too. - -2001-05-08 Iain Holmes <iain@ximian.com> - - * importer/evolution-importer-client.c (evolution_importer_client_load_file): - Actually use the duplicated value. - - * e-local-storage.c (create_folder_directory): Assign - physical_path_return before trying to create the directory. - (create_folder): Return the physical_path even if the directory - creation failed. Free the physical path. - - * importer/evolution-importer-client.[ch]: Make EvolutionImporterClient - from a GtkObject instead of a BonoboObject. - - * importer/importer.c: Use gtk_object_unref instead of - bonobo_object_unref on the clients. - - * importer/intelligent.c: New prettier dialog, and multiple importers - done in the same window. - -2001-05-07 Dan Winship <danw@ximian.com> - - * e-shell-offline-handler.c (update_dialog_clist_hash_foreach): - Fix a free of non-malloc'ed memory introduced by my last change. - -2001-05-07 Jon Trowbridge <trow@ximian.com> - - * e-shell-view-menu.c (update_offline_menu_item): Changed some - references to /commands/WorkOffline to /commands/ToggleOffline. - -2001-05-04 Chris Toshok <toshok@ximian.com> - - * evolution-shell-component-dnd.c - (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion): - take a physical_uri and pass it to the callback. - (impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleDrop): - same. - - * evolution-shell-component-dnd.h: add physical_uri args to the - destination folder HandleMotion and HandleDrop types. - - * Evolution-ShellComponentDnd.idl: add "in string physical_uri" to - DestinationFolder::handleMotion and DestinationFolder::handleDrop. - - * e-storage-set-view.c (tree_drag_motion): pass the physical uri - of the folder to handleMotion. - -2001-05-04 Dan Winship <danw@ximian.com> - - * e-shell-offline-handler.c (update_dialog_clist_hash_foreach, - (duplicate_connection_list): Use type instead of portNumber. - (e_shell_offline_handler_put_components_offline): Fix the logic of - when to show the connection dialog here. (Show it when there *are* - connections, not when there aren't.) - - * Evolution-Offline.idl: Have a "string type" instead of "short - portNumber" in Connection. - -2001-05-04 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c - (e_shell_offline_handler_put_components_offline): Only display the - dialog if there are active connections. [It was displaying it all - the time before just for testing purposes.] - -2001-05-04 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage.c (evolution_storage_new_folder): Ooops. The - `corba_folder' is needed after returning; don't free it. - -2001-05-04 Ettore Perazzoli <ettore@ximian.com> - - * evolution-storage.c (evolution_storage_new_folder): Free the - `corba_folder' when not needed anymore. - - * e-local-storage.c (create_folder_directory): Free the parent - path, and don't allocate it when we don't need it. - - * evolution-shell-component-client.c (dispatch_callback): Free the - listener servant too. - (impl_destroy): Release the listener object and free the servant - if it exists. - -2001-05-04 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-creation-dialog.c (dialog_clicked_cb): Don't - strdup `path' before copying it into the `dialog_data'. - -2001-05-04 Ettore Perazzoli <ettore@ximian.com> - - * importer/intelligent.c (get_intelligent_importers): Free the - `info_list' returned by `oaf_query()', thus plugging a leak. - -2001-05-04 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-utils.c (get_icon_path): Don't use - `gnome_pixmap_file()', which is broken as it looks in the current - working directory first. Instead, if the path is not absolute, - just look up the file in the `EVOLUTION_IMAGES' directory. - -2001-05-03 Ettore Perazzoli <ettore@ximian.com> - - * glade/e-active-connection-dialog.c: Change the GtkCList mode to - GTK_BROWSE_SINGLE. - -2001-05-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c - (impl_OfflineProgressListener_updateProgress): Update the GtkCList - before emitting the "offline_procedure_finished" signal. In fact, - we might be destroyed from within the signal handlers and then - things would get messy. - - * evolution-shell-component-client.c - (evolution_shell_component_client_get_offline_interface): - "IDL:GNOME/Evolution/Offline:1.0", not - "IDL:GNOME/Evolution/ShellComponent/Offline:1.0". Sigh. - - * e-shell-view-menu.c: Update to match the rename of the - `WorkOffline' menu item in the `File' menu into `ToggleOffline'. - Now the `WorkOffline' verb actually puts the shell offline, while - `WorkOnline' puts in online, so we don't use one single verb to - toggle the online/offline status. - (command_work_offline): Only go offline. - (command_work_online): New. Make the shell go online. - (update_offline_menu_item): New. - (shell_line_status_changed_cb): New, callback for the - "line_status_changed" signal on the associated EShell. - -2001-05-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c: New member `dialog_gui' in - `EShellOfflineHandlerPrivate'. - (impl_destroy): Unref here if not NULL. - (init): Init to NULL. - (update_dialog_clist_hash_foreach): New. - (update_dialog_clist): New. - (dialog_clicked_cb): New, callback for the "clicked" signal on the - active connection dialog. - (pop_up_confirmation_dialog): Implemented. - (init): Init `procedure_in_progress' to `FALSE' instead of `TRUE'. - (cancel_offline): Emit `offline_procedure_finished'. - (impl_OfflineProgressListener_updateProgress): Call - `update_dialog_clist()'. - - * glade/e-active-connection-dialog.glade: New. - - * e-shell-view-menu.c: Update to use the `WorkOffline' verb - instead of the `WorkOffLine' one. - (command_work_offline): New, temporary implementation for the - "WorkOffline" verb. - - * e-shell-view.c (shell_line_status_changed_cb): New, callback for - the shell's `line_status_changed' signal. - (e_shell_view_construct): Connect it. - - * e-shell.c: New member `line_status' in `EShellPrivate'. - (init): Init to `E_SHELL_LINE_STATUS_ONLINE'. - (class_init): Set up the `line_status_changed' signal. - (e_shell_is_offline): Removed. - (e_shell_get_line_status): New. - (e_shell_go_online): Set the `line_status' member to - `E_SHELL_LINE_STATUS_ONLINE' and emit `line_status_changed'. - (offline_procedure_started_cb): New, signal for the - `offline_procedure_started' signal in EShellOfflineHandler. - (offline_procedure_finished_cb): New, signal for the - `offline_procedure_finished' signal in EShellOfflineHandler. - (e_shell_go_offline): Implemented. - - * e-shell.h: New enum `EShellLineStatus'. New signal - `line_status_changed'. - -2001-05-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-offline-handler.c (e_shell_offline_handler_construct): - Unset the `GTK_FLOATING' flag. - -2001-05-02 Ettore Perazzoli <ettore@ximian.com> - - * e-shell.c: New members `is_offline' and `offline_handler' in - `EShellPrivate'. - (init): Init `is_offline' to %FALSE, `offline_handler' to %NULL. - (e_shell_is_offline): New. - (e_shell_go_online): New. - (e_shell_go_offline): New. - - * e-shell-offline-handler.c: New. - * e-shell-offline-handler.h: New. - - * evolution-shell-component-client.c: New member - `offline_interface' in `EvolutionShellComponentClientPrivate'. - (init): Init to `CORBA_OBJECT_NIL'. - (impl_destroy): Unref/release if not NIL. - (evolution_shell_component_client_get_offline_interface): New. - - * Evolution-Offline.idl: New. - -2001-05-02 Chris Toshok <toshok@ximian.com> - - * evolution-shell-component-dnd.c: new file. - - * evolution-shell-component-dnd.h: new file. - - * Makefile.am (libeshell_a_SOURCES): add - evolution-shell-component-dnd.[ch]. - -2001-04-25 Dan Winship <danw@ximian.com> - - * Makefile.am (evolution_LDADD): Remove $(UNICODE_LIBS). - - * main.c (main): Remove call to unicode_init. - -2001-04-25 JP Rosevear <jpr@ximian.com> - - * evolution-shell-client.c (destroy): free the private member - -2001-04-25 Kjartan Maraas <kmaraas@gnome.org> - - * e-component-register.c, e-corba-storage.c, e-folder-tree.c, - e-folder-tree.h, e-folder.c, e-local-folder.c, e-shell.c, - e-shortcuts-view-model.c, e-shortcuts.c, e-splash.c, - e-storage-set-view.c, e-storage-set.c, evolution-local-storage.c, - evolution-shell-component-client.c, evolution-shell-component.c, - evolution-storage.[ch], importer/evolution-importer-client.[ch], - importer/evolution-importer-listener.[ch], - importer/evolution-importer.[ch], - importer/evolution-intelligent-importer.[ch], importer/intelligent.c: - #include <glib.h> and move corresponding local includes to the top. - -2001-04-23 Jeffrey Stedfast <fejj@ximian.com> - - * e-splash.c: #include gnome-window-icon.h - -2001-04-21 Duncan Mak <duncan@ximian.com> - - * e-splash.c (e_splash_construct): Set window_icon to - "evolution.png" in the splash screen. - -2001-04-18 Ettore Perazzoli <ettore@ximian.com> - - * e-local-folder.c: #include <unistd.h>. - -2001-04-17 Christopher James Lahey <clahey@ximian.com> - - * e-shell-view.c (storage_set_view_box_event_cb): Proxy events to - the tooltip object properly. - -2001-04-15 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c - (folder_creation_dialog_result_cb): Set the current folder only if - @result is `E_SHELL_FOLDER_CREATION_DIALOG_RESULT_SUCCESS'. - - * e-shell-folder-creation-dialog.c (folder_name_entry_changed_cb): - Changed to get a pointer to the DialogData instead of just a - pointer to the dialog itself. Don't set the OK button sensitive - if there is no folder selected in the storage set view. - (setup_folder_name_entry): Don't connect - `folder_name_entry_changed_cb' anymore. - (e_shell_show_folder_creation_dialog): Connect here instead. - (storage_set_view_folder_selected_cb): New callback for the - "folder_selected" signal in the EStorageSetView. Make the OK - button sensitive if the entry is non-empty. - (e_shell_show_folder_creation_dialog): Connect it. - -2001-04-14 Michael Meeks <michael@ximian.com> - - * Makefile.am (dist-hook): remove built sources from dist. - -2001-04-13 Ettore Perazzoli <ettore@ximian.com> - - * e-splash.c (impl_destroy): Call the parent class' ::destroy - method. - -2001-04-12 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (etree_has_get_node_by_id, - etree_get_node_by_id): Implemented these. - -2001-04-11 Dan Winship <danw@ximian.com> - - * e-shell-view.c (switch_on_folder_tree_click): Don't get into an - infinite loop when clicking on an IMAP storage. Might not be the - best fix? - -2001-04-08 Chris Toshok <toshok@ximian.com> - - * e-storage-set-view.c (tree_drag_motion): fix type. we want the - destination interface, not source. - -2001-04-04 Kjartan Maraas <kmaraas@gnome.org> - - * e-local-folder.c: Fix headers. - * e-shell-view.c: Same here. - * e-shortcuts-view.c: Same here. - * e-shortcuts.c: Same here. - * e-storage-set-view.c: Same here. - -2001-04-04 Gediminas Paulauskas <menesis@delfi.lt> - - * importer/importer.c (create_html): copied newer and fixed function - from mail/mail-config-druid.c. - (html_new, put_html): removed. - (show_import_wizard): use create_html instead of html_new/put_html pair. - * importer/importer.glade: a try to set logo. removed source generation - options. - -2001-04-03 Dan Winship <danw@ximian.com> - - * main.c: - * evolution-shell-component-client.c: Don't declare debug_log as - extern in evolution-shell-component-client.c, because that's part - of libeshell and so gets linked into the other components. - Instead, declare it there and extern it from main.c. - (Noticed by Peter Williams) - -2001-04-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (get_control_for_uri): Change `! folder_type' - with `folder_type == NULL'. - - * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): If - the toplevel node URI or the toplevel node type are an empty - string, use NULL Instead. - -2001-04-03 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c: Fix bug #1878 "folder sometimes fails to - display?". Thanks to Dan for finding out an explanation for the - problem. - (e_shell_view_display_uri): Don't set `priv->uri' here. - (show_existing_view): Set it here instead, and before showing the - control. - (create_new_view_for_uri): And here, likewise. - -2001-04-03 Christopher James Lahey <clahey@ximian.com> - - * e-shell-folder-selection-dialog.c (dbl_click_cb): Made double - clicking not crash here. - -2001-04-02 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c (e_setup): If we have a local folder named "Trash" of - type "mail", rename it to "Trash.old" so that the new - vfolder-based trash type gets installed. - -2001-04-03 Gediminas Paulauskas <menesis@delfi.lt> - - * importer/evolution-importer-client.c (evolution_importer_client_load_file): - fix Iain's fix which did nothing. closes #1914. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * evolution-storage-set-view.c: Include <gal/util/e-util.h> here. - -2001-04-01 Gediminas Paulauskas <menesis@delfi.lt> - - * e-shell-view-menu.c: set up menu icons for new folder, import and work - offline. - -2001-03-30 Iain Holmes <iain@ximian.com> - - * importer/importer.c (start_import): If the importer can't be started, then - don't continue. - -2001-03-29 Iain Holmes <iain@ximian.com> - - * importer/evolution-importer-client.c (evolution_importer_client_load_file): - Duplicate the folderpath, or set it to \0 - -2001-03-30 Christopher James Lahey <clahey@ximian.com> - - * e-shell-folder-selection-dialog.c (dbl_click_cb): Since this is - an ETree now, the signature of the double click callback has - changed. - -2001-03-30 Dan Winship <danw@ximian.com> - - * Evolution-ShellComponent.idl: add a "debug" method to tell a - component to output debugging messages to a given file. - - * main.c (main): Add a "--debug filename" argument, to direct - debugging output for all components to a file. Redirect the - shell's stdout/stderr to that file if this argument is used. - - * evolution-shell-component-client.c - (evolution_shell_component_client_set_owner): If debug_log is set, - call the component's debug method as well. - - * evolution-shell-component.c (impl_ShellComponent_debug): - redirect stdout/stderr to the named file and emit a "debug" - signal. - -2001-03-29 Kjartan Maraas <kmaraas@gnome.org> - - * e-component-registry.c: Remove/replace unneeded includes and - move around stuff so that system headers are included first. - * e-corba-storage.c: Replace #include <bonobo.h> - * e-folder-tree.c: Shuffle. - * e-folder.c: Remove #include <gtk/gtkobject.h> - * e-local-storage.c: Replace #include <gnome.h> and <bonobo.h> - * e-setup.c: Replace #include <glib.h> and <gnome.h> - * e-shell-folder-creation-dialog.c: Replace #include <gnome.h> - * e-shell-folder-title-bar.c: Replace <gnome.h> - * e-shell-utils.c: Same here. - * e-shell-view-menu.c: Same here (and <bonobo.h>) - * e-shell-view.c: Replace <gnome.h> and <bonobo.h> - * e-shell.c: Replace <gnome.h> - * e-shell.h: Shuffle. - * e-shortcuts-view-model.c: Replace <gnome.h> - * e-shortcuts-view.c: Remove #include <gnome.h> - * e-shortcuts.c: Move <string.h> up. - * e-splash.c: Replace <gnome.h> - * e-storage-set-view.c: Replace <gnome.h> - * e-storage-set.c: Shuffle - * e-storage.c: Replace <gnome.h> - * evolution-local-storage.c: Same here - * evolution-local-storage.h: And here. - * evolution-session.c: Same here too. - * evolution-session.h: Replace <bonobo.h> - * evolution-shell-client.c: Here too. - * evolution-shell-component-client.c: Shuffle. - * evolution-shell-component.c: Replace <bonobo.h> - * evolution-shell-view.c: Remove #include <bonobo.h> - * evolution-shell-view.h: Replace <gnome.h> - * evolution-storage-listener.c: Replace <gnome.h> and <bonobo.h> - * evolution-storage-listener.h: Replace <gnome.h> - * evolution-storage-set-view-listener.c: Replace <gnome.h> and <bonobo.h> - * evolution-storage-set-view.c: Remove <gnome.h> - * evolution-storage.c: Replace <bonobo.h> - * main.c: Replace <gnome.h> and <bonobo.h> - * importer/importer.c: Replace <gnome.h> - * importer/intelligent.c: Replace <gnome.h>. Add prototype for - intelligent_importer_init(). - * importer/intelligent.h: Added this file. - -2001-03-28 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (folder_sort_callback): Use - `g_strcasecmp()' instead of `strcasecmp()'. - -2001-03-28 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (storage_sort_callback, - folder_sort_callback): Use strcasecmp instead of strcmp. - -2001-03-28 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (async_xfer_folder_callback): - s/new_folder/destination_folder/ where appropriate, idiot. - -2001-03-28 Jon Trowbridge <trow@gnu.org> - - * e-shell-view-menu.c: In a fit of egomania, added myself to the - authors array. - -2001-03-26 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component-client.c - (shell_component_result_from_corba_exception): Implement. - -2001-03-26 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component-client.c - (evolution_shell_component_client_async_xfer_folder): Handle CORBA - exception. - (evolution_shell_component_client_async_create_folder): Likewise. - - * e-local-storage.c (create_folder_directory): Create the - `subfolders' directory if it doesn't exist. - - * e-storage-set-view.c (tree_drag_data_received): Build the - correct target path by appending the basename from the source - path. - - * evolution-shell-component.c - (impl_ShellComponent_async_xfer_folder): Enabled again. - (class_init): Install it. - - * e-local-folder.c (METADATA_FILE_NAME_LEN): Removed #define. - (METADATA_FILE_NAME): Removed #define. - (save_metadata): Use the public - `E_LOCAL_FOLDER_METADATA_FILE_NAME' value instead. - (construct_loading_metadata): Likewise. - - * e-local-folder.h (E_LOCAL_FOLDER_METADATA_FILE_NAME_LEN): New - #define. - (E_LOCAL_FOLDER_METADATA_FILE_NAME): New #define. - - * e-local-storage.c (remove_folder_directory): New helper - function. - (async_xfer_folder_step): New. - (async_xfer_complete): New. - (async_xfer_folder_callback): New. - (impl_async_xfer_folder): Implement. - - * e-storage.h: Added value `E_STORAGE_NOTEMPTY' to - `EStorageResult'. - - * evolution-shell-component-client.c - (evolution_shell_component_clinet_async_xfer_folder): New. - -2001-03-23 Ettore Perazzoli <ettore@ximian.com> - - * e-local-storage.c (impl_async_xfer_folder): New, implementation - for `EStorage::async_xfer_folder'. - (class_init): Install it. - (check_valid_name): Removed. Conflicts shouldn't be handled this - way, and hardcoding the names is *bad*. - (create_folder_directory): New helper function. - (real_do_folder_create): Removed. - (create_folder): New. Do things here using - `create_folder_directory'. - (impl_async_create_folder): Use `create_folder'. - (notify_bonobo_listener): Renamed from `notify_listener'. Moved - on top for clarity. - -2001-03-22 Iain Holmes <iain@ximian.com> - - * importer/evolution-importer-listener.c (evolution_importer_listener_new): - Remove the usage of the corba_object thing. - (evolution_importer_listener_construct): Ditto. - - * e-local-storage.c (real_do_folder_create): Revert the e_mkdir_hier call - to two seperate calls to mkdir. If the directory exists, just call the - callback and notify the listener. - - * importer/GNOME_Evolution_Importer.idl: Add a folderpath paramater to the - loadFile method. - - * importer/evolution-importer.[ch]: Update for the new folderpath param. - - * importer/evolution-importer-client.[ch]: Ditto. - - * importer/importer.c: Ditto. - -2001-03-22 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (motion_notify_event): Unref the target - list we create on the fly. - -2001-03-22 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-creation-dialog.c (async_create_cb): Changed - signature to match `EStorageSetResultCallback' instead of - `EStorageResultCallback', to match the changes in the async_create - API call. - -2001-03-22 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c: Removed some unused static variables. - (set_evolution_path_selection): Removed unused variable - `evolution_path'. - - * e-storage-set.c (e_storage_set_async_xfer_folder): Get an - `EStorageSetResultCallback', instead of an - `EStorageResultCallback'. - (e_storage_set_async_remove_folder): Likewise. - (e_storage_set_async_create_folder): Likewise. - (storage_callback_converter): New callback to convert from the - EStorageResultCallback to the EStorageSetResultCallback. - - * e-storage-set.h: New typedef `EStorageSetResultCallback'. - - * Evolution-ShellComponent.idl: Renamed `copyFolderAsync' into - `xferFolderAsync' for consistency. - - * e-storage-set-view.c (tree_drag_data_received): Updated to use - `e_storage_set_async_xfer_folder()' instead of - `e_storage_set_async_move_folder()' or - `e_storage_set_async_copy_folder()'. - (folder_xfer_callback): New, callback for the xfer function. - - * e-storage-set.c (e_storage_set_async_move_folder): Removed. - (e_storage_set_async_copy_folder): Removed. - (e_storage_set_async_xfer_folder): New. - -2001-03-22 Ettore Perazzoli <ettore@ximian.com> - - * e-storage.c (e_storage_async_xfer_folder): New. - (impl_async_xfer_folder): New, default implementation for the - `async_xfer_folder' method. - (class_init): Install it. - - * e-storage.h: New virtual method `async_xfer_folder'. - - * evolution-storage.c (impl_Storage_async_xfer_folder): New. Just - a stub for now. - (evolution_storage_get_epv): Install it as the implementation for - the `asyncXferFolder' method. - - * Evolution-Storage.idl: New method `asyncXferFolder'. - -2001-03-22 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c: Removed `source_drag_types', - `num_source_drag_types', `destination_drag_types', - `num_destination_drag_types', `target_list'. - (E_SHORTCUT_TARGET_TYPE): Renamed from "E_SHORTCUT_TYPE". - (EVOLUTION_PATH_TARGET_TYPE): Define to "_EVOLUTION_PRIVATE_PATH". - (find_matching_target_for_drag_context): If any of the targets - matches it, return it. - (handle_evolution_path_drag_motion): New. - (tree_drag_motion): Use it if we are matching an - `EVOLUTION_PATH_TARGET_TYPE' target. - (e_storage_set_view_construct): Call `e_tree_drag_dest_set()' on - the view so that we become a possible DnD target. - (get_folder_at_node): Don't die if you don't find a folder there. - (create_target_entries_from_dnd_type_list): Make the first entry - an `EVOLUTION_PATH_TARGET_TYPE', the second one an - `E_SHORTCUT_TYPE', and the following ones the ones defined by the - folder. - (set_evolution_path_selection): New function to set the private - Evolution path selection. - (set_e_shortcut_selection): Assert @selection_data to be not NULL. - (class_init): Don't set up the `target_list' anymore. - (storage_sort_callback): Actually compare the two nodes, not the - first node with itself. - - * e-storage-set.c (e_storage_set_async_copy_folder): New. - (e_storage_set_async_move_folder): New. - -2001-03-22 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (etree_get_save_id): Changed get_save_id to - just return a strdup of the path. - (new_storage_cb, new_folder_cb, insert_folders, insert_storages): - Call e_tree_memory_sort_node. - -2001-03-21 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (etree_get_save_id): If we have no - associated StorageSet yet, just return "root". [This can happen - when this function is called at construction time.] - -2001-03-21 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-ShellComponentDnd.idl: StudlyCapsify struct members to - match the new IDL naming standards. - * e-storage-set-view.c: Updated accordingly. - -2001-03-21 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (tree_drag_data_get): Get the target type - from the atom, and pass it through the `SourceFolder::getData' - invocation. Also, signal an error by passing `-1' as the length - value to `gtk_selection_data_set()'. - (find_matching_target_for_drag_context): New helper function. - (tree_drag_motion): Use it to figure out a suitable type for the - drop action, and pass it to the `DestinationFolder::handleMotion' - method. - - * e-storage-set-view.c (get_component_at_node): New helper - function. - (table_drag_begin): Use it. - (convert_corba_drag_action_to_gdk): New helper function. - (table_drag_motion): Use the `DestinationFolder::handleMotion' - method to handle the "drag_motion" signal. - - * Evolution-ShellComponentDnd.idl: Change the signature for the - `handleMotion' method so that it only has @suggested_action - parameter. - -2001-03-20 JP Rosevear <jpr@ximian.com> - - * importer/Makefile.am: make sure intelligent.h gets disted - -2001-03-19 Christopher James Lahey <clahey@ximian.com> - - * Merged e-tree-rework-branch: - - 2001-03-19 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (etree_get_save_id): Made "root" detection - deal properly with removed nodes. - - 2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-shell-view.c (e_shell_view_save_settings): Added some unused - code to implement saving of the expanded state. - - * e-storage-set-view.c: Added has_save_id and get_save_id methods. - - 2001-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c (ETREE_SPEC): Set draw-grid here to false. - - 2001-03-09 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c, e-storage-set-view.h: Chaned this to use - ETree instead of ETable. - -2001-03-19 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component-client.c: New members - `dnd_source_folder_interface' and - `dnd_destination_folder_interface' in - `EvolutionShellCompoentClientPrivate'. - (init): Initialize. - (impl_destroy): Clean up. - (evolution_shell_component_client_get_dnd_source_interface): New. - (evolution_shell_component_client_get_dnd_destination_interface): - New. - -2001-03-19 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (init): Ooops. Initialize the - `drag_corba_source_context' member. correctly. - (table_drag_begin): Don't crash if queryInterface returns - `CORBA_OBJECT_NIL'. - (table_drag_end): Don't do anything if the - `drag_corba_source_interface' is `CORBA_OBJECT_NIL'. - -2001-03-19 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c New members `drag_data', - `drag_corba_source_interface' and `drag_corba_source_context in - `EStorageSetViewPrivate'. - (init): Init the new members. - (destroy): Clean up the new members. - (table_drag_begin): Query for the - `EvolutionShellComponentDnd::SourceFolder' interface on the - handler for the folder we are dragging from, and initialize all - the CORBA context information for the drag, after invoking - `::beginDrag()' on it. - (convert_gdk_drag_action_to_corba): New helper function. - (table_drag_data_get): Get the data using - `::SourceFolder::getData'. - (table_drag_end): New, override for the "ETable::table_drag_end" - signal. Invoke `::endDrag' on the SourceFolder interface, - unref/release the interface, and clean up the source context. - (table_drag_data_delete): New, override for the - "ETable::table_drag_data_delete" signal. - (class_init): Install `table_drag_end' and - `table_drag_data_delete'. - - * Evolution-ShellComponentDnd.idl: Derive `::DestinationFolder' - and `SourceFolder' from `Bonobo::Unknown'. - -2001-03-19 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (table_drag_data_get): Don't get the - selection through - `evolution_shell_component_client_get_dnd_selection()'. - - * evolution-shell-component.c - (impl_ShellComponent_getDndSelection): Removed. - (class_init): Don't install. - - * evolution-shell-component-client.c - (evolution_shell_component_client_get_dnd_selection): Removed. - - * Evolution-ShellComponentDnd.idl: New file with the DnD stuff. - - * Evolution-ShellComponent.idl: Removed the dnd stuff. - -2001-03-15 Pablo Saratxaga <pablo@mandrakesoft.com> - - * main.c: fixed a no-c-format tag - -2001-03-14 Ettore Perazzoli <ettore@ximian.com> - - * importer/Makefile.am (INCLUDES): Remove `-g Wall' and friends. - Use `$(EXTRA_GNOME_CFLAGS)' instead of `$(GNOME_INCLUDEDIR)'. Add - `-I$(top_builddir)/shell'. - -2001-03-13 Iain Holmes <iain@ximian.com> - - * importer/intelligent.c (start_importer): Add a "Don't ask me again" - checkbox and don't ask about an importer if the box was ticked. - -2001-03-12 Iain Holmes <iain@ximian.com> - - * Evolution-Storage.idl: Add a FolderResult structure. - - * e-local-storage.c (struct _AsyncCreateFolderCallbackData): Add a - Bonobo_Listener. - (notify_listener): Function to...notify the listener. - (component_async_create_folder_callback): Use the notify_listener - function. - (real_do_folder_create): New prototype. Replace all returns with - a call to notify_listener. Make the directory with a call to - e_mkdir_hier instead of multiple calls to mkdir. Only emit a fail - on a bad error, not on EEXIST. - (bonobo_interface_create_folder_cb): Namespace create_folder_cb to match - the others. - - e-shell.c: Run the intelligent importer. - - evolution-storage.c (impl_Storage_async_create_folder): Just emit the signal, - not the callback. - (e_marshal_NONE__POINTER_POINTER_POINTER_POINTER_POINTER): Lovely signal - marshaller. - (class_init): Change the signal definition for the create_folder signal. - - importer/GNOME_Evolution_Importer.idl: Add an IntelligentImporter inteface. - - importer/Makefile.am: Add the evolution-intelligent-importer.c, intelligent.c - and evolution-intelligent-importer.h to the files. - - importer/evolution-importer-listener.[ch]: Convert to BonoboXObject. - - importer/evolution-importer.[ch]: BonoboXObjectification. - - importer/evolution-intelligent-importer.[ch]: BonoboXObject for the - GNOME:Evolution:IntelligentImporter interface. - - importer/intelligent.c: Code for running the intelligent importers. - -2001-03-08 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (get_folder_at_row): New helper function. - (create_target_list_for_row): Use it. - (table_drag_data_get): Get the selection from the shell component - using `evolution_shell_component_client_get_dnd_selection()'. - (set_e_shortcut_selection): Turn a `g_return_if_fail()' into a - `g_assert()'. - - * evolution-shell-component.c: New member `get_dnd_selection_fn' - in `EvolutionShellComponentPrivate'. - (evolution_shell_component_construct): New arg - @get_dnd_selection_fn. - (evolution_shell_component_new): Likewise. - (impl_ShellComponent_getDndSelection): New, implementation for - `ShellComponent::getDndSelection'. - (class_init): Install it. - - * evolution-shell-component-client.c - (evolution_shell_component_client_get_dnd_selection): New, wrapper - for `ShellComponent::getDndSelection'. - - * evolution-shell-component.h: Renamed - `EvolutionShellComponentPopulateFolderContextMenu' into - `EvolutionShellComponentPopulateFolderContextMenuFn'. New - function pointer typedef `EvolutionShellComponentGetDndSelectionFn'. - - * Evolution-ShellComponent.idl: New method - `ShellComponent::getDndSelection'. - - * e-storage-set-view.c (create_target_entries_from_dnd_type_list): - Always add an `E_SHORTCUT_TYPE' type at least. - (create_target_list_for_row): Don't return NULL if the list of - exported DND types is NULL. Don't create an unused target list. - Actually return the created target list. - (table_drag_data_get): If the @info is zero, set the e-shortcut - selection. - (set_uri_list_selection): Temporarily disabled. - -2001-03-07 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.c (register_type): New args - @num_exported_dnd_types, @exported_dnd_types, - @num_accepted_dnd_types, @accepted_dnd_types. Pass them to - `e_folder_type_registry_register_type()'. - (register_component): Updated accordingly, getting the values from - the CORBA `GNOME::Evolution::FolderType' struct. - - * e-folder-type-registry.c: New members `accepted_dnd_types' and - `exported_dnd_types' in `struct _FolderType'. - (e_folder_type_registry_register_type): New args - @num_accepted_dnd_types, @accepted_dnd_types, - @num_exported_dnd_types, @exported_dnd_types. - (register_folder_type): Likewise. - (folder_type_new): Likewise. Use them to initialize - `accepted_dnd_types' and `exported_dnd_types' in the newly created - `FolderType' struct. - (e_folder_type_registry_get_accepted_dnd_types_for_type): New. - (e_folder_type_registry_get_exported_dnd_types_for_type): New. - - * e-storage-set-view.c: New #defined constant `DRAG_RESISTANCE'. - New members `drag_x', `drag_y', `drag_column', `drag_row' in - `EStorageSetViewPrivate'. - (init): Initialize them. - (button_press_event): New function, overriding for the - `::button_press_event' method. - (motion_notify_event): New function, overriding for the - `::motion_notify_event' method. - (class_init): Install them. - - * evolution-shell-component.c - (duplicate_null_terminated_string_array): New helper function. - (evolution_shell_component_construct): Copy the values for - `accepted_dnd_types' and `exported_dnd_types' from the original - folder type list using it. - (destroy): Free the `exported_dnd_types' and `accepted_dnd_types' - members too. - (fill_corba_sequence_from_null_terminated_string_array): New - helper function. - (impl_ShellComponent__get_supported_types): Also set the - `exported_dnd_types' and `accepted_dnd_types' values in the folder - type elements we return. - - * evolution-shell-component.h: Added `accepted_dnd_types' and - `exported_dnd_types' members to `EvolutionShellComponentFolderType'. - - * Evolution-ShellComponent.idl: Renamed `accepted_dnd_mime_types' - to `accepted_dnd_types' and `exported_dnd_mime_types' to - `exported_dnd_types'. These are not necessarily MIME types. - -2001-03-05 Christopher James Lahey <clahey@ximian.com> - - * e-storage-set-view.c: Override cursor_activated signal instead - of cursor_changed signal. - -2001-02-27 Dan Winship <danw@ximian.com> - - * main.c (development_warning): Update this again. - -2001-02-26 Ettore Perazzoli <ettore@ximian.com> - - * Evolution-Shell.idl: Rename `FolderTypeList' to - `FolderTypeNameList' as it was confusing. - - * Evolution-ShellComponent.idl: New members - `accepted_dnd_mime_types' and `exported_dnd_mime_types' in `struct - FolderType'. - -2001-02-24 Jeffrey Stedfast <fejj@ximian.com> - - * e-storage.c (folder_changed_cb): Don't free a const pointer. - -2001-02-23 Iain Holmes <iain@ximian.com> - - * e-local-storage.c (construct): Connect to the create-folder signal. - (impl_async_create_folder): Move this into the real_do_folder_create - function. - (real_do_folder_create): Function that creates the folder. - (create_folder_cb): Creates the folder form a callback. - -2001-02-21 Michael Meeks <michael@ximian.com> - - * importer/importer.c: add include. - (show_import_wizard): update signature to that of a verb. - - * evolution-shell-component.c (corba_class_init): move into - (class_init): here & upd. - (evolution_shell_component_construct): upd. - (create_servant): kill. - (E_MAKE_TYPE) -> E_MAKE_X_TYPE. - -2001-02-20 Dan Winship <danw@ximian.com> - - * e-folder.c (_EFolderPrivate): split "highlighted" into - self_highlight and child_highligh. - (e_folder_get_highlighted): Return TRUE if either self_highlight - is true or any child is highlighted. - (e_folder_set_child_highlight): New function to tell the folder - about a child highlight change. - - * e-storage.c (folder_changed_cb): Update child highlights - correctly on folders so that folders will be highlighted whenever - their children are. - -2001-02-17 Christopher James Lahey <clahey@ximian.com> - - * e-shell-view-menu.c (file_verbs): Cast this fucntion pointer. - - * e-storage-set-view.c (ETABLE_SPEC): Turn on horizontal scrolling - here. - - * evolution-shell-component.c - (impl_ShellComponent_async_copy_folder): Commented out this unused - function. - - * evolution-storage.c (storage_gtk_to_corba_result): Removed an - unused variable here. - - * importer/importer.c: Include gal/widets/e-gui-utils.h. - -2001-02-14 Dan Winship <danw@ximian.com> - - * Evolution-Storage.idl: add asyncCreateFolder and - asyncRemoveFolder interfaces. (Use Bonobo::Listener rather than - creating a new listener interface.) - - * Evolution-LocalStorage.idl: Remove the - Evolution::LocalStorageOpsListener interface, which wasn't being - used. - - * evolution-storage.c (impl_Storage_async_create_folder, - impl_Storage_async_remove_folder): implement by emitting signals - on the EvolutionStorage object. Convert from - EvolutionStorageResult to GNOME_Evolution_Storage_Result (blah!) - (class_init): Set up the new "create_folder" and "remove_folder" - signals. - - * e-corba-storage.c (async_create_folder, async_remove_folder): - Implement, using the new Evolution::Storage IDL. Convert from - GNOME_Evolution_Storage_Result to EStorageResult (blah!) - - * e-storage-set.c (e_storage_set_async_create_folder): Don't allow - a NULL description (since it doesn't allow a NULL anythign else). - - * e-shell-folder-creation-dialog.c (dialog_clicked_cb): Pass "" - rather than NULL for the description. - -2001-02-12 Kjartan Maraas <kmaraas@gnome.org> - - * Makefile.am: xml-i18n-tools setup. - * GNOME_Evolution_Shell.oaf.in: Mark strings for translation. - -2001-02-10 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view-menu.c: Moved the author list to the top of the - file. - (command_about_box): Display the `SUB_VERSION' as well. - -2001-02-08 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-creation-dialog.c (dialog_clicked_cb): Destroy - the dialog instead of using `gnome_dialog_close()'. - (dialog_clicked_cb): Likewise. - (dialog_close_cb): Removed. - (e_shell_show_folder_creation_dialog): Don't connect to the - "close" signal anymore. - - * e-shell-folder-selection-dialog.c - (folder_creation_dialog_result_cb): New callback. Set the default - folder to be the newly created one. - (impl_clicked): Use it. - - * e-shell-folder-creation-dialog.c: Add members `folder_path', - `result_callback' and `result_callback_data' to `struct - _DialogData'. - (e_shell_show_folder_creation_dialog): New args @result_callback - and @result_callback_data. - (async_create_cb): Notify the result through the specified - callback. - (dialog_clicked_cb): Likewise. Set the `folder_path' in the - DialogData so that we can pass it over when we get the async - notification of the result of the operation. - - * e-shell-folder-creation-dialog.h: New type - `EShellFolderCreationDialogCallback'. - - * e-storage-set-view.c (e_storage_set_view_set_current_folder): - Show the node too, using `e_tree_model_show_node()'. - -2001-02-05 Ettore Perazzoli <ettore@ximian.com> - - * e-setup.c (copy_default_stuff): s/first time you run/first time - you are running/. - -2001-02-02 Ettore Perazzoli <ettore@ximian.com> - - * e-component-registry.h: Don't #include <config.h>. - * e-corba-storage-registry.h: Likewise. - * e-corba-storage.h: Likewise. - * e-folder-type-registry.h: Likewise. - * e-folder.h: Likewise. - * e-local-folder.h: Likewise. - * e-local-storage.h: Likewise. - * e-shell-folder-title-bar.h: Likewise. - * e-shell-view.h: Likewise. - * e-shell.h: Likewise. - * e-shortcuts-view.h: Likewise. - * e-shortcuts.h: Likewise. - * e-splash.h: Likewise. - * e-storage-set-view.h: Likewise. - * e-storage-set.h: Likewise. - * e-storage.h: Likewise. - * evolution-local-storage.h: Likewise. - * evolution-session.h: Likewise. - * evolution-shell-client.h: Likewise. - * evolution-shell-component.h: Likewise. - * evolution-shell-view.h: Likewise. - * evolution-storage-listener.h: Likewise. - * evolution-storage.h: Likewise. - -2001-02-02 Iain Holmes <iain@ximian.com> - - * importer/evolution-importer-client.c: - (evolution_importer_client_new_from_id): Free the CORBA_Environment. - -2001-01-30 Iain Holmes <iain@ximian.com> - - * importer/importer.c: (start_import): Added a notice if there is no - importer that can handle the file. - (get_iid_for_filetype): Free the list of multiple items before returning. - (importer_timeout_fn): Removed notice. - (import_cb): Removed notice. - -2001-01-30 Iain Holmes <iain@ximian.com> - - * importer/importer.c: Added a nasty hack to change the druids Finish - button to be Import. - - * importer/import.glade: Remove the FIXME warning. - -2001-01-30 Kjartan Maraas <kmaraas@gnome.org> - - * importer/importer.c: Fixed some typos. - -2001-01-28 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-creation-dialog.c (add_storage_set_view): Set the - shadow type to be `GTK_SHADOW_IN' in the EScrollFrame. - -2001-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (storage_set_view_box_button_release_event_cb): - Don't pop down the folder bar if the button release happens in the - e-paned's handle. - (storage_set_view_box_button_release_event_cb): Changed the return - value to be int. Stupid me. - -2001-01-27 Jason Leach <jasonleach@usa.net> - - * e-shortcuts-view.h: Fix #include to point to gal instead of - widgets/shortcut-bar/ - - * e-shortcuts.c: Here too. - * e-shortcuts-view-model.h: And lastly here. - - * Makefile.am (evolution_LDADD): Don't link with the old - widgets/shortcut-bar/libshortcut-bar.la anymore, gal has the new - shortcut-bar. - -2001-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (get_pixbuf_for_folder): Don't scale if the - size is the same. `gdk_pixbuf_scale()' seems to be blurring the - image even if the scaling factor is 1.0. - -2001-01-26 Ettore Perazzoli <ettore@ximian.com> - - * e-corba-storage.c: Remove all instances of `__FUNCTION__'. - * e-folder-tree.c: Likewise. - * e-folder-type-registry.c: Likewise. - * e-shell-view.c: Likewise. - * e-shell-view-menu.c: Likewise. - -2001-01-25 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (e_shell_view_construct): Connect the - "updated_folder" with `gtk_signal_connect_while_alive()' so that - it gets disconnected when the shell view dies. - -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. - -2001-01-24 Kjartan Maraas <kmaraas@gnome.org> - - * importer/GNOME_Evolution_Importer.idl: Fix missing ';'. - -2001-01-23 Ettore Perazzoli <ettore@ximian.com> - - * e-corba-storage.c (impl_StorageListener_update_folder): Don't - call `e_storage_updated_folder()' as it's supposed to happen - automatically now. - - * e-storage.c (e_storage_updated_folder): Removed. - (folder_changed_cb): New callback for the "changed" signal on the - EFolders. - (e_storage_new_folder): Connect it. - - * e-folder-tree.c: New member `data_to_path' in `EFolderTree'. - (e_folder_tree_new): Init here. - (e_folder_tree_destroy): Destroy it here. - (e_folder_tree_add): Add to the `data_to_path' hash. Make sure - we are not adding the same folder twice. - (remove_folder): Remove from the `data_to_path' hash. - (e_folder_tree_get_path_for_folder): New. - - * e-shell-view.c (e_shell_view_construct): Don't connect to the - "folder_updated" signal of the local storage anymore. - (folder_updated_cb): Removed. - (updated_folder_cb): New. - (e_shell_view_construct): Connect it to the "updated_folder" - signal. - - * e-local-storage.c: Remove `FOLDER_UPDATED' enum value and the - `signals' variable, as we don't want to define any custom signals - here anymore. - (bonobo_interface_update_folder_cb): No need to emit the - "folder_updated" signal here. The base class will take care of - this already. - (class_init): Don't install the "folder_updated" signal here. - - * e-local-storage.h: Removed signal "folder_updated". It is not - necessary, as we already have an `updated_folder' in `EStorage', - which is the parent class of `ELocalStorage'. - -2001-01-24 Iain Holmes <iain@ximian.com> - - * importer/GNOME_Evolution_Importer.idl: Removed the busy exception. - -2001-01-19 Iain Holmes <iain@ximian.com> - - * importer/GNOME_Evolution_Importer.idl: Make the processItem oneway. - Make the Listener interface inherit from Bonobo::Unknown. - - * importer/evolution-importer-client.[ch]: Remove all the crap to deal - with creating the Listener object. - - * importer/evolution-importer-listener.[ch]: A new bonobo object to - implement the ImporterListener interface. - - * importer/importer.c: Fix it up to use the new Listener object. - -2001-01-18 Iain Holmes <iain@ximian.com> - - * e-shortcuts-view.c (show_new_group_dialog): Don't make the dialog - modal. - -2001-01-16 Iain Holmes <iain@ximian.com> - - * importer/GNOME_Evolution_Importer.idl: Removed the ImporterFactory - interface and put the methods from it into the Importer interface. - - * importer/evolution-importer-factory.[ch]: Removed. - - * importer/evolution-importer.[ch]: Added the new methods. - Added inline documentation for all public functions. - - * importer/evolution-importer-client.[ch]: Added new client support for - the new methods. - Added inline documentation for all public functions. - - * importer/importer.c (create_plugin_menu): Changed the query to look for - IDL:GNOME/Evolution/Importer:1.0. - (start_import): Do all CORBA methods through the EvolutionImporterClient. - (get_iid_for_filetype): Change query to search for - IDL:GNOME/Evolution/Importer:1.0. - -2001-01-19 Dan Winship <danw@ximian.com> - - * evolution-storage.c (evolution_storage_folder_exists): New - function. Obvious. - -2001-01-19 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. - -2001-01-17 Federico Mena Quintero <federico@ximian.com> - - * importer/evolution-importer.h: Use "typedef enum { ... } Blah;" - instead of "typedef enum _Blah Blah; enum _Blah { ... };" so that - gtk-doc can parse it. Sigh. - -2001-01-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_construct): Set the shadow type - for the EScrollFrame. Also, make the EStorageSetView widget grab - the focus. For some reason it doesnt' seem to work, but I'll - blame ETree for now. - -2001-01-17 Ettore Perazzoli <ettore@ximian.com> - - * e-shell-view.c (update_for_current_uri): Display the folder name - before "Evolution" instead of after it. Also, display the - sub-version string if it was defined when configuring. - -2001-01-17 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.c (table_drag_drop): Don't emit the - "dnd_action" signal here. Instead, do a `gtk_drag_get_data()' to - retrieve information about the drop. - (table_drag_data_received): New, implementation for - `ETable::table_drag_data_received'. - (class_init): Install it. - (table_drag_data_get): Use `unsigned int' instead of `guint' for - consistency. - (table_drag_motion): Same here. Also use `int' instead of `gint'. - (table_drag_drop): Likewise. - (treepath_compare): Likewise. - (marshal_NONE__ENUM_STRING_STRING_STRING): Removed. - (marshal_NONE__GDKDRAGACTION_STRING_STRING_STRING): New. - (class_init): Use it; update signal "dnd_action" so that it passes - a `GdkDragAction *' instead of . - - * e-storage-set-view.h: Change signal "::dnd_action" so that it - provides a `GdkDragContext' instead of just a `GdkDragAction'. - -2001-01-16 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (e_shell_view_construct): set config - path on window. - -2001-01-16 JP Rosevear <jpr@ximian.com> - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_new): pop the - visual/cm after the construct - -2001-01-15 JP Rosevear <jpr@ximian.com> - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_new): push/pop - the color map - (e_shell_folder_title_bar_new): and the visual... - -2001-01-15 Iain Holmes <iain@ximian.com> - - * importer/importer.c (import_druid_cancel): Just destroy the wizard. - All other freeing code is moved into import_druid_destroy. - (show_import_wizard): Connect the destroy signal to import_druid_destroy. - (start_import): Connect to the destroy signal of the dialog and the - clicked as well. - (dialog_destroy_cb): Stop the import after the current item has finished. - (dialog_clicked_cb): Stop the import. - (import_cb): Only process the next item if the dialog hasn't been stopped. - Destroy the dialog if it hasn't been destroyed already. - - * e-splash.c (e_splash_construct): Set the window title to Evolution. - -2001-01-13 Jason Leach <jasonleach@usa.net> - - (Fix bug #934: Add Right-click item to hide the shortcut bar) - - * e-shortcuts-view.c (class_init): Create a new hide_requested - signal. - (hide_shortcut_bar_cb): New function that gets called from the - right click menu items, it emits the hide_requested signal. - - * e-shell-view.c (setup_widgets): Connect the hide_requested from - the shortcut bar. - (hide_requested_cb): New function. - -2001-01-13 Ettore Perazzoli <ettore@ximian.com> - - * e-storage-set-view.h: New signal `dnd_action'. - - * e-storage-set-view.c: Renamed `drag_types' to - `source_drag_types' and `num_drag_types' to - `num_source_drag_types'. New variables `destination_drag_types' - and `num_destination_drag_types'. - (e_storage_set_view_construct): Set the ETree as a drag - destination. Allow both GDK_ACTION_MOVE and GDK_ACTION_COPY. - - * e-storage-set-view.c (table_drag_begin): Renamed from - `etable_drag_begin'. - (table_drag_data_get): Renamed from `etable_drag_data_get'. - Changed to be a method override instead of a signal handler. - (table_drag_motion): New; implementation for the - `ETable::table_drag_motion' method. Changed to be a method - override instead of a signal handler. - (table_drag_drop): New, implementation for `::table_drag_drop'. - (cursor_change): Renamed from `on_cursor_change'. - (e_storage_set_view_construct): Don't connect the signals here. - (class_init): Instead, override the methods here. Also, install - our override for `::table_drag_motion' and for - `::table_drag_drop'. - (right_click): Changed to be a method instead of a signal handler. - (cursor_change): Likewise. - -2001-01-13 Miguel de Icaza <miguel@gnu.org> - - * e-shell.c (e_shell_construct): Unref our copy, and then destroy. - - * e-splash.c (e_splash_set_icon_highlight): Do not execute code if - we have been destroyed. - (e_splash_add_icon): ditto. - -2001-01-12 Miguel de Icaza <miguel@gnu.org> - - * e-splash.c (e_splash_construct): Ok, talked to Ettore. Going - back to TOPLEVEL non-POPUP. - (e_splash_construct): Remove nice toplevel window. - -2001-01-12 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c: Add member `copy_folder_fn' to - `EvolutionShellComponentPrivate'. - (init): Init to NULL. - (impl_ShellComponent_async_copy_folder): New function, - implementation for `::asyncCopyFolder'. - (evolution_shell_component_construct): New arg @copy_folder_fn. - Set the corresponding member in `EvolutionShellComponentPrivate'. - (evolution_shell_component_new): New arg @copy_folder_fn. Pass it - to `evolution_shell_component_construct'. - - * evolution-shell-component.h: New type - `EvolutionShellComponentCopyFolderFn'. - -2001-01-12 Ettore Perazzoli <ettore@helixcode.com> - - * Evolution-ShellComponent.idl: Add method `::removeFolderAsync'. - -2001-01-12 Ettore Perazzoli <ettore@ximian.com> - - * evolution-shell-component.c (corba_class_init): - s/addFolderAsync/createFolderAsync/. - - * evolution-shell-component-client.c - (evolution_shell_component_client_async_create_folder): - s/addFolderAsync/createFolderAsync/. - - * Evolution-ShellComponent.idl: Rename `addFolder' into - `createFolder'. - -2001-01-12 Dan Winship <danw@ximian.com> - - * importer/.cvsignore: Create - -2001-01-12 Miguel de Icaza <miguel@ximian.com> - - * e-storage-set-view.c: Added translation strings. - - * e-shell-view-menu.c (command_about_box): Update our name - (command_new_mail_message): Remove "window" - from the moniker path. - - * e-splash.c (e_splash_construct): Make the spalsh screen a - toplevel instead of a popup. - -2001-01-11 Dan Winship <danw@ximian.com> - - * e-shell-view.c (show_existing_view): Remove the "Already have - view for..." message. People keep assuming it's an error. - -2001-01-11 Iain Holmes <iain@ximian.com> - - * importer/*: New directory containing the importer framework. - - * e-shell-view-menu.c (file_verbs): Add the FileImporter verb. - -2001-01-10 Miguel de Icaza <miguel@helixcode.com> - - * e-shell-view-menu.c (command_goto_folder): Fix prototype - (command_new_view): ditto. - (command_new_mail_message): Implement command_new_mail_message. - - verbs: Use BONOBO_UI_VERB instead of BONOBO_UI_UNSAFE_VERB - -2001-01-04 Dan Winship <danw@helixcode.com> - - * evolution-storage.c (evolution_storage_update_folder_by_uri): - New function to update a folder given its URI. Plus associated - changes to other functions to keep track of the path<->URI - mappings. - -2000-12-28 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-client.c (user_select_folder): Make sure the - `*uri_return' and `*physical_uri_return' are always initialized on - return, as that's what the caller expects. - -2000-12-23 Jason Leach <jasonleach@usa.net> - - * e-shell-view-menu.c (command_run_bugbuddy): Fix a crash when the - user tries to "Submit bug report" but doesn't have bug-buddy - installed. Bug #633. - -2000-12-23 Jason Leach <jasonleach@usa.net> - - * e-setup.c (copy_default_stuff): Make the "Evolution - installation" dialog resizable. Bug #742. - (check_evolution_directory): Here too. - -2000-12-14 Iain Holmes <iain@helixcode.com> - - * e-shell-folder-selection-dialog.c (dbl_click_cb): Modify to suit the - new double click callback signature. Destroy the dialog after the double - click as well. - -2000-12-14 Ettore Perazzoli <ettore@helixcode.com> - - * main.c (development_warning): Slightly updated the text for the - release. - -2000-12-14 Ettore Perazzoli <ettore@helixcode.com> - - * e-splash.c (ICON_Y): Update for the size of the new splash. - -2000-12-12 Jeffrey Stedfast <fejj@helixcode.com> - - * e-splash.c (button_press_event): Return TRUE as we have handled - the event. - -2000-12-12 Dan Winship <danw@helixcode.com> - - * e-shell-view.c (get_control_for_uri): Pass path+1 rather than - path to get_type_for_storage, to match the convention used by its - other callers. - -2000-12-11 Jeffrey Stedfast <fejj@helixcode.com> - - * e-splash.c (e_splash_construct): Connect a button-press-event - signal on the splash screen so users can click it to hide it. - (button_press_event): New callback to hide the splash screen. - -2000-12-11 Dan Winship <danw@helixcode.com> - - * e-shell-view.c (get_type_for_{folder,storage}): return NULL if - no {folder,storage} is found. - (get_control_for_uri): return NULL if no folder_type is found. - -2000-12-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts-view.c (e_shortcuts_view_construct): Ooops. We were - reffing a bogus pointer that was not assigned yet. - - * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): - Updated according to the new IDL. - - * e-local-storage.c (construct): Pass `NULL' to - `e_storage_construct' as the @toplevel_node_type arg. - - * evolution-shell-component-client.c - (evolution_shell_component_client_new_for_objref): New. - (evolution_shell_component_client_new): Refactored to use it. - - * e-corba-storage.c (e_corba_storage_construct): New arg - @toplevel_node_type. Pass it to `e_storage_construct'. - (e_corba_storage_new): New arg @toplevel_node_type. Pass it to - `e_corba_storage_construct'. - - * e-storage.c: New member `toplevel_node_uri_type' in - `EStoragePrivate'. - (init): Init to NULL. - (destroy): Unref. - (e_storage_construct): New arg @toplevel_node_type. Set the - private member value accordingly. - (e_storage_new): New arg @toplevel_node_type. Pass to - `e_storage_construct'. - (e_storage_get_toplevel_node_type): New. - - * e-shell-view.c (get_physical_uri_for_evolution_uri): New arg - @shell_view. - (get_physical_uri_for_storage): Filled in. New arg @shell_view. - (get_physical_uri_for_folder): Filled in. New arg @shell_view. - - * evolution-local-storage.c (evolution_local_storage_construct): - Pass `NULL' as the @toplevel_node_type arg to - `evolution_storage_construct'. - - * evolution-storage.c: New member `toplevel_node_type' in - `EvolutionStoragePrivate'. - (destroy): Free. - (init): Init to NULL. - (evolution_storage_construct): New arg @toplevel_node_handler - to initialize the corresponding field in `->priv'. - (evolution_storage_new): New arg @toplevel_node_type. Pass - it to `evolution_storage_construct'. - (evolution_storage_register): Pass the @toplevel_node_type - arg to `::addStorage'. - - * Evolution-Storage.idl: Add arg @toplevel_node_type to - `StorageRegistry::addStorage'. - - * main.c (new_view_on_running_shell): Deal with an exception in - `::createNewView' gracefully. - - * e-shell-view.c (switch_on_folder_tree_click): New. - (folder_selected_cb): Refactored to use it. - (storage_selected_cb): Use it. - -2000-12-07 Michael Meeks <michael@helixcode.com> - - * Makefile.am (oaf_DATA): update to GNOME_Evolution_Shell.oafinfo - - * e-shell.h: upd. - -2000-12-04 Ettore Perazzoli <ettore@helixcode.com> - - * Evolution-StorageSetView.idl: Arg @uri renamed to @name in - `StorageSetViewListener::notifyStorageSelected'. - - * evolution-storage-set-view.c - (storage_set_view_widget_storage_selected_cb): Renamed arg @uri to - @name. - - * e-storage-set-view.c (on_cursor_change): Only emit the name of - the storage for the "storage_selected" signal [i.e. remove the - leading slash]. - - * e-shell-view.c (storage_selected_cb): New callback for the - "storage_selected" signal on the EStorageSetView used for the - folder tree. - (setup_storage_set_subwindow): Connect it. - - * evolution-local-storage.c (evolution_local_storage_construct): - Pass NULL as the @toplevel_node_uri arg to - `evolution_storage_construct()'. - - * evolution-storage.c: New member `toplevel_node_uri' in - `EvolutionStoragePrivate'. - (init): Init to NULL. - (destroy): Free. - (evolution_storage_construct): New arg @toplevel_node_uri. Set - the @toplevel_node_uri member in the private part to its value. - (evolution_storage_new): New arg @toplevel_node_uri. Pass it to - `evolution_storage_construct()'. - (evolution_storage_register): Pass the @toplevel_node_uri value to - the `::addStorage' CORBA method. - - * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): - New arg @toplevel_node_uri, to go with the IDL change. - - * Evolution-Storage.idl (StorageRegistry::addStorage): New arg - @toplevel_node_uri. - - * e-local-storage.c (construct): Pass NULL as the - @toplevel_node_uri arg to `e_storage_construct()'. - - * e-corba-storage.c (e_corba_storage_construct): New arg - @toplevel_node_uri. Pass it to `e_storage_construct()'. - (e_corba_storage_new): New arg @toplevel_node_uri. Pass it to - `e_corba_storage_construct()'. - - * e-storage.c: New member `toplevel_node_uri' in - `EStoragePrivate'. - (init): Init to NULL. - (destroy): Free. - (e_storage_construct): New arg @toplevel_node_uri. Set the - `toplevel_node_uri' member in the private part to its value. - (e_storage_new): New arg @toplevel_node_uri. Pass it to - `e_storage_construct()'. - (e_storage_get_toplevel_node_uri): New. - - * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): - Renamed from `impl_StorageRegistry_register_storage'. - (impl_StorageRegistry_removeStorageByName): Renamed from - `impl_StorageRegistry_unregister_storage'. - (corba_class_init): Updated accordingly. - -2000-12-04 Ettore Perazzoli <ettore@helixcode.com> - - * main.c (new_view_on_running_shell): Don't crash if the object - returned from `oaf_activate_from_id' is NIL and the exception - isn't set. Just handle this as a normal error condition. - -2000-12-04 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (get_control_for_uri): return NULL if we can't - create a view. - (setup_evolution_shell_view_interface): add precondition. - -2000-12-04 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts-view.c (e_shortcuts_view_construct): Ref the - shortcuts. - - * main.c (new_view_on_running_shell): New. - (idle_cb): If the shell cannot be created, then call - `new_view_on_running_shell'. - - * e-shell-view.c: New member `shell_view_interface' in - `EShellViewPrivate'. - (init): Init to NULL. - (setup_evolution_shell_view_interface): Set up. - (destroy): Unref. - - * e-shell.c (impl_Shell_getComponentByType): Renamed from - `impl_Shell_get_component_for_type'. - (impl_Shell_selectUserFolder): Renamed from - `impl_Shell_user_select_folder'. - (impl_Shell_getLocalStorage): Renamed from - `impl_Shell_get_local_storage'. - (impl_Shell_createStorageSetView): Renamed from - `impl_Shell_create_storage_set_view'. - (corba_class_init): Updated accordingly. - (impl_Shell_createNewView): New, implementation for the - `createNewView' CORBA method. - (corba_class_init): Install it. - - * Evolution-Shell.idl: New method `::createNewView'. - - * e-shell.c (register_shell): New. - (e_shell_construct): Return value changed to `gboolean'. New arg - @iid. Construct the Bonobo object before displaying the splash, - then try to register it with the specified @iid. If registration - fails, return %FALSE. Otherwise, just do everything normally and - return %TRUE. - (e_shell_new): Pass the OAFIID to `e_shell_construct()'. If it - fails, unref the object and return NULL. - - * evolution.oafinfo: New. - -2000-11-27 JP Rosevear <jpr@helixcode.com> - - * e-shell-view-menu.c (command_about_box): Add myself, anna, jesse - -2000-11-15 Michael Meeks <michael@helixcode.com> - - * e-shell.c (e_shell_component_maybe_crashed): de-register - a component's UI if it dies. - -2000-11-25 Peter Williams <peterw@helixcode.com> - - * Makefile.am (idldir): Install our IDL's into $(datadir)/idl. - -2000-11-25 Federico Mena Quintero <federico@helixcode.com> - - * e-setup.c (check_dir_recur): Plug leaks of the fullname and - fulldefaultname. - (check_evolution_directory): Plug leaks of defaultdir and newfiles - and the list's data; made the code have a single return point. - - * e-shell.c (e_shell_restore_from_settings): Plug leak of prefix. - (corba_class_init): Plug leak; we were not assigning the - vepv->_base_epv. - - * evolution-storage.c (corba_class_init): Likewise. - - * evolution-local-storage.c (corba_class_init): Likewise. - -2000-11-24 Federico Mena Quintero <federico@helixcode.com> - - * evolution-shell-component.c - (impl_ShellComponent__get_supported_types): Plug leak; mark the - CORBA sequence so that it will be released. - -2000-11-14 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (unmerge_on_error): add - (e_shell_view_construct): hook up to system_exception on - ui_container. - -2000-11-11 Matt Bissiri <bissiri@eecs.umich.edu> - - * e-shell.c: (setup_components), (save_settings_for_component): - * evolution-storage.c: (evolution_storage_register_on_shell): - Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*" - to sync up with yesterday's IDL re-scoping. - -2000-11-06 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (unrealize): remove. - (e_shell_view_construct): ditto. - -2000-11-09 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Make the panes of the EPaned not shrinkable - beyond their minimum size. - -2000-11-08 Matt Bissiri <bissiri@eecs.umich.edu> - - * e-shell-folder-selection-dialog.c: Fix typo in a comment. - -2000-11-06 Dan Winship <danw@helixcode.com> - - * e-storage-set-view.c (insert_folders): Pass full_name, not - folder_name to callback. - -2000-11-06 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-view.c (impl_ShellView_change_current_view): - Constified @uri. - (impl_ShellView_set_title): Constified @title. - -2000-11-06 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c: New member `crash_type_names' in `EShellPrivate'. - (init): Init to NULL. - (destroy): Free. - (e_shell_component_maybe_crashed): New. - -2000-11-06 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-component.c (impl_ShellComponent_create_view): - `CORBA_Object_duplicate()' the return value. - -2000-11-06 Kjartan Maraas <kmaraas@gnome.org> - - * e-setup.c: Added #include <config.h> - -2000-11-03 Ettore Perazzoli <ettore@helixcode.com> - - * main.c: New local static variables `evolution_directory', - `no_splash'. - (main): Removed local variable `evolution_directory'. Add a - `--no-splash' command-line option for setting the value of - `no_splash'. - (idle_cb): Use the static `evolution_directory'. Make the newly - created shell show the splash or not according to the value of - `no_splash'. - - * e-shell.c (setup_components): Deal with a NULL @splash - parameter. - (e_shell_construct): New arg `show_splash'. Don't create a splash - screen if FALSE; instead, pass NULL to `setup_components()' as the - @splash arg. - (e_shell_new): New arg `show_splash'. Pass it to - `e_shell_construct()'. - -2000-11-03 Dan Winship <danw@helixcode.com> - - * evolution-storage-listener.c (class_init): Fix the name of the - signal passed to gtk_signal_new so that this actually works. - -2000-11-01 Dan Winship <danw@helixcode.com> - - * evolution-storage.c (evolution_storage_new_folder): Make this - take "highlighted" as well. - - * e-local-storage.c (new_folder): - * e-corba-storage.c (impl_StorageListener_new_folder): set - highlighted on the new folder. - - * e-storage-set-view.c (updated_folder_cb): Remove an unused - variable. - -2000-10-26 Iain Holmes <iain@helixcode.com> - - * Evolution-ShellView.idl: Added a change_current_view method and - a set_title. - - * evolution-shell-view.c (class_init): Added signals for the above methods. - (impl_ShellView_change_current_view), (impl_ShellView_set_title): Implementations - for above methods. - (corba_class_init): Connect the implemenations. - - * e-shell-view.c (shell_view_interface_change_current_view): Change - the display to the new uri. - (shell_view_interface_set_title): Set the window title. - (setup_evolution_shell_view_interface): Connect the signals to the above - functions. - -2000-11-01 Dan Winship <danw@helixcode.com> - - * Evolution-Storage.idl: Add "highligted" field to Folder. Add - update_folder method to StorageListener to change display_name and - highlight status. - - * e-folder.c: Add "highlighted" to EFolder to match the - Evolution::Folder type. - (e_folder_get_highlighted, e_folder_set_highlighted): Added - - * evolution-storage-listener.c - (impl_Evolution_StorageListener_update_folder, etc): - * e-storage.c (e_storage_updated_folder, etc): - * e-corba-storage.c (impl_StorageListener_update_folder, etc): - Implement update_folder. - - * e-storage-set.c (storage_updated_folder_cb, etc): Re-emit - updated_folder signals received from EStorage. - - * e-storage-set-view.c (various): Add another model column to the - ETable and set it up as a bold_column based on - e_folder_get_highligted. - (updated_folder_cb, etc): Listen to EStorageSet update_folder - signal and emit ETree node_changed signals. - - * evolution-storage.c (evolution_storage_update_folder): Client - function to update a folder's display_name and highlighted status. - - * Evolution-LocalStorage.idl: - * evolution-local-storage.c: - * e-local-storage.c: Change set_display_name to update_folder to - match Evolution::StorageListener - -2000-10-25 <jpr@helixcode.com> - - * e-shortcuts-view-model.c (load_group_into_model): Set folder to NULL to - kill warning - -2000-10-23 Dan Winship <danw@helixcode.com> - - * Makefile.am (INCLUDES): Update EVOLUTION_LOCALEDIR - -2000-10-20 Michael Meeks <michael@helixcode.com> - - * evolution-shell-component-client.c - (evolution_shell_component_client_populate_folder_context_menu), - (evolution_shell_component_client_create_view): update to new UI handler - - * e-shell-view-menu.c (command_create_folder): ditto. - - * e-storage-set-view.c (popup_folder_menu): ditto. - - * evolution-shell-component-client.h: kill ui-compat include. - -2000-10-19 Iain Holmes <iain@helixcode.com> - - *e-shell-view.c (e_shell_view_save_settings): If there is no view - save the default uri instead. - (socket_destroy_cb): When a view crashes, change the view to the - default one. - -2000-10-18 Michael Meeks <michael@helixcode.com> - - * evolution-shell-component.c (impl_ShellComponent_populate_folder_context_menu): - update for new UI handler. - -2000-10-18 Iain Holmes <iain@helixcode.com> - - * e-shell-view.c (start_progress_bar): If the widget is not realized - don't do anything, to prevent BadGC's at shut down. - (stop_progress_bar): Don't draw anything if the widget is not realized. - Same reason. - - * e-shell-folder-selection-dialog.c (dbl_click_cb): Emit the - folder-selected signal. - (e_shell_folder_selection_dialog_construct): Connect to the e-table's - double-click signal. - -2000-10-17 Iain Holmes <iain@helixcode.com> - - * e-shell.c (view_deleted_cb): Save the settings before the - view is destroyed. - (e_shell_quit): Don't save the settings when there are no views. - -2000-10-16 Iain Holmes <iain@helixcode.com> - - * e-setup.c (check_evolution_directory): Better dialog. - - * e-splash.c (icon_free): Don't unref the canvas item. - (e_splash_construct): Add a frame round the splash screen. - -2000-10-16 Dan Winship <danw@helixcode.com> - - * evolution-storage-set-view-factory.c - (evolution_storage_set_view_factory_new_view): Add a typecast. - - * e-storage-set-view.c (popup_folder_menu): Move variable - declarations into the #if 0 to kill warnings. - (populate_folder_context_menu_with_common_items, - folder_context_menu_activate_cb): Move these into #if 0 too. - - * e-shell.c: Add prototype. - - * e-shell-view.c (storage_set_view_box_map_cb): - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct): - Remove unused variables. - - * e-setup.c: Fix warning caused by e-util -> gal migration. - -2000-10-11 Iain Holmes <iain@helixcode.com> - - * e-setup.c (check_evolution_directory): Check if there are any - files in default_user that are not in ~/evolution and if so - copy them over. - (check_dir_recur): Recursive function to check the directory. - - * e-shell-view-menu.c: Look Maw! I'm an Evolution hacker too. - - * e-shell-view.c: Don't quit on when a view is destroyed. - - * e-shell.c: Save the settings for the remaining views whenever - a view is destroyed. - -2000-10-15 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (setup_storage_set_subwindow): Use an - EScrollFrame instead of a GtkScrolledWindow. - -2000-10-14 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (e_shell_construct): Display a splash screen. - (setup_components): New arg @splash, pointer to an ESplash. - Display the icons of the components in the splash and highlight - them as the components are activated. - - * e-splash.c: New. - * e-splash.h: New. - -2000-10-13 Anna Marie Dirks <anna@helixcode.com> - - * e-shell-folder-creation-dialog.glade: Added focus to the - folder-name text entry. - -2000-10-11 Christopher James Lahey <clahey@helixcode.com> - - * e-storage-set-view.c: Fixed the spec on this. - -2000-10-11 Christopher James Lahey <clahey@helixcode.com> - - * e-storage-set-view.c: Changed this to use the built in cells. - -2000-10-11 Christopher James Lahey <clahey@helixcode.com> - - * e-storage-set-view.c: Adapted this for the new ETable system. - -2000-10-09 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c: Change paths in such a way as to require - HEAD bonobo. - (command_toggle_folder_bar, command_toggle_shortcut_bar): only - respond to state changes. - -2000-10-07 Matt Wilson <msw@redhat.com> - - * e-shell-view.c (init): initialize priv->sockets to NULL, fixes - startup crash on non-ia32 platforms - -2000-10-06 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c: New member `sockets. - (init): Init to NULL. - (destroy): Free. Also, disconnect the "destroy" signal from them - before the controls get destroyed. - (find_socket): New function. [Thanks Dan.] - (socket_destroy_cb): New callback for the destruction of a socket. - (get_control_for_uri): Get the socket through `find_socket()' and - connect the "destroy" signal to `socket_destroy_cb'. - -2000-10-06 Chris Toshok <toshok@helixcode.com> - - * e-storage-set-view.c (insert_storages): call - _set_compare_function after inserting the storage. - -2000-10-06 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (e_shell_view_display_uri): add a freeze / thaw - pair to reduce flicker on switching controls. - -2000-10-05 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c (command_xml_dump): fix. - -2000-10-05 Chris Toshok <toshok@helixcode.com> - - * e-shell-folder-creation-dialog.c: #include <gal/widgets/e-gui-utils.h> - - * e-shell-folder-selection-dialog.c: same. - -2000-10-05 Chris Toshok <toshok@helixcode.com> - - * e-shell-folder-selection-dialog.c: add #include for - libgnomeui/gnome-messagebox.h - -2000-10-05 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c (shortcut_bar_mode_changed_cb): upd. - (folder_bar_mode_changed_cb): upd. - (command_xml_dump): clobber. - (e_shell_view_menu_setup): upd. - - * e-shell-view.c (shell_view_interface_set_message_cb): upd. - (shell_view_interface_unset_message_cb): upd. - (e_shell_view_construct): upd. - (get_control_for_uri): upd. - (e_shell_view_get_bonobo_ui_component): upd. - -2000-10-04 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (setup_progress_bar): remove evil usize set. - -2000-10-03 Matt Bissiri <bissiri@eecs.umich.edu> - - * e-shell-view-menu.c (e_shell_view_menu_setup): Use - `bonobo_ui_component_add_verb_list' instead of - `bonobo_ui_component_add_verb_list_with_data' for help_verbs, - so that `command_help' gets an html filename as user_data, - instead of a ptr to EShellView. - (menu_do_misc): Move DumpXML from help_verbs to here, because - `command_xml_dump' needs to get EShellView as user_data. - -2000-10-02 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts-view.c (show_new_group_dialog): Destroy the dialog - if the user has clicked on "OK" or "Cancel". - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * e-storage-set-view.c (e_storage_set_view_get_current_folder): if - we're not displaying folders, the current folder is NULL. - (class_init): fix typo. - - * Makefile.am (libeshell_a_SOURCES): - evolution-storage-set-view-listener.[ch] should be here, not - evolution_SOURCES. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * evolution-storage-set-view.c: add storage_selected behavior - - loop over the listeners calling _storage_selected. - - * Evolution-StorageSetView.idl: add storage_selected to the - Listener interface. - - * e-storage-set-view.c add storage_selected signal. - (on_cursor_change): if the depth is less than 2, emit - "storage_selected", otherwise emit "folder_selected". - - * e-storage-set-view.h: add storage_selected signal. - - * evolution-storage-set-view-listener.h: add storage_selected - signal. - - * evolution-storage-set-view-listener.c: add storage_selected - signal. - -2000-10-02 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage-set-view-listener.c: New. - * evolution-storage-set-view-listener.h: New. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * evolution-storage-set-view.c (impl_StorageSetView_add_listener): fix typo. - (impl_StorageSetView_remove_listener): same. - (impl_StorageSetView__get_show_folders): implementation of getter for show_folders. - (impl_StorageSetView__set_show_folders): implementation of setter for show_folders. - (corba_class_init): install _set_show_folders and _get_show_folders. - - * Evolution-StorageSetView.idl: add show_folders attribute to - StorageSetView. - - * e-storage-set-view.h: add prototypes for - e_storage_set_view_{get,set}_show_folders. - - * e-storage-set-view.c (insert_storages): split this code out from - e_storage_set_view_construct so we can call it when "show_folders" - has been changed. - (e_storage_set_view_construct): remove the code to insert - storages. - (e_storage_set_view_set_show_folders): new function. tears down - existing tree and node/path hashtable and calls insert_storages. - (e_storage_set_view_get_show_folders): new function, retrieves - current show_folders state. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * evolution-storage-set-view-factory.c - (evolution_storage_set_view_factory_new_view): pass - storage_set_view_interface as second argument to - bonobo_object_add_interface, and call gtk_widget_show on the - storage_set_view widget. - -2000-10-03 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (setup_bonobo_ui_handler): kill. - - * e-shell-view-menu.c (e_shell_view_menu_setup): strip - out the XML UI merge; move it to - - * e-shell-view.c (e_shell_view_construct): here, + - freeze / thaw pair. - - * e-shell-view.c (setup_progress_bar): impl. - (setup_widgets): hook in. - (progress_bar_timeout_cb): fix. - (start_progress_bar): fix. - (stop_progress_bar): fix. - (e_shell_view_construct): setup ui handler first. - -2000-09-22 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c (e_shell_view_menu_setup): upd. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * e-storage-set-view.c (new_folder_cb): set the new node's compare function. - (insert_folders): same. - - (new_storage_cb): remove uunecessary cast. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * e-storage-set-view.c (new_storage_cb): track e-tree sort api change. - (treepath_compare): same. - (new_folder_cb): same. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * e-storage-set-view.c (e_storage_set_view_construct): pass NULL - for the open/closed pixbuf of the tree renderer. we'll let it - supply the default. - (destroy): remove the expanded/unexpanded pixbuf references. - (new_storage_cb): use e_tree_model_node_insert_id so we can (soon) - save expanded/collapsed state. - (new_folder_cb): same. - (insert_folders): same. - (e_storage_set_view_construct): same. - -2000-10-02 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (impl_Shell_create_storage_set_view): New, - implementation for `::create_storage_set_view'. - (corba_class_init): Install. - - * evolution-storage-set-view-factory.c: New. - * evolution-storage-set-view-factory.h: New. - - * evolution-storage-set-view.c: New. - * evolution-storage-set-view.h: New. - - * Evolution-Shell.idl: New method - `Shell::create_storage_set_view'. - - * Evolution.idl: #include <Evolution-StorageSetView.idl>. - - * Evolution-StorageSetView.idl: New. - -2000-10-02 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.c (find_listener_in_list): New helper - function. - (impl_Storage_remove_listener): New, implementation for - `Storage::remove_listener'. - (remove_listener): Helper function for - `impl_Storage_remove_listener'. - (evolution_storage_get_epv): Install the implementation for - `::remove_listener'. - (add_listener): Return a boolean indicating success or failure. - Reject multiple additions of the same listener. - (impl_Storage_add_listener): Updated accordingly: raise an - exception if `add_listener' fails. - - * Evolution-Storage.idl: Added `Storage::remove_listener'. Added - exception `AlreadyListening' for `::add_listener'. - -2000-09-29 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (popup_storage_set_view_button_clicked): Renamed - from `popup_storage_set_view_close_button_clicked'. - (storage_set_view_box_map_cb): Updated accordingly. Connect to - "button_clicked" instead of "close_button_clicked". - (disconnect_popup_signals): Updated accordingly. - (e_shell_view_set_folder_bar_mode): Update the button mode of the - title bar according to the folder bar mode. - -2000-09-28 Dan Winship <danw@helixcode.com> - - * e-corba-storage.c (impl_StorageListener_new_folder): Don't print - "Folder registered successfully" if it didn't. (Duh. :) - -2000-09-28 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c: New constant `DEFAULT_URI'. - (e_shell_view_load_settings): If the `DisplayedURI' from - `gnome_config' cannot be displayed, display the `DEFAULT_URI'. - -2000-09-26 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts.c (e_shortcuts_get_group_title): Cast the data - pointer, not the node pointer. - (e_shortcuts_add_group): If @group_num is -1, emit the effective - group number with the "new_group" signal instead of -1, which is - going to confuse the signal handler. - (e_shortcuts_add_shortcut): Likewise with the shortcut. - - * e-shortcuts-view-model.c (shortcuts_new_group_cb): We are @data, - not @shortcuts. - (class_init): Install the `::destroy' handler. - - * e-shortcuts-view.c (e_shortcuts_view_construct): Set - `priv->shortcuts'. - (remove_shortcut_cb): Don't remove the item both on the data and - the model. - (toggle_small_icons_cb): Removed some crufty checks. - (toggle_large_icons_cb): Likewise. - (show_new_group_dialog): New, implementation for the "Create new - shortcut group" dialog. - (destroy_group_cb): Callback for the "Destroy this group" item. - (create_new_group): Callback for the "Create new group" item. - -2000-09-25 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts-view.c (item_selected): Renamed from - `selected_item'. - (class_init): Updated accordingly. - (impl_shortcut_dropped): New function, implementation for - `EShortcutBar::shortcut_dropped'. - (impl_shortcut_dragged): New function, implementation for - `EShortcutBar::shortcut_dragged'. - (e_shortcuts_view_construct): Update to use EShortcutsViewModel. - (class_init): Install them. - - * e-shortcuts.c (e_shortcuts_get_group_title): New. - - * e-shortcuts-view-model.c: New. - * e-shortcuts-view-model.h: New. - -2000-09-24 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (setup_local_storage): Don't unref the local storage. - -2000-09-22 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c (e_shell_view_menu_setup): upd. - -2000-09-21 Federico Mena Quintero <federico@helixcode.com> - - * e-shell-view-menu.c: Fix mis-spelling of "calendar". - -2000-09-21 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (show_existing_view): upd. - - * Evolution-ShellComponent.idl: upd. - - * evolution-shell-component.c (impl_ShellComponent_populate_folder_context_menu): - upd. - -2000-09-18 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c (command_xml_dump): add xml dump option. - -2000-09-18 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and - $(EXTRA_GNOME_LIBS). Removed unneeded libraries. - - * e-component-registry.c, e-corba-storage-registry.c, - e-corba-storage.c, e-folder-type-registry.c, e-folder.c, - e-local-folder.c, e-local-storage.c, - e-shell-folder-creation-dialog.c, - e-shell-folder-selection-dialog.c, e-shell-folder-title-bar.c, - e-shell-view.c, e-shell.c, e-shortcuts-view.c, e-shortcuts.c, - e-storage-set-view.c, e-storage-set-view.h, e-storage-set.c, - e-storage.c, evolution-local-storage.c, evolution-session.c, - evolution-shell-client.c, evolution-shell-component-client.c, - evolution-shell-component.c, evolution-shell-view.c, - evolution-storage-listener.c, evolution-storage.c, main.c: Fixed - the #include lines to deal properly with gal. - -2000-09-16 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c (e_shell_view_menu_setup): use datadir. - -2000-09-16 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.h: #include "bonobo-win.h", not "bonobo-app.h". - -2000-09-15 Dan Winship <danw@helixcode.com> - - * e-storage.c (get_path_for_physical_uri_foreach): foreach_data - should be set to the caller-supplied data, not the tree item data. - -2000-09-14 Iain Holmes <iain@helixcode.com> - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct): - Remove the *kludge* so that the button width is set properly. - Fixes bug #XXXX - -2000-09-14 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c: Remove sillies in toggle paths. - -2000-09-14 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c: move fn to bonobo. - -2000-09-14 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added $(GNOME_PRINT_LIBS) to evolution_LDADD. - -2000-09-14 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (e_shell_view_construct): prune cruft. - (shell_view_interface_unset_message_cb), - (shell_view_interface_set_message_cb): impl. - -2000-09-14 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c (e_shell_view_menu_setup): re-order to suit and - add freeze / thaw, update paths to toggles, remove warnings - -2000-09-07 Michael Meeks <michael@helixcode.com> - - * e-shell-view-menu.c: Re-hash pretty much the whole file - - * ui.xml: Add. - - * e-shell-view.c (e_shell_view_construct): connect unrealize & delete_event - to theit signals on the window (class_init): remove widget_class bits. - -2000-09-06 Michael Meeks <michael@helixcode.com> - - * e-shell.c (view_destroy_cb, destroy, e_shell_new_view, e_shell_quit): - update to track object type change. - - * e-shell.c (e_shell_restore_from_settings): ditto. - - * main.c (idle_cb): ditto. - - * e-shell-view.c (e_shell_view_new, e_shell_view_construct, setup_widgets): - updated for BonoboApp. - (progress_bar_timeout_cb, start_progress_bar, stop_progress_bar), - (shell_view_interface_set_message_cb, shell_view_interface_unset_message_cb): - emasculated for now. - - * e-storage-set-view.c (popup_folder_menu): disable popup menu for now. - -2000-09-13 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (popdown_transient_folder_bar): New. - (storage_set_view_box_button_release_event_cb): Rewritten to use - it. - (folder_selected_cb): Pop down the transient folder bar if the - folder bar mode is `TRANSIENT'. - -2000-09-12 Ettore Perazzoli <ettore@helixcode.com> - - * ($(IDL_GENERATED)): Stupid `orbit-idl' wants a space after the - `-I'. - -2000-09-12 Lauris Kaplinski <lauris@helixcode.com> - - * e-shell-view.c (update_folder_title_bar): Translate UTF-8 - -2000-09-12 Ettore Perazzoli <ettore@helixcode.com> - - * Makefile.am: Remove the `ui.xml' stuff. - -2000-09-11 Dan Winship <danw@helixcode.com> - - * main.c (main): Initialize libunicode - -2000-09-11 Christopher James Lahey <clahey@helixcode.com> - - * e-local-storage.c: Fixed some warnings. - -2000-09-11 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-folder-selection-dialog.c (set_default_folder): Work on - the assumption that @default_uri is not NULL. - (e_shell_folder_selection_dialog_construct): Only call if the - @default_uri is not NULL. - -2000-09-11 Ettore Perazzoli <ettore@helixcode.com> - - * e-local-storage.c (new_folder): Removed debugging message. - -2000-09-11 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.c (evolution_storage_new_folder): If - description is NULL, use the empty string instead. - - * e-local-storage.c (new_folder): New utility function to add a - new folder by keeping both the Bonobo interface and the EStorage - up-to-date. - (load_folders): Use it here instead of just - `e_storage_new_folder()'. - (component_async_create_folder_callback): Likewise. - - * e-shell-view.c (update_for_current_uri): Prevent an - EStorageSetView warning if the path is NULL. - - * evolution-storage.c (impl_Storage_add_listener): New, - implementation for `Evolution::Storage::add_listener'. - (evolution_storage_get_epv): Install it. - - * evolution-storage-listener.c - (evolution_storage_listener_corba_objref): New. - (create_servant): Create the servant with `g_new0()' instead of - `g_new()'. - -2000-09-11 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage-listener.c - (evolution_storage_listener_construct): Unset the `GTK_FLOATING' - flag as `EvolutionStorageListener' is self-owned. - -2000-09-11 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage.c (impl_list_folders): Removed. - (impl_get_subfolder_paths): New static function, implementation - for `::get_subfolder_paths'. - (class_init): Install it. - (e_storage_get_subfolder_paths): New. - - * e-storage.h: `list_folders' virtual method removed. New virtual - method `list_subfolder_paths'. - - * e-storage-set-view.c (etree_icon_at): If the folder is not - found, return NULL. - - * e-local-storage.c (bonobo_interface_set_display_name_cb): New - function, callback for the `set_display_name' signal on the - EvolutionLocalStorage. - (construct): Connect it. - - * e-storage-set-view.c (folder_changed_cb): New callback for the - "changed" signal emitted by the EFolders. It makes the model emit - the "changed" signal for the appropriate row. - (insert_folders): Connect it. - -2000-09-09 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c (etree_value_at): Return the name of the - folder or the storage instead of just returning the last segment - of the path. - - * e-storage-set.c (e_storage_set_get_folder): If the storage is - not found, just return NULL to avoid a g_warning. - -2000-09-09 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Fixed some warnings. - -2000-09-09 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (update_for_current_uri): Make sure `folder_name' - is always dynamically allocated, as we `g_free()' it. - -2000-09-08 Lauris Kaplinski <lauris@helixcode.com> - - * e-shell-view.c (update_for_current_uri): Translate UTF-8 string - -2000-09-08 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.c (list_through_listener_foreach): Don't crash - on nodes with no data. [The root node has none indeed.] - -2000-09-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-folder-tree.c (e_folder_tree_get_folder): Return NULL if there - is no folder with that @path, instead of segfaulting. - -2000-09-08 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.c: New member `folder_tree' in - `EvolutionStoragePrivate'. - (init): Initialize it. - (destroy): Destroy it. - (list_through_listener): New. - (add_listener): Use it to list all the current folders through the - listener. - (evolution_storage_new_folder): Add the thingie to the - `folder_tree'. - (evolution_storage_removed_folder): Remove the thingie from the - `folder_tree'. - -2000-09-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage.c: Replaced the `path_to_folder' GHashTable with an - EFolderTree named `folder_tree'. - (init): Updated accordingly. - (destroy): Updated accordingly. - (free_private): Removed. - (remove_folder): Removed. - (folder_new): Removed. - (folder_remove_subfolder): Removed. - (folder_add_subfolder): Removed. - (folder_destroy): Removed. - (get_parent_path): Removed. - (impl_list_folders): Reimplemented by using the `EFolderTree' - methods. - (e_storage_construct): Don't create the root folder here. - (get_path_for_physical_uri_foreach): Updated to be an - `EFolderTreeForeachFunc'. - (e_storage_get_path_for_physical_uri): Likewise, updated to use - `e_folder_tree_foreach()'. - (e_storage_new_folder): Updated to use the EFolderTree. - (e_storage_removed_folder): Likewise. - (folder_destroy_notify): New function, for the destroy - notification of `EFolder'. - - * evolution-storage-listener.c: Change the `servant' member in - `EvolutionStorageListenerPrivate' into an - `EvolutionStorageListenerServant'. - - * e-folder-tree.c: New. - * e-folder-tree.h: New. - -2000-09-08 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage-listener.c (create_servant): Return an - `EvolutionStorageListenerServant' instead of a - `POA_Evolution_StorageListener'. - (evolution_storage_listener_new): Add a cast accordingly. - - * evolution-storage.c (corba_class_init): Remove `NO_WARNINGS' - madness. - -2000-09-08 Christopher James Lahey <clahey@helixcode.com> - - * e-storage-set-view.c: Added base ETableModel functions. - - * evolution-storage-listener.c, evolution-storage.c: Fixed some - warnings. - -2000-09-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (set_owner_on_components): New. - (e_shell_construct): Call it after setting up the local storage. - - * e-component-registry.c (register_component): Don't set the owner - here. - - * evolution-shell-client.c - (evolution_shell_client_get_local_storage): New. - -2000-09-08 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-view.c (destroy): Chain to the parent's - destroy method. - - * evolution-shell-component.c (destroy): Chain to the parent's - destroy method. - - * evolution-storage.c: `corba_storage_listener' in - `EvolutionStoragePrivate' replaced with a list of listeners, - `corba_storage_listeners'. - (init): Init to NULL. - (add_listener): New utility function. - (destroy): Destroy all the listeners. - (evolution_storage_new_folder): Notify all the listeners. - (evolution_storage_removed_folder): Likewise. - - * e-local-storage.c: New member `bonobo_interface' in - `ELocalStoragePrivate'. - (init): Init to NULL. - (e_local_storage_get_corba_interface): New. - - * e-shell.c: New member `local_storage' in `EShellPrivate'. - (init): Init to NULL. - (setup_local_storage): Make it point to the newly created local - storage. - (destroy): Unref if not NULL. - (impl_Shell_get_local_storage): New, implementation for - `Evolution::Shell::get_local_storage'. - (corba_class_init): Set it up. - - * evolution-local-storage-client.c: New. - * evolution-local-storage-client.h: New. - * evolution-local-storage.c: New. - * evolution-local-storage.h: New. - * evolution-storage-listener.c: New. - * evolution-storage-listener.h: New. - - * Evolution-Storage.idl: New method `Storage::add_listener'. - - * Evolution-Shell.idl: New method `Shell::get_local_storage'. - - * Evolution-LocalStorage.idl: New. - -2000-09-02 Lauris Kaplinski <lauris@helixcode.com> - - * e-shell-folder-creation-dialog.c: Use e_utf8 wrappers - -2000-09-01 Chris Toshok <toshok@helixcode.com> - - * e-storage-set-view.c (removed_folder_cb): free node_data. - (removed_storage_cb): same. - (new_storage_cb): don't free the path we put in the node's - node_data. - (e_storage_set_view_set_current_folder): remove calls to - set_cursor_row (-1), and clean up a little bit. - -2000-09-01 Christopher James Lahey <clahey@helixcode.com> - - * e-local-storage.c: Strdup path when setting the callback data. - - * evolution-storage.c: Removed an unused variable. - -2000-08-31 Chris Toshok <toshok@helixcode.com> - - * e-shell-view.c (init): initialize delayed_selection = NULL; - -2000-09-01 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.c (evolution_storage_new_folder): Handle @path - as the full path. - - * e-storage.c (e_storage_new_folder): Consider @path to be the - full path, not the parent path. - * e-local-storage.c (load_folders): Updated accordingly. - - * Evolution-Storage.idl: Member `name' of `struct Folder' renamed - to `display_name'. - -2000-08-31 Chris Toshok <toshok@helixcode.com> - - * e-shell-view.c: add delayed_selection to _EShellViewPrivate. - (new_folder_cb): new function. check if the path is our - delayed_selection and if so, select it. - (folder_selected_cb): if the user selects something using a UI - gesture, clear out a pending delayed selection. - (e_shell_view_display_uri): if the uri isn't available, save it in - the delayed_selection field, and set up the new_folder signal. - -2000-08-29 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (shell_view_interface_set_message_cb): If the - message contains a newline, only display the part until the - newline, excluding the newline. Otherwise the status bar resizes - nastily. - -2000-08-28 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (setup_components): Removed the hardcoding of the - shell component IDs. Rather, do an OAF query looking for the - `Evolution::ShellComponent' interface and activate all the - components in the result. - (MAIL_COMPONENT_ID): Removed. - (CALENDAR_COMPONENT_ID): Removed. - (ADDRESSBOOK_COMPONENT_ID): Removed. - - * e-storage-set-view.c: Make `sort_model' static. - -2000-08-25 Chris Toshok <toshok@helixcode.com> - - * e-storage-set-view.c: convert to use ETree instead of GtkCTree. - - * e-storage-set-view.h: change superclass from GtkCTree to ETable. - - * main.c (main): call e_cursors_init. - - * Makefile.am (evolution_LDADD): add libetable.a - -2000-08-25 Peter Williams <peterw@helixcode.com> - - Silence some obvious assertions. - - * e-shell.c (e_shell_construct): Ref our shortcut bar to - sink it. Same with the folder_type_registry. - - * e-shell-folder-title-bar.c (destroy): Only attempt to unref - priv->icon if nonnull. - - * e-shell-view.c (update_folder_title_bar): Don't attempt to set - the folder_icon/_name if they're NULL. - -2000-08-24 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-component-client.c - (evolution_shell_component_client_new): Don't abort if the - component cannot be activated. Rather, just return NULL. - -2000-08-20 arik devens <arik@helixcode.com> - - * Makefile.am (evolution_LDADD): Added UNICODE_LIBS to link in the - new e-text stuff. - -2000-08-19 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-folder-title-bar.c: Fixed a warning. - -2000-08-19 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Fixed a warning. - -2000-08-18 Larry Ewing <lewing@helixcode.com> - - * e-shell-folder-title-bar.c (style_set_cb): update the pixmap - define E_USE_STYLES to disable the current darkening behavior - (destroy): free the icon. - (e_shell_folder_title_bar_construct): style_set_cb does everything - important now. - (e_shell_folder_title_bar_set_icon): actually store the pixbuf - when we set it so that we still have it if the style changes and - take care of refcounting them properly. - -2000-08-17 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c (menu_create_file): Make capitalization of - menu items consistent. - (menu_create_view): Likewise. - (menu_create_help): Likewise. - (e_shell_view_menu_setup): Create a component menu placeholder so - that components can add their own component-specific menus there. - (menu_create_actions): Removed. - (e_shell_view_menu_setup): Don't call it. - (menu_create_tools): Removed. - (e_shell_view_menu_setup): Don't call it. - (menu_create_settings): New. - (e_shell_view_menu_setup): Call it. - -2000-08-13 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (delete_event): New. Make the parent shell quit. - -2000-08-13 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (shell_view_interface_set_message_cb): Removed - debugging message. - (shell_view_interface_unset_message_cb): Likewise. - -2000-08-13 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c: New members `progress_bar_timeout_id', - `progress_bar_value' in `EShellViewPrivate'. - (init): Init them. - (destroy): If the timeout id is not zero, remove the associated - timeout. - (progress_bar_timeout_cb): New. - (start_progress_bar): New. - (stop_progress_bar): New. - (shell_view_interface_set_message_cb): If busy, start the progress - bar. Otherwise, stop it. - (shell_view_interface_unset_message_cb): Stop the progress bar. - - * e-shell-view.c (setup_widgets): Enable the progress bar in the - appbar. - - * e-shell-view.c (shell_view_interface_unset_message_cb): New - function, callback for the `EvolutionShellView::unset_message' - signal. - (shell_view_interface_set_message_cb): New function, callback for - the `EvolutionShellView::set_message' signal. - (setup_evolution_shell_view_interface): Connect these signals to a - newly created EvolutionShellView object, add ::add_interface this - object to the control's frame. - - * evolution-shell-view.c: New. - * evolution-shell-view.h: New. - - * Evolution-ShellView.idl: New interface. - -2000-08-10 Dan Winship <danw@helixcode.com> - - * Evolution-ShellComponent.idl: add "in string evolution_homedir" - to ShellComponent::set_owner's arguments. - - * e-shell.c (e_shell_get_local_directory): Expose local_directory. - - * e-component-registry.c (register_component): Pass the shell's - "local_directory" to the component as its evolution_homedir. - - * evolution-shell-component.c (impl_ShellComponent_set_owner): - Update to include evolution_homedir. - (class_init): Update signal prototype. - - * evolution-shell-component-client.c - (evolution_shell_component_client_set_owner): Update to include - evolution_homedir. - - * e-init.c: Remove. This wasn't being used. - -2000-08-10 Peter Williams <peterw@helixcode.com> - - * e-shell-view-menu.c (command_about_box): Add lil' ol' - me to the about box. - -2000-08-09 Christopher James Lahey <clahey@helixcode.com> - - * e-setup.c, e-shell.c: Fixed some warnings. - -2000-08-09 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Fixed a warning. - -2000-08-09 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c (menu_create_file_new): Create a placeholder - for the print items. - -2000-08-08 Dan Winship <danw@helixcode.com> - - * e-setup.c (e_setup): Check for ~/evolution/shortcuts.xml in - addition to ~/evolution, to make sure it's really the directory - we're expecting it to be. Also, convert from old-style config file - to new-style config directory. - -2000-08-04 Michael Meeks <michael@helixcode.com> - - * evolution-shell-component.c (impl_ShellComponent_populate_folder_context_menu): - unref. - - * e-shell.c (e_shell_construct): Remove erroneous refs on - folder_type_registry, storage_set. - - * e-shortcuts-view.c (destroy): unref the shortcuts, causing a - massive ripple chain ref-count reaction. - -2000-08-03 JP Rosevear <jpr@helixcode.com> - - * e-shell.h: Remove gconf references - - * e-shell-view.h: Remove gconf references - - * main.c (idle_cb): Remove gconf references - - * Makefile.am: Remove gconf cflags and libs - - * e-shell-view.c (e_shell_view_load_settings): Change to use - gnome-config - (e_shell_view_save_settings): ditto - - * e-shell.c (e_shell_restore_from_settings): Change to - use gnome_config - (save_settings_for_views): ditto - -2000-08-03 Michael Meeks <michael@helixcode.com> - - * e-shell-view.c (destroy): unref the UI handler. - -2000-08-03 Jeffrey Stedfast <fejj@helixcode.com> - - * e-shell-folder-selection-dialog.c (set_default_folder): Make - sure default_uri isn't NULL!! - -2000-08-03 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c (command_goto_folder): Just use the current - URI as the @default_uri parameter for - `e_shell_folder_selection_dialog_new()'. - - * evolution-session.c (class_init): Call `corba_class_init()'. - - * e-shell-folder-selection-dialog.c - (e_shell_folder_selection_dialog_new): @default_path renamed to - @default_uri. - (e_shell_folder_selection_dialog_construct): Likewise. If the - @default_uri is an `evolution:' one, use it as a path; if it is - different, assume it is a physical URI and consequently look for - the folder that has that physical URI and make it the default. - (set_default_folder): New helper function. - (e_shell_folder_selection_dialog_construct): Use it. - - * e-storage-set.c (e_storage_set_get_path_for_physical_uri): New. - - * e-storage.c (e_storage_get_path_for_physical_uri): New. - -2000-07-27 Dan Winship <danw@helixcode.com> - - * main.c (idle_cb): work with either gconf 0.5 or newer - -2000-07-26 Peter Williams <peterw@helixcode.com> - - * e-storage.c (e_storage_new_folder): Fix tiny mem leak. - -2000-07-26 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (disconnect_popup_signals): Disconnect the "map" - signal handler too. - -2000-07-25 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-folder-creation-dialog.c (add_folder_types): Work around - GtkOptionMenu utter brokenness by destroying the associated - Glade-built GtkMenu and creating a new one from scratch. - -2000-07-24 Dan Winship <danw@helixcode.com> - - * e-shell.c, main.c: Remove GOAD support. - - * evolution-shell-component-client.c: Remove GOAD support. - (evolution_shell_component_client_new): Give the "maybe - OAF_INFO_PATH" message if no oafinfo file was found, and give a - "consult previous error messages" message if the component was - found but not activated. Abort in either case. - -2000-07-23 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c: Converted to use `bonobo_ui_handler_*()' - stuff directly, instead of converting from GnomeUIInfo. - (command_quit): Update arg types for BonoboUIHandler. - (command_run_bugbuddy): Likewise. - (command_about_box): Likewise. - (command_new_task): Removed. - (command_new_journal_entry): Removed. - (menu_create_file_new): New. - (menu_create_file): New. - (menu_create_edit): New. - (menu_create_view): New. - (menu_create_tools): New. - (menu_create_actions): New. - (e_shell_view_menu_setup): Create menus using them instead of - converting from GnomeUIInfo. - -2000-07-22 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (e_shell_construct): Don't unref NULL shortcuts, you - idiot. - -2000-07-22 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (e_shell_view_set_folder_bar_mode): Make the - title bar non-clickable when the folder tree is visible. - - * e-shell-folder-title-bar.c: New members `button_arrow' and - `clickable' in `EShellFolderTitleBarPrivate'. Renamed `label' - into `button_label'. Added `label'. - (init): Init them. - (e_shell_folder_title_bar_construct): Pass a pointer to the title - bar as the user data for the "realize" signal. Create `label'. - (title_button_box_realize_cb): Use the `button_arrow' member - instead of using `gtk_object_{set,get}_data()'. - (setup_style): Set the style for `label' too. - (e_shell_folder_title_bar_set_clickable): New. - (e_shell_folder_title_bar_set_title): Set both `label' and - `button_label'. - -2000-07-21 Peter Williams <peterw@helixcode.com> - - * evolution-shell-client.c (user_select_folder): Don't use - g_main_loop to block the caller; this will break when - threads are enabled and GDK_THREADS_ENTER deadlocks. Use - gtk_main / gtk_main_exit to enter and exit the main loop, - which handles the recursive case correctly. - (impl_FolderSelectionListener_selected): Same. - (impl_FolderSelectionListener_cancel): Same. - (struct _FolderSelectionListenerServant): No more main_loop member. - -2000-07-21 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (storage_set_view_box_button_release_event_cb): - Set the toggle state to FALSE on the title bar. - - * e-shell-folder-title-bar.c: Signal "title_clicked" replaced by - "title_toggled". - (setup_style): Change the style for the button too. - (e_shell_folder_title_bar_construct): Use a GtkToggleButton, not a - GtkButton. - (e_shell_folder_title_bar_set_toggle_state): New. - -2000-07-21 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-folder-title-bar.c (create_icon_pixmap): New. Create a - small arrow-shaped GtkPixmap. - (title_button_box_realize_cb): New. Callback for the "realize" - signal of the button's inner box. - - * e-shell-view.c (title_bar_clicked_cb): New function, callback - for the "title_clicked" signal of the title bar. - (setup_widgets): Connect it. - - * e-shell-view.c: New member `storage_set_title_bar' in - `EShellViewPrivate'. - (setup_storage_set_subwindow): Set it. - - * e-shell-folder-title-bar.c: Use a GtkLabel instead of an - EClippedLabel for the title. - (title_button_clicked_cb): New. - (e_shell_folder_title_bar_construct): Put the label into a button. - Connect the button's "clicked" signal to - `title_button_clicked_cb'. - -2000-07-21 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-component.c - (impl_ShellComponent_populate_folder_context_menu): If the pointer - to the function to populate the folder context menu is NULL, don't - do anything. - -2000-07-21 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c (popup_folder_menu): New. Create a - BonoboUIHandler-managed pop-up menu, let the component fill it in - with `::populate_folder_context_menu', and display it. Then - destroy it with the associated BonoboUIHandler. - (handle_right_button_selection): New. - (handle_left_button_selection): New. This pops up the right-click - menu. - (button_release_event): Use them. - (init): Set the `GTK_BUTTON_SELECTS' flag for button #3's actions. - - * evolution-shell-component-client.c - (evolution_shell_component_client_populate_folder_context_menu): - New. - (evolution_shell_component_client_async_create_folder): Added - preconditions. - - * e-shell-view.c (e_shell_view_save_settings): Add missing cast. - - * evolution-shell-component.c: New member - `populate_folder_context_menu' in - `EvolutionShellComponentPrivate'. - (impl_ShellComponent_populate_folder_context_menu): New, - implementation for - `Evolution::ShellComponent::populate_folder_context_menu'. - (corba_class_init): Install it. - (evolution_shell_component_new): New arg - @populate_folder_context_menu. - (evolution_shell_component_construct): Likewise. - - * Evolution-ShellComponent.idl: New method - `::populate_folder_context_menu'. - -2000-07-20 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (e_shell_view_save_settings): Save the paned - positions. - (e_shell_view_load_settings): Restore them. - -2000-07-20 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (save_settings_for_views): New. Code moved out of - `e_shell_save_settings'. - (e_shell_save_settings): Use it. - (save_settings_for_component): New. - (save_settings_for_components): New. - (e_shell_save_settings): Use it, so that we make all the - components save settings too. - - * e-component-registry.c - (e_component_registry_get_id_list): New. - (e_component_registry_get_component_by_id): New. - - * Makefile.am (libeshell_a_SOURCES): Add - `evolution-shell-component-client' and `evolution-session'. - - * evolution-session.c: New. - * evolution-session.h: New. - - * Makefile.am (evolution_SOURCES): Removed files that were already - in `libeshell.a'. - - * Evolution.idl: #include <Evolution-Session.idl>. - - * Evolution-Session.idl: New. - -2000-07-20 Ettore Perazzoli <ettore@helixcode.com> - - * main.c (no_views_left_cb): Call `e_shell_quit()' on the shell - before getting out of the GTK+ main loop. - (view_delete_event_cb): Removed. - (idle_cb): Don't call it. - - * e-shell-view-menu.c (command_new_view): New, implementation of - the "New view" command. - -2000-07-16 Damon Chaplin <damon@helixcode.com> - - * e-shortcuts-view.c (e_shortcuts_view_construct): created a model - for the EShortcutBar. This will probably have to be moved to support - multiple views. - (class_init): #if'd out overriding the class functions. They don't - exist any more (they are in the model instead). - -2000-07-12 Christopher James Lahey <clahey@helixcode.com> - - * main.c: Fixed to match gconf API change. - -2000-07-10 Dan Winship <danw@helixcode.com> - - * main.c (development_warning): Update the message. - -2000-07-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-folder-title-bar.c (title_button_clicked_cb): - Temporarily `#if 0'ed out. - -2000-07-10 Dan Winship <danw@helixcode.com> - - * e-shell.c (impl_Shell_user_select_folder): Translate a - default_folder of "" into NULL (which can't be passed over CORBA). - -2000-07-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage.c (e_storage_new_folder): Removed debugging message. - - * e-storage-set.c (storage_new_folder_cb): Removed debugging - message. - -2000-07-10 Federico Mena Quintero <federico@helixcode.com> - - * e-shell-view.c (unrealize): As a quasi-hack, do a gdk_flush() - when the shell view is unrealized so that the DeleteEvent gets - sent to the remote plugs as soon as possible before we start - making other CORBA calls. The problem is that our CORBA pipe is - synchronous while our X pipe is asynch. We have to ensure - ordering for certain operations. This is NOT the correct and - complete fix, which should go in Bonobo. - -2000-07-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (e_shell_view_display_uri): Don't update the - current URI if there are problems creating a view for it. - (show_error): Remove. Not used anymore. - -2000-07-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c: Cleanup some unused menu items and added - "FIXMEs" for the ones we plan to add in the short term but are not - implemented yet. - (command_create_folder): Get rid of an unused variable. - -2000-07-07 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-client.c (user_select_folder): Fix small warning - by adding proper cast when filling in the CORBA sequence struct. - -2000-07-07 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (setup_corba_storages): Ref the CORBA storage - registry. - -2000-07-06 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.c: Removed `corba_storage_registry' member - from `EvolutionStoragePrivate'. - (destroy): Don't unref/release it. Call - `StorageListener::destroy' to notify that we are dead. - (evolution_storage_register): Don't ref and store the registry. - -2000-07-05 Dan Winship <danw@helixcode.com> - - * e-shell.c (e_shell_save_settings): Use the correct gconf path - (/apps, not /app), and call gconf_client_suggest_sync at the end. - (e_shell_restore_from_settings): Use the correct gconf path. - -2000-07-05 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c (command_goto_folder): Set the folder - selection dialog as transient for the shell view. - (command_create_folder): New, bound to the "Create folder" - command in the "File" menu. - -2000-07-01 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (impl_Shell_user_select_folder): New arg - @allowed_types. Pass it to the EShellFolderSelectionDialog. - Connect to the "cancelled" and "folder_selected" signals instead - of "clicked". - (corba_listener_destroy_notify): New callback. - (impl_Shell_user_select_folder): Associate it to the DestroyNotify - for the "corba_listener" GtkObject data, so we don't leak it. - (folder_selection_dialog_clicked_cb): Don't release the listener - interface here. - (folder_selection_dialog_cancelled_cb): New callback for the - "cancelled" signal. - (folder_selection_dialog_folder_selected_cb): New callback for the - "folder_selected" signal. - - * e-shell-view-menu.c (command_goto_folder): Don't connect to - "clicked". Connect to "cancelled" and "folder_selected" instead. - (folder_selection_dialog_cancelled_cb): New, callback for the - "cancelled" signal. - (folder_selection_dialog_folder_selected_cb): New, callback for - the "folder_selected" signal. - - * e-shell-folder-selection-dialog.c New members `allowed_types', - `storage_set' in `EShellFolderSelectionDialogPrivate'. - (class_init): Install signals "folder_selected", "cancelled". - (init): Init to NULL. - (impl_destroy): Free/unref them. - (e_shell_folder_selection_dialog_new): New arg @allowed_types. - (e_shell_folder_selection_dialog_construct): New arg - @allowed_types. Initialize `priv->allowed_types' from it. - (check_folder_type): New function. Check if the selected folder - is of the appropriate type and, if not, return FALSE and pop up an - error dialog. Otherwise, return TRUE. - (impl_clicked): Use `check_folder_type()' to check if the folder - type is OK. If it is not, stop emission of the "clicked" signal. - - * e-shell-folder-selection-dialog.h: New signals - "folder_selected", "cancelled". - - * evolution-shell-client.c - (evolution_shell_client_user_select_folder): New arg - @allowed_types. - (user_select_folder): New arg @allowed_types. Pass this to the - ::user_select_folder method. - - * Evolution-Shell.idl: New arg @required_types in - ::user_select_folder. - -2000-07-01 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (setup_components): Don't ref the component registry. - -2000-06-30 Dan Winship <danw@helixcode.com> - - * Evolution-Shell.idl: add "cancel" to FolderSelectionListener. - - * evolution-shell-client.c (impl_FolderSelectionListener_cancel): - Implement cancel (set *uri and *physical_uri to NULL). - (evolution_shell_client_user_select_folder): document %NULL uri - and physical_uri return values. - - * e-shell.c (folder_selection_dialog_clicked_cb): If the user - clicked "Cancel" or used the wm to close the dialog, call _cancel - instead of _selected. - -2000-06-30 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-component.c (impl_ShellComponent_set_owner): - Duplicate the object before storing it, you doofus. - -2000-06-30 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-component.c (impl_ShellComponent_unset_owner): - NULL the owner_client. - -2000-06-30 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-client.h - (evolution_shell_client_user_select_folder): Add prototype. - -2000-06-29 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-component.c: New member `owner_client'. Removed - member `corba_owner'. All the code updated to use it. - (evolution_shell_component_get_owner): Changed so that it returns - an EvolutionShellClient instead of the raw CORBA object. - - * evolution-shell-component.h: Change signal "owner_set" to get an - EvolutionShellClient wrapper instead of a CORBA interface. - - * evolution-shell-client.c: New. - * evolution-shell-client.h: New. - -2000-06-29 Dan Winship <danw@helixcode.com> - - * evolution-shell-component-client.c - (evolution_shell_component_client_new): Update warning message to - not say "CRASHING", since it won't if you have current bonobo. - -2000-06-29 Peter Williams <peter@beta.newton.cx> - - * e-shell.c (e_shell_restore_from_settings): Check for the - insanely invalid NumberOfViews = 0 case. - -2000-06-29 Peter Williams <peter@helixcode.com> - - * e-shell.c (e_shell_construct): Ref the various E-things that - we create to go with our unrefs in the destructor. - -2000-06-29 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (e_shell_view_construct): Don't ref the shell. - (destroy): Don't unref the shell. - -2000-06-29 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts.c (e_shortcuts_construct): Fix typo: @shortcuts - should unset `GTK_FLOATING', not @storage_set. - - * e-shell-view.c (get_storage_set_path_from_uri): If @uri is NULL, - return NULL. - - * main.c (idle_cb): Restore the shell from the settings. If this - fails, just create a new view. - - * e-shell.c (e_shell_save_settings): New. - (e_shell_quit): Save settings before exiting. - (e_shell_restore_from_settings): New. - - * e-shell-view.c (e_shell_view_save_settings): New. - (e_shell_view_load_settings): New. - - * main.c (idle_cb): Initialize Gconf, create the GConfClient and - pass it to `e_shell_new()'. - - * e-shell.c: New member `gconf_client' in `EShellPrivate'. - (destroy): Unref it if not NULL. - (init): Init to NULL. - (e_shell_new): New param @gconf_client. - (e_shell_construct): Likewise. - - * Makefile.am (INCLUDES): Add `GCONF_CFLAGS'. - -2000-06-27 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct): - Enable the title bar button. - -2000-06-27 Michael Zucchi <zucchi@zedzone.mmc.com.au> - - * e-shell.c (folder_selection_dialog_clicked_cb): Close the dialog - when done. Dont do anything if 'new' was pressed, and always - return empty strings if 'cancel' was pressed. - -2000-06-27 Michael Zucchi <zucchi@zedzone.mmc.com.au> - - * e-shell.c (impl_Shell_user_select_folder): Set the listener as - the corba_listener data, not the shell. - -2000-06-26 Christopher James Lahey <clahey@helixcode.com> - - * glade/Makefile.am: Added EXTRA_DIST for make distcheck. - -2000-06-19 Ettore Perazzoli <ettore@helixcode.com> - - * e-local-storage.c: Don't #define POSIX_SOURCE at all; this is - not needed anymore as we no longer use `readdir_r'. - -2000-06-19 Chris Toshok <toshok@helixcode.com> - - * e-local-storage.c: #undef _POSIX_SOURCE after including - dirent.h. this breaks the build on freebsd if we leave it - #defined. go figure. - -2000-06-19 Dan Winship <danw@helixcode.com> - - * evolution-shell-component-client.c - (evolution_shell_component_client_new): Add a warning before - crashing due to a known bug when it can't activate a component, so - people don't have to waste any time trying to figure out what's - up. - -2000-06-13 Ettore Perazzoli <ettore@helixcode.com> - - * Makefile.am: Compile the CORBA-built files, - evolution-shell-component.c and evolution-storage.c into a - separate `libeshell.a' library. Link the `evolution' executable - to it. Also cleaned up a bit and got rid of the `CPP_FLAGS' - assignment. - -2000-06-12 Michael Meeks <michael@helixcode.com> - - * e-shell-folder-selection-dialog.c: include gnome-dialog.h - (PARENT_TYPE): GNOME_TYPE_DIALOG replaced with gnome_dialog_get_type. - -2000-06-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (impl_Shell_user_select_folder): New, implementation - for `Shell:user_select_folder'. - (corba_class_init): Install it. - (folder_selection_dialog_clicked_cb): Callback for the folder - selection dialog. - - * Evolution-Shell.idl: New method `Shell::user_select_folder'. - New interface `FolderSelectionListener'. - - * glade/e-shell-folder-creation-dialog.glade: Make it larger. - - * e-shell-folder-creation-dialog.h: Fix typo: #include - <gtk/gtkwindow.h>, not <gtk/gtkwidget.h>. - - * e-shell-view-menu.c: Added "Go to folder..." command. - (commmand_goto_folder): Implementation for it. - - * e-shell-folder-selection-dialog.c: New. - * e-shell-folder-selection-dialog.h: New. - -2000-06-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-local-folder.c (save_metadata): Don't set the description in - the XML file if null. Compute the physical path correctly. - - * e-folder.c (e_folder_construct): Allow NULL description. - - * evolution-shell-component-client.c (init): Initalize - `listener_interface' to `CORBA_OBJECT_NIL' and `listener_servant' - to NULL. - (create_listener_interface): Return void and set the `servant' and - `listener_servant' fields directly. - (evolution_shell_component_client_async_create_folder): Updated - accordingly. - - * e-shell-folder-creation-dialog.c: New struct `DialogData' to be - passed to the dialog's callbacks. - (dialog_data_destroy): New. - (e_shell_show_folder_creation_dialog): Set up a `DialogData' - object and pass it as the data for the signals. - (shell_destroy_cb): New handler for the "destroy" signal on the - shell. - (e_shell_show_folder_creation_dialog): Connect it. - (dialog_destroy_cb): New handler for the "destroy" signal on the - dialog; it frees the associated `DialogData'. - (e_shell_show_folder_creation_dialog): Connect it. - (async_create_cb): New function, callback for the async folder - creation function. - (entry_name_is_valid): New function to check if the entered folder - name is valid. - (dialog_clicked_cb): Check if the specified folder name is valid - and, if so, asynchronously create the new folder. - (add_folder_types): Set "type_name" data on each menu item. - - * e-storage-set-view.c (e_storage_set_view_get_current_folder): - New function. - - * e-storage-set.c (get_storage_for_path): New helper function. - (e_storage_set_get_folder): Use it. - - * e-storage.c (e_storage_async_create_folder): Renamed from - `e_storage_create_folder'. - (e_storage_remove_folder): Renamed from `e_storage_remove_folder'. - (impl_create_create_folder): Renamed from `impl_create_folder'. - (impl_create_remove_folder): Renamed from `impl_remove_folder'. - (class_init): Updated accordingly. - (e_storage_result_to_string): New function. - - * e-storage.h: `::create_folder' renamed to - `::async_create_folder'. `::remove_folder' renamed to - `::async_remove_folder'. - - * evolution-shell-component.h: Return type of - `EvolutionShellComponentCreateFolderFn' and - `EvolutionShellComponentRemoveFolderFn' changed to `void'. - - * e-local-storage.c: `EComponentRegistry component_registry' - replaced with `EFolderTypeRegistry folder_type_registry' in - `ELocalStoragePrivate' - (component_async_create_folder_callback): New function, to handle - the callback from EvolutionShellComponent. - (construct): Likewise. - (e_local_storage_open): Replaced @component_registry with - @folder_type_registry. - (impl_create_folder): Implemented. - - * e-local-folder.c (e_local_folder_new): New. - (e_local_folder_construct): New. - (e_local_folder_save): Precondition: physical URI is not NULL. - (save_metadata): Unlink the metadata file if `xmlSaveFile()' - fails. - - * e-storage.c (e_storage_create_folder): Precondition: @path is - absolute. - (e_storage_remove_folder): Likewise. - -2000-06-09 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c: Removed folder menu and "save as..." command. - - * main.c (main): Call `glade_gnome_init()'. - - * e-shell-view-menu.c (command_new_folder): Implemented. - - * e-shell-folder-creation-dialog.c: New. - * e-shell-folder-creation-dialog.h: New. - - * glade/Makefile.am: New. - * glade/e-shell-folder-creation-dialog.glade: New. - - * e-shell-view.c (e_shell_view_get_current_uri): New. - - * e-folder-type-registry.c - (e_folder_type_registry_get_type_names): New. - - * e-shell-view.c (get_control_for_uri): Updated to use - `EvolutionShellComponentClient'. - - * e-folder-type-registry.c: Use `EvolutionShellComponentClient's - instead of `BonoboObjectClient's. - - * e-component-registry.c: Use `EvolutionShellComponentClient' - instead of `BonoboObjectClient' in `Component'. - (component_new): Updated accordingly. - (register_component): Likewise. - - * evolution-shell-component-client.h: New. - * evolution-shell-component-client.c: New. - - * evolution-shell-component.c - (impl_ShellComponent_async_create_folder): New, implementation of - `::async_create_folder'. - (impl_ShellComponent_async_remove_folder): New, implementation of - `::async_remove_folder'. - (corba_class_init): Install them. - (evolution_shell_component_new): New args `create_folder_fn' and - `remove_folder_fn' for setting the handlers for these new methods. - (evolution_shell_component_construct): Likewise. - - * Evolution-ShellComponent.idl - (ShellComponent::async_create_folder): New. - (ShellComponent::async_remove_folder): New. - (ShellComponentListener): New. - - * evolution-shell-component.c (impl_ShellComponent_create_view): - New param @type. Use the new `EvolutionShellComponentCreateViewFn'. - - * evolution-shell-component.h: New enum `EvolutionShellComponentResult'. - Changed `EvolutionShellComponentCreateViewFn' to return an - `EvolutionShellComponentResult'. - - * e-shell-view.c (get_control_for_uri): Pass the folder type to - `ShellComponent::create_view'. - - * Evolution-ShellComponent.idl: New param @type for - `ShellComponent::create_view'. - -2000-06-08 Miguel de Icaza <miguel@helixcode.com> - - * main.c (development_warning): Use version here. Add padding to - the message. - Only destroy object if its window was not closed. - -2000-06-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (setup_bonobo_ui_handler): Oops. Don't create - the toolbar. This was not supposed to be committed. - -2000-06-07 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage.c (folder_destroy): Don't destroy the subfolders. - (remove_folder): New helper function. - (free_private): Use it. - (e_storage_removed_folder): Use it here too. - (folder_destroy): Don't unref the EFolder if NULL. - - * e-storage-set-view.c (e_storage_set_view_construct): Use - `gtk_signal_connect_while_alive()' instead of just - `gtk_signal_connect()' so that the signal handler is automatically - removed when we are destroyed. - - * e-storage-set.c (e_storage_set_remove_all_storages): New - function. - - * e-shell-view.c (e_shell_view_construct): Use `bonobo_object_ref' - on the shell instead of `gtk_object_ref'. - (destroy): Unref the shell. - - * e-local-storage.h: #include "e-component-registry.h". - - * e-shell.c (setup_local_storage): Renamed from `setup_storages'. - Only set up the local storage, not the CORBA one, and don't create - the storage set. - (e_shell_construct): Create the storage set here instead. Call - `setup_local_storage' after setting up the components. - - * e-local-storage.c: New member `component_registry' in - `ELocalStoragePrivate'. - (init): Init to NULL. - (destroy): If not null, unref it. - (e_local_storage_open): New arg @component_registry. - (construct): New arg @component_registry. Init - `priv->component_registry' from it. - - * e-local-storage.c (impl_get_name): Renamed from `get_name'. - (impl_create_folder): New function, implementing - `EStorage::create_folder'. Just a stub for now. - (impl_remove_folder): New function, implementing - `EStorage::remove_folder'. Just a stub for now. - (class_init): Install these stub implementations. - - * e-storage.c (e_storage_remove_folder): New function. - (e_storage_create_folder): New function. - (impl_create_folder): New function, default implementation for - `::create_folder'. - (impl_remove_folder): New function, default implementation for - `::remove_folder'. - (class_init): Install the implementations. - - * e-storage.c (impl_get_name): Renamed from `get_name'. - (impl_get_folder): Renamed from `get_folder'. - (impl_list_folders): Renamed from `list_folders'. - - * e-storage.h: New virtual methods `remove_folder', - `create_folder'. - - * e-storage.c (e_storage_removed_folder): Renamed from - `e_storage_remove_folder'. - * e-corba-storage.c (impl_StorageListener_removed_folder): Updated - accordingly. - -2000-06-02 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (setup_bonobo_ui_handler): Create the default toolbar. - -2000-06-02 Jeffrey Stedfast <fejj@helixcode.com> - - * e-shell-view-menu.c: Changed "Using the Shell" to "Getting Started" - -2000-06-02 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Free the uri variable. - - * e-shell.c: Free the local_directory variable. - -2000-06-02 Ettore Perazzoli <ettore@helixcode.com> - - * main.c (view_delete_event_cb): New callback for the - "delete_event" on the view. - (idle_cb): Connect it. - -2000-06-01 Christopher James Lahey <clahey@helixcode.com> - - * e-storage-set-view.c (set_e_shortcut_selection): Added a - g_return_if_fail check. - -2000-06-01 Dan Winship <danw@helixcode.com> - - * e-shell-view-menu.c (command_help): New menu callback to launch - the help browser. - (menu_help): add pointers to the users' guide. - (e_shell_view_menu_setup): Add the help menu stuff to the uih. - - * main.c (main): Set up gettext. (Problem noted by Héctor García - Alvarez) - -2000-06-01 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (DEFAULT_WIDTH): Add more 5 pixels. - -2000-06-01 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (DEFAULT_WIDTH): Made the default window a bit - narrower. - (DEFAULT_HEIGHT): And shorter. - (setup_widgets): Set the border width of the vbox that holds the - title bar to 2 pixels, so that the view looks a bit nicer. - -2000-06-01 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (DEFAULT_TREE_WIDTH): Made the tree 150 pixel - wide [instead of 100]. - (setup_widgets): Use `DEFAULT_TREE_WIDTH' instead of - `DEFAULT_SHORTCUT_BAR_WIDTH' where appropriate. - (e_shell_view_construct): Hide the folder bar by default. - - * e-storage-set-view.c (e_storage_set_view_construct): Set - auto-resize mode for column one. - -2000-06-01 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view-menu.c (e_shell_view_menu_setup): Set the - statusbar. - - * e-shell-view.c: New member `appbar' for `EShellViewPrivate'. - (init): Initialize to NULL. - (setup_widgets): Install a status bar and set `appbar' to point to - it. - (setup_bonobo_ui_handler): Make the BonoboUIHandler use `appbar' - as its statusbar. - (e_shell_view_get_appbar): New function. - (e_shell_view_construct): Set up the BonoboUIHandler after setting - up the widgets. - - * e-shortcuts.c (class_init): Add new signals "new_shortcut", - "removed_shortcut", "new_group", "removed_group". - (e_shortcuts_remove_shortcut): Emit "remove_shortcut". - (e_shortcuts_add_shortcut): Emit "new_shortcut". - (e_shortcuts_remove_group): Emit "remove_group". - (e_shortcuts_add_group): Emit "new_group". - (unload_shortcuts): Emit "remove_group" for all the groups. - - * e-shortcuts.h: New signals "new_shortcut", "removed_shortcut", - "new_group", "removed_group". - - * e-shortcuts-view.c (pop_up_right_click_menu): New function to - pop up the right-click menu for the shortcut bar. - (pop_up_right_click_menu_for_shortcut): New function. - (selected_item): Pop up right click menu when appropriate. Don't - activate the shortcut when right-clicking. - -2000-05-31 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.h: #include 'Evolution.h". - -2000-05-31 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c (show_error): Use `set_current_notebook_page()' - instead of `gtk_notebook_set_page()'; this will also deactivate - the current control properly. - - * e-shell-view-menu.c (e_shell_view_menu_setup): Initialize the - state of the shortcut/folder toggle menu items using - `e_shell_view_get_shortcut_bar_mode()' and - `e_shell_view_get_folder_bar_mode()'. - (command_toggle_shortcut_bar): Removed debugging message. - (command_toggle_folder_bar): Likewise. - - * e-shell-view.c (e_shell_view_get_shortcut_bar_mode): New - function. - (e_shell_view_get_folder_bar_mode): New function. - -2000-05-31 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c: New constant `DRAG_RESISTANCE'. New - members `button_x', `button_y' in `EStorageSetViewPrivate'. - (init): Initialize to zero. - (button_press_event): Set. - (motion_notify_event): Don't start drag unless the current x/y - position is farther than `DRAG_RESISTANCE', in any of the two - directions, from the original position of the button click. - (button_release_event): Always ungrab the pointer, even if - `selected_row_path' is NULL. - -2000-05-31 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-shell-component.c (class_init): Eeek! - s/owner_set/owner_unset/. - - * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct): - Increase the size of the border of the hbox slightly to make the - title bar a bit nicer. - -2000-05-31 Ettore Perazzoli <ettore@helixcode.com> - - * e-component-registry.c (component_free): Invoke `::unset_owner' - on the component before releasing it. - - * evolution-shell-component.c (class_init): Install the - "owner_set" signal. - (impl_ShellComponent_unset_owner): New function, implementation of - `ShellComponent::unset_owner'. - (corba_class_init): Install it. - - * evolution-shell-component.h: New signal "owner_unset". - - * Evolution-ShellComponent.idl: New method `ShellComponent:: - unset_owner'. - - * e-shell.c (e_shell_quit): Destroy all the views explicitly. - - * e-shell-view-menu.c: Changed `Show shortcut bar' and `Show - folder tree' items into toggle items. - (shortcut_bar_mode_changed_cb): New callback to update the status - of the "show shortcut bar" toggle item when the shortcut bar is - hidden/shown in the view. - (folder_bar_mode_changed_cb): Likewise for the folder bar. - (e_shell_view_menu_setup): Connect these to the corresponding - signals on the shell. - - * e-shell-view.c: New members `shortcut_bar_mode' and - `folder_bar_mode' in `EShellViewPrivate'. - (init): Initialize `shortcut_bar_mode' and `folder_bar_mode' to - `E_SHELL_VIEW_SUBWINDOW_HIDDEN'. - (class_init): Add the new signals. - (e_shell_view_set_shortcut_bar_mode): Renamed from - `e_shell_view_show_shortcuts'. Emit "shortcut_bar_mode_changed" - and update the `shortcut_bar_mode' member. - (e_shell_view_set_folder_bar_mode): Renamed from - `e_shell_view_show_folders'. Emit "folder_bar_mode_changed" and - update the `folder_bar_mode' member. - - * e-shell-view.h: New signals "shortcut_bar_mode_changed", - "folder_bar_mode_changed". - - * e-shell-view.c (setup_menus): Removed. - (e_shell_view_construct): Use `e_shell_view_menu_setup' instead. - (e_shell_view_get_bonobo_ui_handler): New function. - - * e-shell-view-menu.c (e_shell_view_menu_setup): New. - - * e-shell.c (impl_Shell_get_component_for_type): New function, - implementation of `Evolution::Shell::get_component_for_type'. - (corba_class_init): Install it into the EPV. - - * Evolution-Shell.idl: Added method `get_component_for_type'. - -2000-05-30 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts.c: New members `dirty', `save_idle_id' in - `EShortcutsPrivate'. - (init): Initialize. - (destroy): If the idle ID is nonzero, remove the idle. If `dirty' - is true, save. - (idle_cb): New. - (schedule_idle): New. - (make_dirty): New. - (e_shortcuts_remove_shortcut): Call it. - (e_shortcuts_add_shortcut): Likewise. - (e_shortcuts_remove_group): Likewise. - (e_shortcuts_add_group): Likewise. - - * e-shell.c (e_shell_construct): Updated to match the `EShortcuts' - API changes. - - * e-shortcuts.c: New member `file_name' in `EShortcutsPrivate'. - (init): Init to NULL. - (destroy): Free it. - (e_shortcuts_load): Removed. - (e_shortcuts_save): Removed. - (e_shortcuts_new): New arg @file_name. Load from the specified - file name. - - * e-shortcuts-view.c (added_item): New method implementation. - (removed_item): New method implementation. - (added_group): New method implementation. - (removed_group): New method implementation. - (class_init): Install these. - - * e-shortcuts.c (e_shortcuts_remove_shortcut): New function. - (e_shortcuts_add_shortcut): New function. - (e_shortcuts_remove_group): New function. - (e_shortcuts_add_group): New function. - - * e-shell-view.c: New member `view_title_bar' in - `EShellViewPrivate'. - (setup_widgets): Put an EShellFolderTitleBar on top of the tree - view and the content view. - (update_window_icon): Renamed from `set_icon'. - (update_folder_title_bar): New. - (popup_tree): New function to pop up the tree view when the title - button in the title bar is clicked. - (folder_title_clicked_cb): New callback for the "clicked" signal - of EShellFolderTitleBar. - (setup_widgets): Don't add a title bar to the shortcut bar. - (create_storage_set_subwindow): New helper function. - (setup_widgets): Use it. - (show_error): Use an EClippedLabel instead of a GtkLabel. - - * e-shell-view.c: Replaced all the occurences of `gpointer' with - `void *' for consistency. - - * e-shell-folder-title-bar.c: New file. - * e-shell-folder-title-bar.h: New file. - - * e-storage-set-view.c (e_storage_set_view_construct): Ooops. Fix - inverted key/value pair in the call to `g_hash_table_insert()'. - -2000-05-28 Dan Winship <danw@helixcode.com> - - * main.c (main): Remove extra free of evolution_directory. - -2000-05-28 Ettore Perazzoli <ettore@helixcode.com> - - * evolution-storage.c (evolution_storage_register): Use the - storage's name when registering. - -2000-05-26 Matt Loper <matt@helixcode.com> - - * e-shell-view-menu.c (command_about_box): Make authorlist more - alphabetical. - (command_show_treeview): New function; shows the treeview, when it - has been hidden. - (command_show_shortcut_bar): New function; shows the shortcut bar, - when it's been hidden. - -2000-05-26 Ettore Perazzoli <ettore@helixcode.com> - - * e-corba-storage.c (impl_StorageListener_new_folder): Set the - physical URI on the folder using `e_folder_set_physical_uri()'. - - * e-local-folder.c (get_physical_uri): Removed. - (construct_loading_metadata): Use EFolder's `physical_uri' field - instead of ours, which is gone. - (save_metadata): Likewise. - (destroy): Don't free. - - * e-local-folder.h: Removed `physical_uri' from `ELocalFolder'. - - * e-folder.c: New member `physical_uri' in `EFolderPrivate'. - (init): Initialize to NULL. - (destroy): Free it. - (get_physical_uri): Removed. - (e_folder_set_physical_uri): New function. - - * e-storage-set.c (e_storage_set_get_folder): Fix off-by-one error - in extracting the base name. - - * e-storage.c: New member `path' in `Folder'. - (folder_destroy): Free it. - (folder_new): New arg. Initialize `path' from it. - (e_storage_construct): Updated accordingly. - (e_storage_new_folder): Likewise. - (e_storage_remove_folder): Remove the folder from the hash. - - * e-storage-set-view.c (remove_node): New function. - (removed_storage_cb): Use it. - (new_folder_cb): New function, callback for the "new_folder" - signal on the EStorageSet. - (removed_folder_cb): New function, callback for the - "removed_folder" signal on the EStorageSet. - (e_storage_set_view_construct): Connect these signal handlers to - the respective signals on our model storage. - - * e-storage-set.c (storage_new_folder_cb): New function, callback - for the "new_folder" signal on the storages. - (storage_removed_folder_cb): New function, callback for the - "removed_folder" signal on the storages. - (e_storage_set_add_storage): Connect them to the signals of the - storage being added. - - * e-corba-storage-registry.c - (impl_StorageRegistry_register_storage): Throw an exception if - `e_storage_set_add_storage()' returns false. - - * e-shell.c (setup_storages): Unref the local storage after adding - to the storage set. - - * e-corba-storage-registry.c - (impl_StorageRegistry_register_storage): Unref the storage after - adding to the storage set. - - * e-storage-set.c: New hash table `name_to_named_storage' in - `EStorageSetPrivate'. - (named_storage_new): New helper function. - (named_storage_destroy): New helper function. - (e_storage_set_add_storage): Use the hash table. Return value - changed to `gboolean'. Return FALSE if there is a storage with - that name already. Also, ref the storage. - (e_storage_set_remove_storage): Likewise [but of course don't ref - the storage]. - (e_storage_set_get_storage): Use the `name_to_named_storage' hash - table. - (destroy): Destroy the `name_to_named_storage' hash. - - * e-storage-set.h: New signals "new_folder", "removed_folder". - - * e-storage.c (e_storage_get_watcher_for_path): Removed. - (get_watcher_for_path): Removed. - (class_init): Install signals "new_folder" and "removed_folder". - (e_storage_remove_folder): Emit "removed_folder". - (e_storage_new_folder): Emit "new_folder". - - * e-storage.h: Removed method `get_watcher_for_path'. New signals - "new_folder", "removed_folder". - - * e-storage-watcher.c: Removed. - * e-storage-watcher.h: Removed. - - * e-corba-storage-registry.c (corba_class_init): Set the - Bonobo_Unknown evp parts. - - * evolution-storage.c: New. - * evolution-storage.h: New. - - * evolution-shell-component.c - (evolution_shell_component_get_owner): New. - - * e-storage-set-view.c (new_storage_cb): New function. - (e_storage_set_view_construct): Connect to the "new_storage" - signal on the EStorageSet. - (removed_storage_cb): New function. - (e_storage_set_view_construct): Connect to the "removed_storage" - signal on the EStorageSet. - - * e-storage-set-view.c (e_storage_set_view_construct): Make this - always look pretty, with Helix GNOME or without. - -2000-05-25 Christopher James Lahey <clahey@helixcode.com> - - * e-storage-set-view.c: Make this always look pretty, with Helix - GNOME or without. - -2000-05-25 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c (e_storage_set_view_construct): Set the - dotted line type again. Dotted is less butt-ugly than continuous. - - * e-shell-view.c (show_error): Display page zero in the notebook. - - * main.c (idle_cb): Renamed from `new_view_idle_cb'. Create the - EShell object here, because now the shell depends on the GLib loop - to be running for correct operation. - (main): Don't create the EShell here. - - * e-storage-set-view.c (get_pixmap_and_mask_for_folder): If the - icon is not found, set the returned pixmap and mask to NULL. - - * e-shell.c (e_shell_construct): Added precondition: @corba_object - must be non-nil. - (e_shell_new): Added precondition: @local_direcory must be - non-null. - - * evolution-shell-component.c: New. - * evolution-shell-component.h: New. - - * e-shell.c: New member `component_registry' in `EShellPrivate'. - (init): Initialize to NULL. - (destroy): Unref it. - (setup_components): New function to set up the compnent registry - and initialize the mail, calendar and addressbook components. - (e_shell_construct): Call it. - - * e-storage-set.c: Updated to use EFolderTypeRegistry. - * e-storage-set.h: Likewise. - * e-shortcuts.c: Likewise. - * e-shortcuts.h: Likewise. - * e-shell.c: Likewise. - - * e-shell.h: Likewise. - * e-shell-view.c: Likewise. - * e-shortcuts-view.c: Likewise. - * e-storage-set-view.c: Likewise. - - * e-component-registry.c: New. - * e-component-registry.h: New. - - * e-folder-type-registry.c: New. - * e-folder-type-registry.h: New. - - * e-folder-type-repository.c: Removed. - * e-folder-type-repository.h: Removed. - - * Evolution-ShellComponent.idl: New struct `FolderType'; new type - `FolderTypeList'. New attribute `supported_types'. - (ShellComponent::set_owner): Renamed from `set_shell'. - (ShellComponent::create_view): New. - -2000-05-24 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Was using the wrong include here. - - * e-storage-set-view.c: Got rid of the lines in the tree view. - -2000-05-24 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added libepaned.a. - - * e-shell-view.c: Switched from GtkPaned to EPaned. - -2000-05-23 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c: New member `corba_storage_registry' in - `EShellPrivate'. - (init): Initialize it to NULL. - (destroy): Unref it if not NULL. - (setup_corba_storages): New function to set up the CORBA storage - registry and `bonobo_object_add_interface()' it to the shell. - (setup_storages): Call it from here. - - * e-shell.h, e-shell.c: Derive EShell from BonoboObject instead of - GtkObject. - - * e-storage.c (e_storage_remove_folder): Return value changed into - `gboolean'; return false if an error occurs, true otherwise. - (e_storage_new_folder): Likewise. - - * e-corba-storage-registry.c: New. - * e-corba-storage-registry.h: New. - - * e-corba-storage.c: New. - * e-corba-storage.h: New. - - * Evolution.idl: Include the new IDLs, but no - `evolution-service-repository.idl' anymore. - - * Evolution-Shell.idl: New. - * Evolution-ShellComponent.idl: New. - * Evolution-Storage.idl: New. - - * evolution-service-repository.idl: Removed. - * evolution-service-repository.c: Removed. - * evolution-service-repository.h: Removed. - - * e-folder-type-repository.c (folder_type_new): Free `icon_path'. - -2000-05-18 Dan Winship <danw@helixcode.com> - - * main.c (new_view_idle_cb): add development_warning (moved from - mail component) - -2000-05-16 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c: Get rid of the `ICON_WIDTH' and - `ICON_HEIGHT' #defines. - (get_pixmap_and_mask_for_folder): Get the mini icon instead of the - big one. Use `E_SHELL_MINI_ICON_SIZE' instead of `ICON_WIDTH' and - `ICON_HEIGHT'. - - * e-folder-type-repository.c: New member `mini_icon_pixbuf' in - `FolderType'. - (folder_type_new): Initialize `mini_icon_pixbuf' by loading the - mini icon if possible. If the mini icon is not found, resort to - the big one. - (folder_type_free): Unref the mini icon. - (e_folder_type_repository_get_icon_for_type): New arg @mini. If - true, return the mini icon instead of the standard one. - - * e-shell-view.c (set_icon): Get the mini icon instead of the big - one by using `e_shell_get_icon_path's @try_mini arg. - - * e-shell-constants.h: New file. - - * e-shell-utils.c - (e_shell_get_icon_path): New arg @try_mini. If true, look for the - mini version [whose name ends in `-mini']. - - * e-folder-type-repository.c - (folder_type_new): Free string returned by - `e_shell_get_icon_path()'. - -2000-05-16 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c: New members `storage_set_view_box', - `shortcut_bar_box', `hpaned1_position', `hpaned2_position' in - `EShellViewPrivate'. - (init): Initialize them. - (setup_widgets): Add title bars to the tree and shortcut views. - (shortcuts_view_close_button_clicked_cb): New callback function. - (setup_widgets): Connect to the "close_button_clicked" signal of - the shortcut view's title bar. - (storage_set_view_close_button_clicked_cb): New callback function. - (setup_widgets): Connect to the "close_button_clicked" signal of - the storage set view's title bar. - (e_shell_view_show_shortcuts): New function. - (e_shell_view_show_folders): New function. - - * e-shell-view.c: New members `hpaned1', `hpaned2' in - `EShellViewPrivate'. - (init): Initialize both to NULL. - (setup_widgets): Invert the parenting order for the GtkHPaneds and - store them into the private `hpaned' and `hpaned2' members. - - * Makefile.am (evolution_LDADD): Link with `libemiscwidgets.a'. - -2000-05-15 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts.c - (load_shortcuts_into_view): Removed. - (e_shortcuts_new_view): Don't set up the shortcut bar manually - here anymore, and don't set the icon callback either. The - `EShortcutsView' object is now able to do this by itself. - - * e-shortcuts-view.c - (icon_callback): Moved here from `e-shortcuts.c'. - (load_group): New function. - (load_all_shortcuts): New function. - (e_shortcuts_view_construct): Call it to load the shortcuts from - the `EShortcuts' object. Also, set `icon_callback' as the icon - callback. - - * e-storage-set-view.c - (button_press_event): Add/remove grab with `gtk_grab_add' and - `gtk_grab_remove'. - (button_release_event): Call `gtk_grab_remove' when removing the - grab. - - * e-shortcuts.c: New member `title_to_group' in - `EShortcutsPrivate'. - (init): Initialize here. - (destroy): Destroy here. - (unload_shortcuts): Destroy and recreate here. - (load_shortcuts): Avoid inserting multiple groups with the same - title, and insert the groups into the `title_to_group' hash table. - Also, avoid leaking the return value from `xmlNodeListGetString'. - (e_shortcuts_get_group_titles): New function. - (e_shortcuts_get_shortcuts_in_group): New function. - (e_shortcuts_get_storage_set): New function. - - * e-storage-set-view.c - (e_storage_set_view_set_current_folder): Emit the - "folder_selected" signal. - - * e-local-folder.c - (get_string_value): Return a `char *' to be deallocated by the - caller instead of a `const char *' that does not need to be - deallocated. - (construct_loading_metadata): Free values returned from - `get_string_value'. - -2000-05-15 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c: New members `dragged_row_path', - `selected_row_path_before_click' in `EStorageSetViewPrivate'. - (init): Initialize them to NULL. - (motion_notify_event): Set `dragged_row_path' from - `selected_row_path'. - (button_press_event): Initialize `selected_row_path_before_click' - from `selected_row_path'. - (button_release_event): Set `selected_row_path_before_click' to - NULL. - (drag_end): Restore the current selection from - `selected_row_path_before_click'; then set both `dragged_row_path' - to NULL. - -2000-05-15 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c: New members `in_drag' and `drag_button' in - `EStorageSetViewPrivate'. New static variables `drag_types', - `num_drag_types', `target_list'. - (class_init): Create the `target_list'. - (init): Initialize the private `in_drag' member to false. - Initialize the private `drag_button' member to zero. - (button_release_event): Set it to false. - (motion_notify_event): New function, implementation of - `GtkWidget::motion_notify_event'. If `in_drag' is false, set it - to true and set ourselves up as a drag source. - (button_press_event): New function, implementation of - `GtkWidget::button_press_event'. Set `drag_button' to the event's - button number and then chain to the implementation in the parent - class. - (drag_end): New function, implementation of `GtkWidget::drag_end'. - (drag_data_get): New function, implementation of - `GtkWidget::drag_data_get'. - (set_e_shortcut_selection): New function, helper for `drag_data_get'. - (set_uri_list_selection): New function, helper for `drag_data_get'. - (class_init): Install these method implementations. - - * e-storage-set-view.c: New member `selected_row_path' in - `EStorageSetViewPrivate'. - (init): Initialize it to NULL. - (tree_select_row): Set it to the path of the selected row. Don't - emit "folder_selected" yet. Also, keep the grab. - (button_release_event): New function, implementation of - `GtkWidget::button_release_event'. If `selected_row_path' is not - NULL, emit the "folder_selected" signal with `selected_row_path' - as the parameter and then set `selected_row_path' to NULL again. - (class_init): Install `button_release_event'. - - * e-storage-set-view.c: Made `ICON_WIDTH' and `ICON_HEIGHT' global - #defines. - (e_storage_set_view_construct): Set the row height to - `ICON_HEIGHT'. Alos, set the selection mode to - `GTK_SELECTION_BROWSE'. - -2000-05-15 Iain Holmes <ih@csd.abdn.ac.uk> - - * e-local-folder.c (get_string_value): Use the correct function to - get the node's contents. - - * e-shortcuts.c (load_shortcuts): Same as above. - -2000-05-14 Ettore Perazzoli <ettore@helixcode.com> - - * e-folder-type-repository.c - (e_folder_type_repository_get_control_id_for_type): Protect - against non-existing types. - (e_folder_type_repository_get_icon_for_type): Likewise. - -2000-05-14 Ettore Perazzoli <ettore@helixcode.com> - - * e-storage-set-view.c - (folder_compare_cb): Callback comparison function for comparing - folders based on their names. - (insert_folders): Use it to sort the folder list before using it. - -2000-05-14 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c - (setup_storages): Pass the pointer to the folder type repository. - (e_shell_construct): Initialize the folder type repository before - everything else. - - * e-storage-set.c: New member `folder_type_repository' in - `EStorageSetPrivate'. - (init): Initialize it to NULL. - (destroy): Unref it. - (e_storage_set_construct): New arg @folder_type_repository. - Initialize the corresponding member in the private struct through - it. - (e_storage_set_new): New arg @folder_type_repository. - (e_storage_set_get_folder_type_repository): New function. - - * e-shortcuts.c (icon_callback): Just use [the new version of] - `e_folder_type_repository_get_icon_for_type()' instead of loading - the image manually. - - * e-folder-type-repository.c: New member `icon_pixbuf' in - `FolderType'. - (folder_type_new): Load the pixbuf. - (folder_type_free): Unref the pixbuf. - (e_folder_type_repository_get_icon_name_for_type): Renamed from - `e_folder_type_repository_get_icon_for_type'. - (e_folder_type_repository_get_icon_for_type): New function, now - returning a `GdkPixbuf *'. - - * e-shortcuts.c - (icon_callback): Use `e_shell_get_icon_name()'. - - * e-shell-view.c: New member `storage_set_view' in - `EShellViewPrivate'. - (init): Initialize it to NULL. - (e_shell_view_construct): Create an EStorageSetView for the - shell's EStorageSet and put it into a scrolled window. Also, put - the scrolled window into the EShellView with some - [temporary] GtkPaned action. Store the pointer to the - EStorageSetView to `priv->storage_set_view'. - (set_icon): Get an EShellView and an EFolder instead of an - EShellView and a URI. Also, don't leak. - (update_for_current_uir): New helper function. Call `set_icon'. - (show_error): Call it. - (folder_selected_cb): New function. - (setup_widgets): Connect it to the "folder_selected" signal of the - storage set view. - - * e-storage-set-view.c: New file. - * e-storage-set-view.h: New file. - - * e-shell-utils.c: New file. - * e-shell-utils.h: New file. - -2000-05-10 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view-menu.c: Added an about box. - -2000-05-10 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Set the icons when changing between components. - - * main.c: Set the default icon. (The change in e-shell-view.c - doesn't work unless we do this.) - -2000-05-09 Matt Loper <matt@helixcode.com> - - * e-shell-view-menu.c (command_run_bugbuddy): New function; allows - users to submit a bug. - (command_run_bugbuddy): Implemented with jacob's patch. - -2000-05-09 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (e_shell_new_view): Display the specified @uri in the - view. - - * e-shell-view.c (e_shell_view_construct): Removed arg @uri. - (e_shell_view_new): Likewise. - - * main.c: New string constant `STARTUP_URI', specifying the URI to - show in the startup view. - (new_view_idle_cb): New callback function to create a new view for - `STARTUP_URI' in the idle loop. We need to do this in the idle - loop because the CORBA stuff cannot work until the loop starts - running. - (main): Set `new_view_idle_cb' up as the idle callback instead of - creating the view right away. - -2000-05-09 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (setup_storages): Woops. Don't free the path before - the warning message, as we need to print it. - -2000-05-08 Ettore Perazzoli <ettore@helixcode.com> - - * main.c (destroy_cb): New function. - (main): Connect it to the `destroy' signal on the shell. - -2000-05-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts.c (load_shortcuts): Const fix. - -2000-05-08 Larry Ewing <lewing@helixcode.com> - - * e-shortcuts.c (load_shortcuts_into_view): xmlFree the return - value of xmlGetProp. - -2000-05-07 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts-view.c (e_shortcuts_view_construct): Use - correct cast. - -2000-05-07 Ettore Perazzoli <ettore@helixcode.com> - - * main.c (main): Connect to "no_views_left", not "destroy". - - * e-shell.c (view_destroy_cb): Grmpf. - -2000-05-07 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell.c (e_shell_construct): Output a warning message if the - shortcut file is not found. - (setup_storages): Output a warning message if the local storage - cannot be initialized. - (destroy): Destroy all the views. - - * e-shell-view.c - (e_shell_view_construct): Ref the shell. - - * e-shortcuts-view.c - (e_shortcuts_view_construct): Ref the shortcuts. - - * e-shell.c: Create the "no_views_left" signal. New member - `views' in `EShellPrivate'. - (init): Initialize `views' to NULL. - (view_destroy_cb): Destroy handler for a view: remove the view - from `views', and emit the "no_views_left" signal if this was the - last view. - (e_shell_new_view): Add the new view to `views' and connect the - "destroy" signal to `view_destroy_cb'. - (destroy): Destroy the views. - - * e-shell.h: New signal "no_views_left". - - * e-shell-view-menu.c (command_quit): New function, implementation - of the "quit" command. - - * e-shell-view.c (e_shell_view_get_shell): New function. - - * e-shell.c (e_shell_quit): New function. - - * main.c (main): If it is not possible to create the shell for - some reason, pop up an error message. - (shell_destroy_cb): New function, signal handler for "destroy" on - the shell object. - (main): Connect it. - -2000-05-06 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcuts.c (destroy): Be safer about NULL objects. - - * e-shell.c (destroy): Be safer about NULL objects. - - * e-local-storage.c (load_folders): Use `readdir()', not - `readdir_r()'. - -2000-05-06 Ettore Perazzoli <ettore@helixcode.com> - - * main.c (init_corba) [! USING_OAF]: We have no options no - popt context. - -2000-05-06 Ettore Perazzoli <ettore@helixcode.com> - - * All files: Reorganized and redone a lot of the shell. New - features: internal URI namespace, extensible storage/folder - mechanism, configurable shortcuts. - -2000-05-03 Damon Chaplin <damon@helixcode.com> - - * e-shell-view.c (e_shell_view_new): turned the notebook border off. - The calendar looks better without it. If any of the views want a - border they should create it themselves, shouldn't they? - -2000-05-04 Ettore Perazzoli <ettore@helixcode.com> - - * e-shortcut.c (shell_icon_cb): Type of @url changed from `gchar - *' to `const gchar *'; new arg @data. - (e_shortcut_bar_view_new): Pass NULL as the closure value for - `e_shortcut_bar_set_icon_callback()'. - -2000-05-02 Ettore Perazzoli <ettore@helixcode.com> - - * e-folder-mail.c: Removed. - - * e-folder-mail.h: Removed. - - * eshell-types.h: Removed. - - * e-folder.h: Don't #include "eshell-types.h". - -2000-05-02 Ettore Perazzoli <ettore@helixcode.com> - - * e-folder.h: Removed member `eservice' from `EFolder'. - - * e-service.c: Removed. - - * e-service.h: Removed. - -2000-05-02 Matt Loper <matt@helixcode.com> - - * Makefile.am: set G_LOG_DOMAIN. - -2000-05-01 Dan Winship <danw@helixcode.com> - - * e-shell-view.c (e_shell_view_set_view): Turn off control frame - autoactivation, so the toolbars work correctly. This may actually - be a bug in Bonobo, but we'll kludge around it here for now. - -2000-04-27 Ettore Perazzoli <ettore@helixcode.com> - - * e-shell-view.c: OAFized. - (get_view): If `bonobo_widget_new_control()' fails for the - calendar, don't try to get the property bag and stuff and thus - prevent a segfault. - - * main.c - (corba_init): Removed Bonobo initialization. Implemented OAF - version for the case in which `USING_OAF' is #defined. - (init_bonob): New function. - (main): Call `init_bonobo()'. - -2000-04-26 Matt Loper <matt@helixcode.com> - - * e-shell-view.c (bonobo_widget_is_dead): Helper function to see - whether a bonobo widget is a zombie (ie the remote bonobo control - died). - (e_shell_view_set_view): Try to respawn dead widgets. - -2000-04-25 Dan Winship <danw@helixcode.com> - - * Makefile.am: include -I$(datadir)/idl in orbit-idl arguments so - that you can have bonobo installed in the same prefix as - evolution, when that isn't the same prefix is gnome-libs, which a - lot of people seem to be doing. - (CLEANFILES): add EVOLUTION_CORBA_GENERATED - -2000-04-24 Christopher James Lahey <clahey@helixcode.com> - - * idl/folder.idl: Made some functions syncronous that didn't need - to be asyncronous. - -2000-04-24 Matt Loper <matt@helixcode.com> - - * e-shell-view.h: Added hpaned and treeview widgets to - EShellView. Added e_shell_view_toggle_shortcut_bar() and - e_shell_view_toggle_treeview(). - - * e-shell-view.c (e_shell_view_setup_shortcut_display): Use EPaned - widget to house our shortcut bar. - (e_shell_view_toggle_shortcut_bar): New function; toggles whether - the shortcut bar is showing. - (e_shell_view_toggle_treeview): Same, for the treeview (NYI). - (e_shell_view_new): Put the notebook view in our EPaned widget. - - * e-shell-view-menu.c (esv_cmd_toggle_shortcut_bar): New function; - toggles whether the shortcut bar is viewed. - (esv_cmd_toggle_treeview): Same, but with the treeview. Added - menuitems in the "view" menu to allow access to the above. - -2000-04-19 Seth Alves <alves@hungry.com> - - * e-shell-view.c (get_view): set calendar's uri with a property bag - -2000-04-19 Christopher James Lahey <clahey@helixcode.com> - - * idl/folder.idl: New idl file. Still unused. - -2000-04-14 Christopher James Lahey <clahey@helixcode.com> - - * e-shell-view.c: Made the left pane of the shell view not - autoresize. - -2000-04-09 Matt Loper <matt@helixcode.com> - - * e-shell-view.c (e_shell_view_setup): Set the default height - bigger, to 600, so that everything in the shortcut-bar shows up. - -2000-04-07 Matt Loper <matt@helixcode.com> - - * e-shell-view.c (destroy_folder_view): New function; - Bonobo_Unknown_unref's the controls that have the views in them. - (esv_destroy): Calls the above for each folder_view in the - hashtable. - (get_view): unref the ServiceRepository interface of the control - when we're done with it. - -2000-04-06 Miguel de Icaza <miguel@gnu.org> - - * shell/e-shortcut.c (shell_icon_cb): Append a slash here. - (shell_icons): Only list the filenames. - - * shell/main.c (evolution_boot): Be less rude. - -2000-04-06 Matt Loper <matt@helixcode.com> - - * shell/main.c (evolution_boot): Make sure our data directory is - available with e_setup_base_dir (). - -2000-04-06 Miguel de Icaza <miguel@gnu.org> - - * shell/e-shortcut.c (shell_icon_cb): Load the icons from the - installation path, not form the GNOME-libs installation prefix. - (shell_icon_cb): Memory leak fix. - - * shell/Makefile.am (imagesdir): Pass the EVOLUTION_IMAGES - installation directory here. - -2000-04-05 Seth Alves <alves@hungry.com> - - * shell/e-shell-view.c (get_view): hook up control:calendar - -2000-03-31 Dan Winship <danw@helixcode.com> - - * shell/e-shortcut.c (e_shortcut_bar_view_new, shell_icon_cb): - Update for shortcut bar changes. - - * shell/e-folder.h: add E_FOLDER_SUMMARY - * shell/e-shell.c (e_shell_setup_default_folders): make the - "Today" icon be of type E_FOLDER_SUMMARY, not E_FOLDER_MAIL. - -2000-03-30 Dan Winship <danw@helixcode.com> - - * shell/e-shell-view.c (e_shell_view_set_view): Hold off on - deactivating the "outgoing" control until after setting up the - "incoming" control. That way if the new control takes a few - seconds to load, there won't be an ugly empty spot where the - toolbar used to be while the new control loads. - -2000-03-29 Dan Winship <danw@helixcode.com> - - * shell/e-shell-view.c (e_shell_view_set_view): Call - bonobo_control_frame_activate on the folder_view every time it - is displayed, and bonobo_control_frame_deactivate every time it is - hidden. - -2000-03-25 Matt Loper <matt@helixcode.com> - - * shell/e-shell-view.c (get_view): Move CORBA_Environment to - different scope. - -2000-03-22 Matt Loper <matt@helixcode.com> - - * shell/main.c (evolution_boot): gtk_signal_connect'ed "destroy" - to gtk_main_quit, so that the shell dies when you want it to. - - * shell/e-shell-view.c (get_view): Reorganized, and added - assertions. - (e_shell_view_set_view): Added assertions. - -2000-03-20 Matt Loper <matt@helixcode.com> - - * shell/e-shell-view.h: New private field in EShellView added, - which contains the notebook and a hashtable of folders to views. - - * shell/e-shell-view.c (e_shell_view_set_view): Instead of - creating a new control every time we set the view, we now keep our - controls in a notebook. This function now switches to the correct - notebook page, or creates a new page/control as necessary. - (e_shell_view_new): Creates and inserts the notebook into the - shell. - -2000-03-13 Christopher James Lahey <clahey@helixcode.com> - - * shell/e-shell-view.c: Added an E_FOLDER_CONTACTS section to the - get_view function. - -2000-03-13 bertrand <bertrand@helixcode.com> - - * shell/e-shell.c (EShell_register_service): - test implementation. Show the uri and the type - of service that has just been registered. - - * shell/e-shell-view.c (get_view): - once we have the bonobo control widget, - disable the autoactivation and activate - the control frame. - (get_view): added a parameter to have - a reference to the EShellView. - (get_view): In the case of the mail component - use the Evolution_ServiceRepository to - give the component a reference to the - Shell server. - -2000-03-12 bertrand <bertrand@helixcode.com> - - * shell/e-shell-view.c (get_view): name change - - - * shell/e-folder.c (e_folder_get_folder_type): added the - get_e_folder_type function. - - * shell/evolution-service-repository.c: - (evolution_service_repository_new): creates an - Evolution_ServiceRepository object. - (create_evolution_service_repository): - create the corresponding servant. - (evolution_service_repository_construct): set - the closure as well as the virtual functions. - -2000-03-12 bertrand <bertrand@helixcode.com> - - * shell/evolution-service-repository.c: - * shell/evolution-service-repository.h: - Implementation of the service repository interface - as a bonobo object. - - * shell/evolution-service-repository.idl: - new file. Contains the definition for the service - repository interface. - - * shell/Shell.idl: move the shell related stuff - here - -2000-03-12 bertrand <bertrand@helixcode.com> - - * shell/e-folder.h: add a field refering to a - service associated to the efolder. In the case of - distant folders, it is generally a server. - - * shell/e-service.c: New class. Models a service. - A service is an object with an URI and a root folder. - It genreally reporesents a distant folder. - A service is generally a ressource shared amongst - several folders. - * shell/e-service.h: - -2000-03-07 bertrand <bertrand@helixcode.com> - - * shell/e-shell-shortcut.c (shortcut_bar_item_selected): - removed a test that prevented the standard menu - to be shown. - -2000-03-01 Ettore Perazzoli <ettore@helixcode.com> - - * shell/Makefile.am (INCLUDES): use `top_srcdir' instead of - `srcdir'. Also, add `$(top_srcdir)'. And put the srcdir includes - before everything else. - (evolution_LDADD): `libeutil.la', not `libeutil.a'. - -2000-02-22 bertrand <Bertrand.Guiheneuf@aful.org> - - * shell/Makefile.am (evolution_LDADD): - add libetext.a. - -2000-02-08 Iain Holmes <ih@csd.abdn.ac.uk> - - * shell/Makefile.am: Changed the order of the compilation, so the CORBA - stuff was generated before it was needed. - -2000-01-15 Miguel de Icaza <miguel@gnu.org> - - * shell/e-shell.c: Construct the default folders - - * shell/e-shell-view.c (e_shell_view_new): Setup the main GnomeApp - application, load the shortcut, internal api. - - * shell/e-folder.c (e_folder_get_type_name): Return description - here; Change of policy; We now know about all of the possible - types that can be displayed on Evolution. - -2000-01-15 Miguel de Icaza <miguel@gnu.org> - - * shell/e-folder.c: Renamed signal. - - * widgets/shortcut-bar/e-shortcut-bar.c (e_shortcut_bar_add_item): - Use e_bar_set_item_data. - - Drop item_url; Require image argument; Require user data - argument. - -2000-01-05 Miguel de Icaza <miguel@gnu.org> - - * shell/Makefile.am: New file. - diff --git a/shell/Evolution-Component.idl b/shell/Evolution-Component.idl deleted file mode 100644 index f200680633..0000000000 --- a/shell/Evolution-Component.idl +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Interface for the Evolution components. - * - * Authors: - * Ettore Perazzoli <ettore@ximian.com> - * - * Copyright (C) 2003 Ximian, Inc. - */ - -#include <Bonobo.idl> - -module GNOME { -module Evolution { - enum CreatableItem { - CREATABLE_OBJECT, - CREATABLE_FOLDER - }; - - /* A type of item that the component can create when asked by the user, - e.g. a mail message or an appointment. */ - struct CreatableItemType { - string id; - string description; - string menuDescription; - string tooltip; - char menuShortcut; - string iconName; - CreatableItem type; - }; - typedef sequence <CreatableItemType> CreatableItemTypeList; - - interface Component : Bonobo::Unknown { - exception Failed {}; - exception UnknownType {}; - /* We don't know about the old version we're upgrading from */ - exception UnsupportedVersion {}; - /* We encountered a non-recoverable, fatal error, explain why */ - exception UpgradeFailed { - string what; - string why; - }; - - /*** Upgrade path. ***/ - - void upgradeFromVersion (in short major, in short minor, in short revision) - raises (UnsupportedVersion, UpgradeFailed); - - /*** Basic functionality. ***/ - - /* Create the controls for embedding in the shell. */ - void createControls (out Bonobo::Control sidebar_control, - out Bonobo::Control view_control, - out Bonobo::Control statusbar_control) - raises (Failed); - - /* Check if the component can quit. - Do not perform any quit-related tasks however. - May be called multiple times, depending on user interaction. */ - boolean requestQuit (); - - /* Ask the component to quit. Returns TRUE when the - component has completed any closing-down tasks, and - is ready to exit(). This will be called repeatedly - at intervals until it returns TRUE. */ - boolean quit (); - - /* Notify the component of whether the shell is currently - running in interactive mode or not. (I.e. basically, - whether there are any Evolution windows on the screen.) - @new_view_xid is an X Window ID ("None" if @now_interactive - is FALSE) */ - void interactive (in boolean now_interactive, - in unsigned long new_view_xid); - - - /*** The following stuff is needed to build the "New" toolbar - item as well as the "File -> New" submenu. ***/ - - /* List of creatable items. */ - readonly attribute CreatableItemTypeList userCreatableItems; - - /* Pop up a new editing dialog for the item with the specified - @item_type_name. */ - void requestCreateItem (in string item_type_name) - raises (UnknownType, Failed); - - - /*** URI handling (e.g. for the command-line, "evolution - mailto:foo@bar.org") ***/ - void handleURI (in string uri); - - - /*** Send/receive. ***/ - - void sendAndReceive (); - }; - -}; -}; diff --git a/shell/Evolution-ConfigControl.idl b/shell/Evolution-ConfigControl.idl deleted file mode 100644 index dfe99dd644..0000000000 --- a/shell/Evolution-ConfigControl.idl +++ /dev/null @@ -1,21 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Additional interfaces for the Controls used in configuration dialogs. - * - * Authors: - * Ettore Perazzoli <ettore@ximian.com> - * - * Copyright (C) 2002 Ximian, Inc. - */ - -module GNOME { -module Evolution { - interface ConfigControl : Bonobo::Unknown { - /* The actual Control. */ - readonly attribute Bonobo::Control control; - - /* Get the event source for this control. */ - readonly attribute Bonobo::EventSource eventSource; - }; -}; /* module Evolution */ -}; /* module GNOME */ diff --git a/shell/Evolution-Offline.idl b/shell/Evolution-Offline.idl deleted file mode 100644 index e896710503..0000000000 --- a/shell/Evolution-Offline.idl +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Interface to allow components to switch between on-line and off-line mode. - * - * Authors: - * Ettore Perazzoli <ettore@ximian.com> - * - * Copyright (C) 2001 Ximian, Inc. - */ - -#include <Bonobo.idl> - -module GNOME { -module Evolution { - -struct Connection { - string hostName; - string type; -}; -typedef sequence<Connection> ConnectionList; - -interface OfflineProgressListener { - /* Update the shell about the progress of going off-line. The - operation is considered completed when the ConnectionList is empty. */ - void updateProgress (in ConnectionList current_active_connections); -}; - -interface Offline : Bonobo::Unknown { - exception notPrepared {}; - exception notSyncing {}; - - /* Whether the component is currently off-line. */ - attribute boolean isOffline; - - /* Ask the component to prepare to go into off-line mode. The - * component must return a list of the current active - * connections. After this call, the shell is expected to - * either invoke ::goOffline (actually complete the operation - * and go off-line) or ::goOnline (operation cancelled). - */ - void prepareForOffline (out ConnectionList active_connection_list); - - /* Ask the component to go into off-line mode. This always comes after - a ::prepareForOffline. */ - void goOffline (in OfflineProgressListener listener) - raises (notPrepared); - - /* Tell the component to go into on-line mode. */ - void goOnline (); -}; - -}; -}; diff --git a/shell/Evolution-Shell.idl b/shell/Evolution-Shell.idl deleted file mode 100644 index 5f2690afe4..0000000000 --- a/shell/Evolution-Shell.idl +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Interface for the Evolution shell. - * - * Authors: - * Ettore Perazzoli <ettore@ximian.com> - * - * Copyright (C) 2000, 2001 Ximian, Inc. - */ - -#include <Bonobo.idl> - -module GNOME { -module Evolution { - interface Shell : Bonobo::Unknown { - exception Busy {}; - exception ComponentNotFound {}; - exception InternalError {}; - exception InvalidURI {}; - exception NotFound {}; - exception NotReady {}; - exception UnsupportedSchema {}; - - /** - * createNewWindow: - * @component_id: id or alias of the component to display in the new window. - * - */ - void createNewWindow (in string component_id) - raises (NotReady, ComponentNotFound, UnsupportedSchema, InternalError); - - /** - * handleURI: - * @uri: URI to handle - * - * This handles the specified URI. It is different from - * `::createNewView' as it doesn't necessarily imply creating a - * new ShellView. (For example, a `mailto:' URI will invoke - * the message composer.) - */ - void handleURI (in string uri) - raises (NotReady, NotFound, UnsupportedSchema, InvalidURI, InternalError); - - /** - * setLineStatus: - * - * Set the shell into on-line or off-line mode. - */ - void setLineStatus (in boolean online) - raises (NotReady); - }; -}; -}; diff --git a/shell/Evolution-Wizard.idl b/shell/Evolution-Wizard.idl deleted file mode 100644 index 145774f70b..0000000000 --- a/shell/Evolution-Wizard.idl +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Interface for a wizard done through Bonobo. - * - * Authors: - * Iain Holmes <iain@ximian.com> - * - * Copyright (C) 2000, 2001 Ximian, Inc. - */ - -#include <Bonobo.idl> - -module GNOME { -module Evolution { - - interface Wizard : Bonobo::Unknown { - - struct Page { - string title; - Icon icon; - Bonobo::Control control; - }; - typedef sequence<Page> PageList; - - readonly attribute PageList pages; - - enum Action { - NEXT, - PREPARE, - BACK, - FINISH, - CANCEL, - HELP - }; - - exception NoPage {}; - - void notifyAction (in long pagenumber, in Action action) - raises (NoPage); - }; -}; -}; diff --git a/shell/Evolution-common.idl b/shell/Evolution-common.idl deleted file mode 100644 index 62f113f79c..0000000000 --- a/shell/Evolution-common.idl +++ /dev/null @@ -1,23 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Common definitions for the CORBA interface for the Evolution shell. - * - * Authors: - * Ettore Perazzoli <ettore@ximian.com> - * - * Copyright (C) 2000, 2001, 2002 Ximian, Inc. - */ - -module GNOME { -module Evolution { - struct Icon { - short width, height; - boolean hasAlpha; - sequence <octet> rgbaData; // Row-by-row, left-to-right, top-to-bottom RGBA bytes - }; - - typedef sequence <Icon> AnimatedIcon; - -}; -}; - diff --git a/shell/Evolution.idl b/shell/Evolution.idl deleted file mode 100644 index f128d065bd..0000000000 --- a/shell/Evolution.idl +++ /dev/null @@ -1,19 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * CORBA interface for the Evolution shell. - * - * Authors: - * Ettore Perazzoli <ettore@ximian.com> - * - * Copyright (C) 2000, 2001 Ximian, Inc. - */ - -#include <Bonobo.idl> - -#include <Evolution-common.idl> - -#include <Evolution-Component.idl> -#include <Evolution-ConfigControl.idl> -#include <Evolution-Offline.idl> -#include <Evolution-Shell.idl> -#include <Evolution-Wizard.idl> diff --git a/shell/GNOME_Evolution_Shell.server.in.in b/shell/GNOME_Evolution_Shell.server.in.in deleted file mode 100644 index 21d419a748..0000000000 --- a/shell/GNOME_Evolution_Shell.server.in.in +++ /dev/null @@ -1,24 +0,0 @@ -<oaf_info> - - <oaf_server iid="OAFIID:GNOME_Evolution_Shell:@VERSION@" - type="exe" - location="@BINDIR@/evolution-@VERSION@"> - - <oaf_attribute name="repo_ids" type="stringv"> - <item value="IDL:GNOME/Evolution/Shell:@VERSION@"/> - </oaf_attribute> - - <oaf_attribute name="name" type="string" - _value="Evolution Shell"/> - </oaf_server> - - <oaf_server iid="OAFIID:GNOME_Evolution_Shell_Config_Factory:@VERSION@" - type="exe" - location="@BINDIR@/evolution-@VERSION@"> - - <oaf_attribute name="repo_ids" type="stringv"> - <item value="IDL:GNOME/GenericFactory:1.0"/> - </oaf_attribute> - </oaf_server> - -</oaf_info> diff --git a/shell/GNOME_Evolution_Test.server.in.in b/shell/GNOME_Evolution_Test.server.in.in deleted file mode 100644 index cbd5187f62..0000000000 --- a/shell/GNOME_Evolution_Test.server.in.in +++ /dev/null @@ -1,39 +0,0 @@ -<oaf_info> - - <!-- (factory) --> - <oaf_server iid="OAFIID:GNOME_Evolution_Test_Factory:@VERSION@" - type="shlib" - location="@COMPONENTDIR@/libevolution-test.so"> - - <oaf_attribute name="repo_ids" type="stringv"> - <item value="IDL:GNOME/ObjectFactory:1.0"/> - </oaf_attribute> - - <oaf_attribute name="name" type="string" - _value="Evolution Test"/> - </oaf_server> - - <!-- Component Interface --> - - <oaf_server iid="OAFIID:GNOME_Evolution_Test_Component:@VERSION@" - type="factory" - location="OAFIID:GNOME_Evolution_Test_Factory:@VERSION@"> - - <oaf_attribute name="repo_ids" type="stringv"> - <item value="IDL:GNOME/Evolution/Component:@VERSION@"/> - </oaf_attribute> - - <oaf_attribute name="name" type="string" _value="Evolution Test component"/> - - <oaf_attribute name="evolution:component_alias" type="string" value="test"/> - - <oaf_attribute name="evolution:button_label" type="string" _value="Test"/> - <oaf_attribute name="evolution:button_sort_order" type="string" value="-1"/> - <oaf_attribute name="evolution:button_icon" type="string" value="stock_mail"/> - - <oaf_attribute name="evolution:component_icon" type="string" value="stock_mail"/> - <oaf_attribute name="evolution:component_display_order" type="number" value="1"/> - - </oaf_server> - -</oaf_info> diff --git a/shell/Makefile.am b/shell/Makefile.am deleted file mode 100644 index 4583f3cb92..0000000000 --- a/shell/Makefile.am +++ /dev/null @@ -1,262 +0,0 @@ -SUBDIRS = importer - -INCLUDES = \ - -I$(top_srcdir)/widgets \ - -I$(top_srcdir)/widgets/misc \ - -I$(top_srcdir) \ - -DEVOLUTION_IMAGES=\""$(imagesdir)"\" \ - -DEVOLUTION_LOCALEDIR=\""$(localedir)"\" \ - -DEVOLUTION_DATADIR=\""$(datadir)"\" \ - -DEVOLUTION_GLADEDIR=\""$(gladedir)"\" \ - -DEVOLUTION_HELPDIR=\""$(evolutionhelpdir)"\" \ - -DEVOLUTION_UIDIR=\""$(evolutionuidir)"\" \ - -DEVOLUTION_TOOLSDIR=\""$(privlibexecdir)"\" \ - -DPREFIX=\""$(prefix)"\" \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ - -DDATADIR=\""$(datadir)"\" \ - -DLIBDIR=\""$(datadir)"\" \ - -DG_LOG_DOMAIN=\"evolution-shell\" \ - $(TZDIALOG_CFLAGS) \ - $(SHELL_CFLAGS) \ - $(EVOLUTION_TEST_CFLAGS) - -noinst_PROGRAMS = evolution - -# Shell CORBA stuff - -IDLS = \ - Evolution-ConfigControl.idl \ - Evolution-Component.idl \ - Evolution-Offline.idl \ - Evolution-Shell.idl \ - Evolution-Wizard.idl \ - Evolution-common.idl \ - Evolution.idl - -IDL_GENERATED_H = \ - Evolution.h - -IDL_GENERATED_C = \ - Evolution-common.c \ - Evolution-skels.c \ - Evolution-stubs.c - -IDL_GENERATED = $(IDL_GENERATED_H) $(IDL_GENERATED_C) - -$(IDL_GENERATED_H): $(IDLS) - $(ORBIT_IDL) -I $(srcdir) $(IDL_INCLUDES) $(srcdir)/Evolution.idl - -$(IDL_GENERATED_C): $(IDL_GENERATED_H) - - -# Data Server CORBA stuff -DATASERVER_IDL_GENERATED_H = \ - Evolution-DataServer.h - -DATASERVER_IDL_GENERATED_C = \ - Evolution-DataServer-common.c \ - Evolution-DataServer-skels.c \ - Evolution-DataServer-stubs.c - -DATASERVER_IDL_GENERATED = $(DATASERVER_IDL_GENERATED_C) $(DATASERVER_IDL_GENERATED_H) - -$(DATASERVER_IDL_GENERATED_H): $(DATASERVER_IDL) - $(ORBIT_IDL) -I $(srcdir) $(IDL_INCLUDES) $(DATASERVER_IDL) - -$(DATASERVER_IDL_GENERATED_C): $(DATASERVER_IDL_GENERATED_H) - - -# IDL install - -idl_DATA = $(IDLS) - -# Shell library - -privlib_LTLIBRARIES = \ - libeshell.la - -eshellincludedir = $(privincludedir)/shell - -eshellinclude_HEADERS = \ - Evolution.h \ - e-shell-corba-icon-utils.h \ - e-shell-utils.h \ - e-user-creatable-items-handler.h \ - evolution-config-control.h \ - evolution-shell-component-utils.h \ - evolution-wizard.h - -libeshell_la_SOURCES = \ - $(IDL_GENERATED) \ - $(MARSHAL_GENERATED) \ - e-shell-corba-icon-utils.c \ - e-shell-utils.c \ - e-user-creatable-items-handler.c \ - evolution-config-control.c \ - evolution-shell-component-utils.c \ - evolution-wizard.c \ - $(eshellinclude_HEADERS) - -libeshell_la_LIBADD = \ - $(top_builddir)/e-util/libeutil.la \ - $(top_builddir)/widgets/misc/libemiscwidgets.la - -# Evolution executable - -evolution_SOURCES = \ - $(DATASERVER_IDL_GENERATED) \ - e-component-registry.c \ - e-component-registry.h \ - e-config-upgrade.c \ - e-config-upgrade.h \ - e-corba-config-page.c \ - e-corba-config-page.h \ - e-history.c \ - e-history.h \ - e-shell-constants.h \ - e-shell-folder-title-bar.c \ - e-shell-folder-title-bar.h \ - e-shell-importer.c \ - e-shell-importer.h \ - e-shell-offline-handler.c \ - e-shell-offline-handler.h \ - e-shell-settings-dialog.c \ - e-shell-settings-dialog.h \ - e-shell-startup-wizard.c \ - e-shell-startup-wizard.h \ - e-shell-window-commands.c \ - e-shell-window-commands.h \ - e-shell-window.c \ - e-shell-window.h \ - e-shell.c \ - e-shell.h \ - e-sidebar.c \ - e-sidebar.h \ - main.c - -evolution_LDADD = \ - libeshell.la \ - importer/libevolution-importer.la \ - $(top_builddir)/widgets/e-timezone-dialog/libetimezonedialog.la \ - $(top_builddir)/widgets/misc/libemiscwidgets.la \ - $(top_builddir)/e-util/libeutil.la \ - $(TZDIALOG_LIBS) \ - $(SHELL_LIBS) - -# Test component - -if ENABLE_TEST_COMPONENT -component_LTLIBRARIES = libevolution-test.la -endif - -libevolution_test_la_SOURCES = \ - $(IDL_GENERATED) \ - evolution-test-component.c \ - evolution-test-component.h - -libevolution_test_la_LIBADD = \ - libeshell.la \ - $(EVOLUTION_TEST_LIBS) - -libevolution_test_la_LDFLAGS = -avoid-version -module - -if ENABLE_TEST_COMPONENT -testserver_in_files = GNOME_Evolution_Test.server.in.in -testserver_DATA = $(testserver_in_files:.server.in.in=_$(BASE_VERSION).server) -testserverdir = $(serverdir) -endif - -# Misc stuff - -server_in_files = GNOME_Evolution_Shell.server.in.in -server_DATA = $(server_in_files:.server.in.in=_$(BASE_VERSION).server) -@EVO_SERVER_RULE@ -@INTLTOOL_SERVER_RULE@ - -error_DATA = shell-errors.xml -error_i18n = $(error_DATA:.xml=.xml.h) -errordir = $(privdatadir)/errors -%.xml.h: %.xml - $(top_builddir)/e-util/e-error-tool $^ - -glade_DATA = \ - e-active-connection-dialog.glade \ - evolution-startup-wizard.glade - -# GConf schemas - -schemadir = $(GCONF_SCHEMA_FILE_DIR) -schema_in_files = apps_evolution_shell.schemas.in.in -schema_DATA = $(schema_in_files:.schemas.in.in=-$(BASE_VERSION).schemas) -%-$(BASE_VERSION).schemas.in: %.schemas.in.in - cp $< $@ - -@INTLTOOL_SCHEMAS_RULE@ - -install-data-local: - if test -z "$(DESTDIR)" ; then \ - for p in $(schema_DATA) ; do \ - GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(srcdir)/$$p; \ - done \ - fi - -install-evolution: - $(mkinstalldirs) $(DESTDIR)$(bindir) - $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) evolution $(DESTDIR)$(bindir)/evolution-$(BASE_VERSION) -if DEFAULT_BINARY - cd $(DESTDIR)$(bindir) && rm -f evolution && $(LN_S) evolution-$(BASE_VERSION) evolution -endif - -if HAVE_DTAPPINTEGRATE - -install-exec-local: install-evolution - $(mkinstalldirs) $(DESTDIR)$(libexecdir) - mv $(DESTDIR)$(bindir)/evolution-$(BASE_VERSION) $(DESTDIR)$(libexecdir)/evolution-$(BASE_VERSION) - $(INSTALL_PROGRAM) evolution-nognome $(DESTDIR)$(bindir)/evolution-$(BASE_VERSION) - -else - -install-exec-local: install-evolution - -endif - - -MARSHAL_GENERATED = e-shell-marshal.c e-shell-marshal.h -@EVO_MARSHAL_RULE@ - -# Extra dist stuff - -EXTRA_DIST = \ - $(IDLS) \ - $(server_in_files) \ - GNOME_Evolution_Test.server.in.in \ - $(error_DATA) \ - $(error_i18n) \ - $(glade_DATA) \ - $(schema_in_files) \ - ChangeLog.pre-1-4 \ - e-shell-marshal.list \ - evolution-nognome.in - -# Purify support - -if ENABLE_PURIFY - -PLINK = $(LIBTOOL) --mode=link $(PURIFY) $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ - -all-local: evolution.pure - -evolution.pure: evolution - @rm -f evolution.pure - $(PLINK) $(evolution_LDFLAGS) $(evolution_OBJECTS) $(evolution_LDADD) $(LIBS) - -endif - -BUILT_SOURCES = $(IDL_GENERATED) $(MARSHAL_GENERATED) $(server_DATA) $(testserver_DATA) $(DATASERVER_IDL_GENERATED) $(error_i18n) -CLEANFILES = $(BUILT_SOURCES) - -dist-hook: - cd $(distdir); rm -f $(BUILT_SOURCES) - -noinst_SCRIPTS = evolution-nognome - diff --git a/shell/apps_evolution_shell.schemas.in.in b/shell/apps_evolution_shell.schemas.in.in deleted file mode 100644 index fddf73e7f3..0000000000 --- a/shell/apps_evolution_shell.schemas.in.in +++ /dev/null @@ -1,135 +0,0 @@ -<gconfschemafile> - <schemalist> - - <!-- Evolution config version --> - - <schema> - <key>/schemas/apps/evolution/version</key> - <applyto>/apps/evolution/version</applyto> - <owner>evolution</owner> - <type>string</type> - <locale name="C"> - <short>Evolution configuration version</short> - </locale> - </schema> - - <!-- last upgraded-from version, if still present --> - - <schema> - <key>/schemas/apps/evolution/last_version</key> - <applyto>/apps/evolution/last_version</applyto> - <owner>evolution</owner> - <type>string</type> - <locale name="C"> - <short>Last upgraded Evolution configuration version</short> - </locale> - </schema> - - <!-- Development warning dialog --> - - <schema> - <key>/schemas/apps/evolution/shell/skip_warning_dialog</key> - <applyto>/apps/evolution/shell/skip_warning_dialog</applyto> - <owner>evolution</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Whether to skip the development warning dialog</short> - <long> - If set to true, the warning dialog in development versions - of Evolution is not displayed. - </long> - </locale> - </schema> - - <!-- Offline Mode --> - - <schema> - <key>/schemas/apps/evolution/shell/start_offline</key> - <applyto>/apps/evolution/shell/start_offline</applyto> - <owner>evolution</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Whether Evolution should start up in offline mode</short> - <long> - If set to true, Evolution will start up in offline mode - instead of online mode. - </long> - </locale> - </schema> - - <schema> - <key>/schemas/apps/evolution/shell/offline/folder_paths</key> - <applyto>/apps/evolution/shell/offline/folder_paths</applyto> - <owner>evolution</owner> - <type>list</type> - <list_type>string</list_type> - <default>[]</default> - <locale name="C"> - <short>List of paths for the folders to be synchronized to disk for offline usage</short> - </locale> - </schema> - - <!-- View defaults --> - - <schema> - <key>/schemas/apps/evolution/shell/view_defaults/width</key> - <applyto>/apps/evolution/shell/view_defaults/width</applyto> - <owner>evolution</owner> - <type>int</type> - <default>640</default> - <locale name="C"> - <short>Default window width</short> - </locale> - </schema> - - <schema> - <key>/schemas/apps/evolution/shell/view_defaults/height</key> - <applyto>/apps/evolution/shell/view_defaults/height</applyto> - <owner>evolution</owner> - <type>int</type> - <default>480</default> - <locale name="C"> - <short>Default window height</short> - </locale> - </schema> - - <schema> - <key>/schemas/apps/evolution/shell/view_defaults/toolbar_visible</key> - <applyto>/apps/evolution/shell/view_defaults/toolbar_visible</applyto> - <owner>evolution</owner> - <type>bool</type> - <default>TRUE</default> - <locale name="C"> - <short>Toolbar is visible</short> - <long>Whether the toolbar should be visible.</long> - </locale> - </schema> - - <schema> - <key>/schemas/apps/evolution/shell/view_defaults/component_id</key> - <applyto>/apps/evolution/shell/view_defaults/component_id</applyto> - <owner>evolution</owner> - <type>string</type> - <default>mail</default> - <locale name="C"> - <short>ID or alias of the component to be shown by default at start-up.</short> - </locale> - </schema> - - <!-- Folder bar --> - - <schema> - <key>/schemas/apps/evolution/shell/view_defaults/folder_bar/width</key> - <applyto>/apps/evolution/shell/view_defaults/folder_bar/width</applyto> - <owner>evolution</owner> - <type>int</type> - <default>200</default> - <locale name="C"> - <short>Default width of the folder bar pane</short> - </locale> - </schema> - - </schemalist> -</gconfschemafile> diff --git a/shell/e-active-connection-dialog.glade b/shell/e-active-connection-dialog.glade deleted file mode 100644 index aab9ad6577..0000000000 --- a/shell/e-active-connection-dialog.glade +++ /dev/null @@ -1,193 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - -<glade-interface> - -<widget class="GtkDialog" id="active_connection_dialog"> - <property name="visible">True</property> - <property name="title" translatable="yes">Active Connections</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="default_width">256</property> - <property name="default_height">192</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="has_separator">False</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="dialog-vbox2"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="dialog-action_area2"> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - - <child> - <widget class="GtkButton" id="cancelbutton1"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-cancel</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="response_id">-6</property> - </widget> - </child> - - <child> - <widget class="GtkButton" id="okbutton1"> - <property name="visible">True</property> - <property name="can_default">True</property> - <property name="has_default">True</property> - <property name="can_focus">True</property> - <property name="label">gtk-ok</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="response_id">-5</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="pack_type">GTK_PACK_END</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox2"> - <property name="border_width">12</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="label1"> - <property name="visible">True</property> - <property name="label" translatable="yes"><b>Active Connections</b></property> - <property name="use_underline">False</property> - <property name="use_markup">True</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkLabel" id="label2"> - <property name="visible">True</property> - <property name="label" translatable="yes"></property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox3"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">12</property> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkTreeView" id="active_connection_treeview"> - <property name="visible">True</property> - <property name="headers_visible">True</property> - <property name="rules_hint">False</property> - <property name="reorderable">False</property> - <property name="enable_search">True</property> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="instruction_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">Click OK to close these connections and go offline</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_CENTER</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/shell/e-component-registry.c b/shell/e-component-registry.c deleted file mode 100644 index d83c0ae572..0000000000 --- a/shell/e-component-registry.c +++ /dev/null @@ -1,360 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-component-registry.c - * - * Copyright (C) 2000, 2001, 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-component-registry.h" - -#include "e-shell-utils.h" -#include <e-util/e-icon-factory.h> - -#include <libgnome/gnome-i18n.h> -#include <gal/util/e-util.h> - -#include <bonobo/bonobo-object.h> -#include <bonobo/bonobo-exception.h> - -#include <string.h> -#include <stdlib.h> - - -#define PARENT_TYPE G_TYPE_OBJECT -static GObjectClass *parent_class = NULL; - - -struct _EComponentRegistryPrivate { - GSList *infos; - - int init:1; -}; - - -/* EComponentInfo handling. */ - -static EComponentInfo * -component_info_new (const char *id, - GNOME_Evolution_Component iface, - const char *alias, - const char *button_label, - const char *menu_label, - const char *menu_accelerator, - int sort_order, - GdkPixbuf *button_icon, - GdkPixbuf *menu_icon) -{ - EComponentInfo *info = g_new0 (EComponentInfo, 1); - - info->id = g_strdup (id); - info->iface = bonobo_object_dup_ref(iface, NULL); - info->alias = g_strdup (alias); - info->button_label = g_strdup (button_label); - info->menu_label = g_strdup (menu_label); - info->menu_accelerator = g_strdup (menu_accelerator); - info->sort_order = sort_order; - - info->button_icon = button_icon; - if (info->button_icon) - g_object_ref (info->button_icon); - - info->menu_icon = menu_icon; - if (info->menu_icon) - g_object_ref (info->menu_icon); - - return info; -} - -static void -component_info_free (EComponentInfo *info) -{ - g_free (info->id); - g_free (info->alias); - g_free (info->button_label); - g_free (info->menu_label); - g_free (info->menu_accelerator); - - if (info->button_icon) - g_object_unref (info->button_icon); - - if (info->menu_icon) - g_object_unref (info->menu_icon); - - if (info->iface != NULL) - bonobo_object_release_unref (info->iface, NULL); - - g_slist_foreach (info->uri_schemas, (GFunc) g_free, NULL); - g_slist_free (info->uri_schemas); - - g_free (info); -} - -static int -component_info_compare_func (EComponentInfo *a, - EComponentInfo *b) -{ - if (a->sort_order != b->sort_order) - return a->sort_order - b->sort_order; - - return strcmp (a->button_label, b->button_label); -} - - -/* Utility methods. */ - -static void -set_schemas (EComponentInfo *component_info, - Bonobo_ServerInfo *server_info) -{ - Bonobo_ActivationProperty *property = bonobo_server_info_prop_find (server_info, "evolution:uri_schemas"); - Bonobo_StringList *list; - int i; - - if (property == NULL) - return; - - if (property->v._d != Bonobo_ACTIVATION_P_STRINGV) { - CORBA_free (property); - return; - } - - list = & property->v._u.value_stringv; - - for (i = 0; i < list->_length; i ++) - component_info->uri_schemas = g_slist_prepend (component_info->uri_schemas, g_strdup (list->_buffer [i])); - - CORBA_free (property); -} - -static void -query_components (EComponentRegistry *registry) -{ - Bonobo_ServerInfoList *info_list; - CORBA_Environment ev; - GSList *language_list; - const GList *l; - char *query; - int i; - - if (registry->priv->init) - return; - - registry->priv->init = TRUE; - - CORBA_exception_init (&ev); - query = g_strdup_printf ("repo_ids.has ('IDL:GNOME/Evolution/Component:%s')", BASE_VERSION); - info_list = bonobo_activation_query (query, NULL, &ev); - g_free (query); - - if (BONOBO_EX (&ev)) { - char *ex_text = bonobo_exception_get_text (&ev); - g_warning ("Cannot query for components: %s\n", ex_text); - g_free (ex_text); - CORBA_exception_free (&ev); - return; - } - - l = gnome_i18n_get_language_list("LC_MESSAGES"); - for (language_list=NULL;l;l=l->next) - language_list = g_slist_append(language_list, l->data); - - for (i = 0; i < info_list->_length; i++) { - const char *id; - const char *label; - const char *menu_label; - const char *menu_accelerator; - const char *alias; - const char *icon_name; - const char *sort_order_string; - GdkPixbuf *icon = NULL, *menuicon = NULL; - EComponentInfo *info; - int sort_order; - GNOME_Evolution_Component iface; - - id = info_list->_buffer[i].iid; - iface = bonobo_activation_activate_from_id (id, 0, NULL, &ev); - if (BONOBO_EX (&ev) || iface == CORBA_OBJECT_NIL) { - char *ex_text = bonobo_exception_get_text (&ev); - - g_warning("Cannot activate '%s': %s\n", id, ex_text); - g_free(ex_text); - CORBA_exception_free(&ev); - CORBA_exception_init(&ev); - continue; - } - - label = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:button_label", language_list); - if (label == NULL) - label = g_strdup (_("Unknown")); - - menu_label = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:menu_label", language_list); - if (menu_label == NULL) - menu_label = g_strdup (_("Unknown")); - - menu_accelerator = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:menu_accelerator", language_list); - - alias = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:component_alias", NULL); - - icon_name = bonobo_server_info_prop_lookup (& info_list->_buffer[i], "evolution:button_icon", NULL); - if (icon_name) { - icon = e_icon_factory_get_icon (icon_name, E_ICON_SIZE_LARGE_TOOLBAR); - menuicon = e_icon_factory_get_icon (icon_name, E_ICON_SIZE_MENU); - } - - sort_order_string = bonobo_server_info_prop_lookup (& info_list->_buffer[i], - "evolution:button_sort_order", NULL); - if (sort_order_string == NULL) - sort_order = 0; - else - sort_order = atoi (sort_order_string); - - info = component_info_new (id, iface, alias, label, menu_label, - menu_accelerator, sort_order, icon, menuicon); - set_schemas (info, & info_list->_buffer [i]); - - registry->priv->infos = g_slist_prepend (registry->priv->infos, info); - - if (icon != NULL) - g_object_unref (icon); - bonobo_object_release_unref(iface, NULL); - } - g_slist_free(language_list); - - CORBA_free (info_list); - CORBA_exception_free (&ev); - - registry->priv->infos = g_slist_sort (registry->priv->infos, - (GCompareFunc) component_info_compare_func); -} - - -/* GObject methods. */ - -static void -impl_finalize (GObject *object) -{ - EComponentRegistry *component_registry; - EComponentRegistryPrivate *priv; - - component_registry = E_COMPONENT_REGISTRY (object); - priv = component_registry->priv; - - g_slist_foreach (priv->infos, (GFunc) component_info_free, NULL); - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -static void -class_init (EComponentRegistryClass *klass) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (klass); - object_class->finalize = impl_finalize; - - parent_class = g_type_class_ref(PARENT_TYPE); -} - - -static void -init (EComponentRegistry *registry) -{ - registry->priv = g_new0 (EComponentRegistryPrivate, 1); -} - - -EComponentRegistry * -e_component_registry_new (void) -{ - return g_object_new (e_component_registry_get_type (), NULL); -} - - -GSList * -e_component_registry_peek_list (EComponentRegistry *registry) -{ - g_return_val_if_fail (E_IS_COMPONENT_REGISTRY (registry), NULL); - - query_components(registry); - - return registry->priv->infos; -} - - -EComponentInfo * -e_component_registry_peek_info (EComponentRegistry *registry, - enum _EComponentRegistryField field, - const char *key) -{ - GSList *p, *q; - - g_return_val_if_fail (E_IS_COMPONENT_REGISTRY (registry), NULL); - - query_components(registry); - - for (p = registry->priv->infos; p != NULL; p = p->next) { - EComponentInfo *info = p->data; - - switch (field) { - case ECR_FIELD_ID: - if (strcmp (info->id, key) == 0) - return info; - break; - case ECR_FIELD_ALIAS: - if (strcmp (info->alias, key) == 0) - return info; - break; - case ECR_FIELD_SCHEMA: - for (q = info->uri_schemas; q != NULL; q = q->next) - if (strcmp((char *)q->data, key) == 0) - return info; - break; - } - } - - return NULL; -} - -GNOME_Evolution_Component -e_component_registry_activate (EComponentRegistry *registry, - const char *id, - CORBA_Environment *ev) -{ - EComponentInfo *info; - - g_return_val_if_fail (E_IS_COMPONENT_REGISTRY (registry), CORBA_OBJECT_NIL); - - info = e_component_registry_peek_info (registry, ECR_FIELD_ID, id); - if (info == NULL) { - g_warning (G_GNUC_FUNCTION " - Unknown id \"%s\"", id); - return CORBA_OBJECT_NIL; - } - - /* it isn't in the registry unless it is already activated */ - return bonobo_object_dup_ref (info->iface, NULL); -} - - -E_MAKE_TYPE (e_component_registry, "EComponentRegistry", EComponentRegistry, - class_init, init, PARENT_TYPE) diff --git a/shell/e-component-registry.h b/shell/e-component-registry.h deleted file mode 100644 index f4ba0df912..0000000000 --- a/shell/e-component-registry.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-component-registry.h - * - * Copyright (C) 2000, 2003 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifndef __E_COMPONENT_REGISTRY_H__ -#define __E_COMPONENT_REGISTRY_H__ - - -#include "Evolution.h" - -#include <glib-object.h> -#include <gdk-pixbuf/gdk-pixbuf.h> - - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - - -#define E_TYPE_COMPONENT_REGISTRY (e_component_registry_get_type ()) -#define E_COMPONENT_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_COMPONENT_REGISTRY, EComponentRegistry)) -#define E_COMPONENT_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_COMPONENT_REGISTRY, EComponentRegistryClass)) -#define E_IS_COMPONENT_REGISTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_COMPONENT_REGISTRY)) -#define E_IS_COMPONENT_REGISTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_COMPONENT_REGISTRY)) - - -typedef struct _EComponentRegistry EComponentRegistry; -typedef struct _EComponentRegistryPrivate EComponentRegistryPrivate; -typedef struct _EComponentRegistryClass EComponentRegistryClass; - -struct _EComponentRegistry { - GObject parent; - - EComponentRegistryPrivate *priv; -}; - -struct _EComponentRegistryClass { - GObjectClass parent_class; -}; - -enum _EComponentRegistryField { - ECR_FIELD_ID, - ECR_FIELD_ALIAS, - ECR_FIELD_SCHEMA, -}; - -struct _EComponentInfo { - char *id; - - char *alias; - - /* NULL if not activated. */ - GNOME_Evolution_Component iface; - - char *button_label; - GdkPixbuf *button_icon; - char *menu_label; - char *menu_accelerator; - GdkPixbuf *menu_icon; - - int sort_order; - - /* List of URI schemas that this component supports. */ - GSList *uri_schemas; /* <char *> */ -}; -typedef struct _EComponentInfo EComponentInfo; - - -GType e_component_registry_get_type (void); -EComponentRegistry *e_component_registry_new (void); - -GSList *e_component_registry_peek_list (EComponentRegistry *registry); -EComponentInfo *e_component_registry_peek_info (EComponentRegistry *registry, - enum _EComponentRegistryField type, - const char *key); - -GNOME_Evolution_Component e_component_registry_activate (EComponentRegistry *registry, - const char *id, - CORBA_Environment *ev); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __E_COMPONENT_REGISTRY_H__ */ diff --git a/shell/e-config-upgrade.c b/shell/e-config-upgrade.c deleted file mode 100644 index 8fb6674a3a..0000000000 --- a/shell/e-config-upgrade.c +++ /dev/null @@ -1,159 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-upgrade.c - upgrade previous config versions - * - * Copyright (C) 2003 Ximian, Inc. - * - * Authors: Michael Zucchi <notzed@ximian.com> - * Jeffery Stedfast <fejj@ximian.com> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - */ - -#include <sys/types.h> -#include <sys/stat.h> - -#include <stdio.h> -#include <ctype.h> - -#include <glib.h> -#include <gconf/gconf.h> -#include <gconf/gconf-client.h> - -#include "e-util/e-bconf-map.h" -#include "e-config-upgrade.h" - -/* ********************************************************************** */ -/* Tables for bonobo conf -> gconf conversion */ -/* ********************************************************************** */ - -/* ********************************************************************** */ - -static e_gconf_map_t importer_elm_map[] = { - /* /Importer/Elm */ - { "mail", "importer/elm/mail", E_GCONF_MAP_BOOL }, - { "mail-imported", "importer/elm/mail-imported", E_GCONF_MAP_BOOL }, - { 0 }, -}; - -static e_gconf_map_t importer_pine_map[] = { - /* /Importer/Pine */ - { "mail", "importer/elm/mail", E_GCONF_MAP_BOOL }, - { "address", "importer/elm/address", E_GCONF_MAP_BOOL }, - { 0 }, -}; - -static e_gconf_map_t importer_netscape_map[] = { - /* /Importer/Netscape */ - { "mail", "importer/netscape/mail", E_GCONF_MAP_BOOL }, - { "settings", "importer/netscape/settings", E_GCONF_MAP_BOOL }, - { "filters", "importer/netscape/filters", E_GCONF_MAP_BOOL }, - { 0 }, -}; - -/* ********************************************************************** */ - -/* This grabs the defaults from the first view ... (?) */ -static e_gconf_map_t shell_views_map[] = { - /* /Shell/Views/0 */ - { "Width", "shell/view_defaults/width", E_GCONF_MAP_INT }, - { "Height", "shell/view_defaults/height", E_GCONF_MAP_INT }, - { "ViewPanedPosition", "shell/view_defaults/folder_bar/width", E_GCONF_MAP_INT }, - { 0 }, -}; - -static e_gconf_map_t offlinefolders_map[] = { - /* /OfflineFolders */ - { "paths", "shell/offline/folder_paths", E_GCONF_MAP_ANYLIST }, - { 0 }, -}; - -static e_gconf_map_t shell_map[] = { - /* /Shell */ - { "StartOffline", "shell/start_offline", E_GCONF_MAP_BOOL }, - { 0 }, -}; - -/* ********************************************************************** */ - -static e_gconf_map_t addressbook_map[] = { - /* /Addressbook */ - { "select_names_uri", "addressbook/select_names/last_used_uri", E_GCONF_MAP_STRING }, - { 0 }, -}; - -static e_gconf_map_t addressbook_completion_map[] = { - /* /Addressbook/Completion */ - { "uris", "addressbook/completion/uris", E_GCONF_MAP_STRING }, - { 0 }, -}; - -/* ********************************************************************** */ - -static e_gconf_map_t general_map[] = { - /* /General */ - { "CategoryMasterList", "general/category_master_list", E_GCONF_MAP_STRING } -}; - -/* ********************************************************************** */ - -e_gconf_map_list_t remap_list[] = { - { "/Importer/Elm", importer_elm_map }, - { "/Importer/Pine", importer_pine_map }, - { "/Importer/Netscape", importer_netscape_map }, - - { "/Shell", shell_map }, - { "/Shell/Views/0", shell_views_map }, - { "/OfflineFolders", offlinefolders_map }, - - { "/Addressbook", addressbook_map }, - { "/Addressbook/Completion", addressbook_completion_map }, - - { "/General", general_map }, - - { 0 }, -}; - -int -e_config_upgrade(int major, int minor, int revision) -{ - xmlDocPtr config_doc = NULL; - char *conf_file; - struct stat st; - int res = 0; - - - conf_file = g_build_filename (g_get_home_dir (), "evolution", "config.xmldb", NULL); - if (lstat (conf_file, &st) == 0 && S_ISREG (st.st_mode)) - config_doc = xmlParseFile (conf_file); - g_free (conf_file); - - if (config_doc && major <=1 && minor < 3) { - GConfClient *gconf; - - /* move bonobo config to gconf */ - gconf = gconf_client_get_default (); - - res = e_bconf_import (gconf, config_doc, remap_list); - if (res != 0) - g_warning("Could not move config from bonobo-conf to gconf"); - - g_object_unref (gconf); - - xmlFreeDoc(config_doc); - } - - return res; -} diff --git a/shell/e-config-upgrade.h b/shell/e-config-upgrade.h deleted file mode 100644 index a11fe504e7..0000000000 --- a/shell/e-config-upgrade.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-config-upgrade.h - * - * Copyright (C) 2003 Ximian, Inc. - * - * Author: Michael Zucchi <notzed@ximian.com> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef _E_CONFIG_UPGRADE_H -#define _E_CONFIG_UPGRADE_H - -int e_config_upgrade (int major, int minor, int revision); - -#endif /* _E_CONFIG_UPGRADE_H */ diff --git a/shell/e-corba-config-page.c b/shell/e-corba-config-page.c deleted file mode 100644 index 9e26785dac..0000000000 --- a/shell/e-corba-config-page.c +++ /dev/null @@ -1,165 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-corba-config-page.c - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-corba-config-page.h" - -#include "Evolution.h" - -#include <string.h> -#include <gal/util/e-util.h> - -#include <bonobo/bonobo-widget.h> -#include <bonobo/bonobo-exception.h> -#include <bonobo/bonobo-object.h> -#include <bonobo/bonobo-listener.h> - - -#define PARENT_TYPE e_config_page_get_type () -static EConfigPageClass *parent_class = NULL; - -struct _ECorbaConfigPagePrivate { - GNOME_Evolution_ConfigControl config_control_interface; -}; - -/* GObject methods. */ - -static void -impl_dispose (GObject *object) -{ - ECorbaConfigPage *corba_config_page; - ECorbaConfigPagePrivate *priv; - CORBA_Environment ev; - - corba_config_page = E_CORBA_CONFIG_PAGE (object); - priv = corba_config_page->priv; - - CORBA_exception_init (&ev); - - if (priv->config_control_interface != CORBA_OBJECT_NIL) { - bonobo_object_release_unref (priv->config_control_interface, &ev); - priv->config_control_interface = CORBA_OBJECT_NIL; - } - - CORBA_exception_free (&ev); - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - ECorbaConfigPage *corba_config_page; - ECorbaConfigPagePrivate *priv; - - corba_config_page = E_CORBA_CONFIG_PAGE (object); - priv = corba_config_page->priv; - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - -/* GTK+ ctors. */ - -static void -class_init (ECorbaConfigPageClass *class) -{ - GObjectClass *object_class; - EConfigPageClass *config_page_class; - - object_class = G_OBJECT_CLASS (class); - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - - config_page_class = E_CONFIG_PAGE_CLASS (class); - - parent_class = g_type_class_ref(PARENT_TYPE); -} - -static void -init (ECorbaConfigPage *corba_config_page) -{ - ECorbaConfigPagePrivate *priv; - - priv = g_new (ECorbaConfigPagePrivate, 1); - priv->config_control_interface = CORBA_OBJECT_NIL; - - corba_config_page->priv = priv; -} - - -gboolean -e_corba_config_page_construct (ECorbaConfigPage *corba_config_page, - GNOME_Evolution_ConfigControl corba_object) -{ - Bonobo_Control control; - GtkWidget *control_widget; - CORBA_Environment ev; - - g_return_val_if_fail (E_IS_CORBA_CONFIG_PAGE (corba_config_page), FALSE); - g_return_val_if_fail (corba_object != CORBA_OBJECT_NIL, FALSE); - - CORBA_exception_init (&ev); - - control = GNOME_Evolution_ConfigControl__get_control (corba_object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Can't get control from ::ConfigControl -- %s", BONOBO_EX_REPOID (&ev)); - CORBA_exception_init (&ev); - return FALSE; - } - - control_widget = bonobo_widget_new_control_from_objref (control, CORBA_OBJECT_NIL); - gtk_widget_show (control_widget); - gtk_container_add (GTK_CONTAINER (corba_config_page), control_widget); - - /* Notice we *don't* unref the corba_object here as - bonobo_widget_new_control_from_objref() effectively takes ownership - for the object that we get from ::__get_control. */ - - CORBA_exception_free (&ev); - - return TRUE; -} - -GtkWidget * -e_corba_config_page_new_from_objref (GNOME_Evolution_ConfigControl corba_object) -{ - ECorbaConfigPage *corba_config_page; - - g_return_val_if_fail (corba_object != CORBA_OBJECT_NIL, NULL); - g_return_val_if_fail (corba_object != CORBA_OBJECT_NIL, NULL); - - corba_config_page = g_object_new (e_corba_config_page_get_type (), NULL); - if (! e_corba_config_page_construct (corba_config_page, corba_object)) { - gtk_widget_destroy (GTK_WIDGET (corba_config_page)); - return NULL; - } - - return GTK_WIDGET (corba_config_page); -} - - -E_MAKE_TYPE (e_corba_config_page, "ECorbaConfigPgae", ECorbaConfigPage, class_init, init, PARENT_TYPE) diff --git a/shell/e-corba-config-page.h b/shell/e-corba-config-page.h deleted file mode 100644 index 5e3d4276a8..0000000000 --- a/shell/e-corba-config-page.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-corba-config-page.h - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_CORBA_CONFIG_PAGE_H_ -#define _E_CORBA_CONFIG_PAGE_H_ - -#include "e-config-page.h" - -#include "Evolution.h" - -#include <bonobo/bonobo-object.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -#define E_TYPE_CORBA_CONFIG_PAGE (e_corba_config_page_get_type ()) -#define E_CORBA_CONFIG_PAGE(obj) (GTK_CHECK_CAST ((obj), E_TYPE_CORBA_CONFIG_PAGE, ECorbaConfigPage)) -#define E_CORBA_CONFIG_PAGE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_CORBA_CONFIG_PAGE, ECorbaConfigPageClass)) -#define E_IS_CORBA_CONFIG_PAGE(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_CORBA_CONFIG_PAGE)) -#define E_IS_CORBA_CONFIG_PAGE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_CORBA_CONFIG_PAGE)) - - -typedef struct _ECorbaConfigPage ECorbaConfigPage; -typedef struct _ECorbaConfigPagePrivate ECorbaConfigPagePrivate; -typedef struct _ECorbaConfigPageClass ECorbaConfigPageClass; - -struct _ECorbaConfigPage { - EConfigPage parent; - - ECorbaConfigPagePrivate *priv; -}; - -struct _ECorbaConfigPageClass { - EConfigPageClass parent_class; -}; - - -GtkType e_corba_config_page_get_type (void); -GtkWidget *e_corba_config_page_new_from_objref (GNOME_Evolution_ConfigControl objref); -gboolean e_corba_config_page_construct (ECorbaConfigPage *corba_config_page, - GNOME_Evolution_ConfigControl objref); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _E_CORBA_CONFIG_PAGE_H_ */ diff --git a/shell/e-history.c b/shell/e-history.c deleted file mode 100644 index d12a933241..0000000000 --- a/shell/e-history.c +++ /dev/null @@ -1,261 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-history.c - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-history.h" - -#include <gal/util/e-util.h> - - -#define PARENT_TYPE gtk_object_get_type () -static GtkObjectClass *parent_class = NULL; - -struct _EHistoryPrivate { - EHistoryItemFreeFunc item_free_function; - - GList *items; - GList *current_item; -}; - - -/* GObject methods. */ - -static void -impl_finalize (GObject *object) -{ - EHistory *history; - EHistoryPrivate *priv; - GList *p; - - history = E_HISTORY (object); - priv = history->priv; - - for (p = priv->items; p != NULL; p = p->next) - (* priv->item_free_function) (p->data); - - g_list_free (priv->items); - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -static void -class_init (GObjectClass *object_class) -{ - parent_class = g_type_class_ref(PARENT_TYPE); - - object_class->finalize = impl_finalize; -} - -static void -init (EHistory *history) -{ - EHistoryPrivate *priv; - - priv = g_new (EHistoryPrivate, 1); - priv->items = NULL; - priv->current_item = NULL; - - history->priv = priv; - - GTK_OBJECT_UNSET_FLAGS (history, GTK_FLOATING); -} - - -void -e_history_construct (EHistory *history, - EHistoryItemFreeFunc item_free_function) -{ - EHistoryPrivate *priv; - - g_return_if_fail (history != NULL); - g_return_if_fail (E_IS_HISTORY (history)); - - priv = history->priv; - - priv->item_free_function = item_free_function; -} - -EHistory * -e_history_new (EHistoryItemFreeFunc item_free_function) -{ - EHistory *history; - - history = g_object_new (e_history_get_type (), NULL); - e_history_construct (history, item_free_function); - - return history; -} - -void * -e_history_prev (EHistory *history) -{ - EHistoryPrivate *priv; - - g_return_val_if_fail (history != NULL, NULL); - g_return_val_if_fail (E_IS_HISTORY (history), NULL); - - priv = history->priv; - - if (! e_history_has_prev (history)) - return NULL; - - priv->current_item = priv->current_item->prev; - return e_history_get_current (history); -} - -gboolean -e_history_has_prev (EHistory *history) -{ - EHistoryPrivate *priv; - - g_return_val_if_fail (history != NULL, FALSE); - g_return_val_if_fail (E_IS_HISTORY (history), FALSE); - - priv = history->priv; - - if (priv->current_item == NULL) - return FALSE; - - if (priv->current_item->prev == NULL) - return FALSE; - else - return TRUE; -} - -void * -e_history_next (EHistory *history) -{ - EHistoryPrivate *priv; - - g_return_val_if_fail (history != NULL, NULL); - g_return_val_if_fail (E_IS_HISTORY (history), NULL); - - priv = history->priv; - - if (! e_history_has_next (history)) - return NULL; - - priv->current_item = priv->current_item->next; - return e_history_get_current (history); -} - -gboolean -e_history_has_next (EHistory *history) -{ - EHistoryPrivate *priv; - - g_return_val_if_fail (history != NULL, FALSE); - g_return_val_if_fail (E_IS_HISTORY (history), FALSE); - - priv = history->priv; - - if (priv->current_item == NULL) - return FALSE; - - if (priv->current_item->next == NULL) - return FALSE; - else - return TRUE; -} - -void * -e_history_get_current (EHistory *history) -{ - EHistoryPrivate *priv; - - g_return_val_if_fail (history != NULL, NULL); - g_return_val_if_fail (E_IS_HISTORY (history), NULL); - - priv = history->priv; - - if (priv->current_item == NULL) - return NULL; - - return priv->current_item->data; -} - -void -e_history_add (EHistory *history, - void *data) -{ - EHistoryPrivate *priv; - - g_return_if_fail (history != NULL); - g_return_if_fail (E_IS_HISTORY (history)); - - priv = history->priv; - - if (priv->current_item == NULL) { - priv->items = g_list_prepend (priv->items, data); - priv->current_item = priv->items; - - return; - } - - if (priv->current_item->next != NULL) { - GList *p; - - for (p = priv->current_item->next; p != NULL; p = p->next) - (* priv->item_free_function) (p->data); - - priv->current_item->next->prev = NULL; - g_list_free (priv->current_item->next); - - priv->current_item->next = NULL; - } - - g_list_append (priv->current_item, data); - priv->current_item = priv->current_item->next; -} - -void -e_history_remove_matching (EHistory *history, - const void *data, - GCompareFunc compare_func) -{ - EHistoryPrivate *priv; - GList *p; - - g_return_if_fail (history != NULL); - g_return_if_fail (E_IS_HISTORY (history)); - g_return_if_fail (compare_func != NULL); - - priv = history->priv; - - for (p = priv->items; p != NULL; p = p->next) { - if ((* compare_func) (data, p->data) == 0) { - if (priv->items == priv->current_item) - priv->items = priv->current_item = g_list_remove_link (priv->items, p); - else - priv->items = g_list_remove_link (priv->items, p); - } - } -} - - -E_MAKE_TYPE (e_history, "EHistory", EHistory, class_init, init, GTK_TYPE_OBJECT) diff --git a/shell/e-history.h b/shell/e-history.h deleted file mode 100644 index 8d68c149fd..0000000000 --- a/shell/e-history.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-history.h - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_HISTORY_H_ -#define _E_HISTORY_H_ - -#include <gnome.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -#define E_TYPE_HISTORY (e_history_get_type ()) -#define E_HISTORY(obj) (GTK_CHECK_CAST ((obj), E_TYPE_HISTORY, EHistory)) -#define E_HISTORY_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_HISTORY, EHistoryClass)) -#define E_IS_HISTORY(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_HISTORY)) -#define E_IS_HISTORY_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_HISTORY)) - - -typedef struct _EHistory EHistory; -typedef struct _EHistoryPrivate EHistoryPrivate; -typedef struct _EHistoryClass EHistoryClass; - -struct _EHistory { - GtkObject parent; - - EHistoryPrivate *priv; -}; - -struct _EHistoryClass { - GtkObjectClass parent_class; -}; - - -typedef void (* EHistoryItemFreeFunc) (void *data); - - -GtkType e_history_get_type (void); - -void e_history_construct (EHistory *history, - EHistoryItemFreeFunc item_free_function); -EHistory *e_history_new (EHistoryItemFreeFunc item_free_function); - -void *e_history_prev (EHistory *history); -gboolean e_history_has_prev (EHistory *history); - -void *e_history_next (EHistory *history); -gboolean e_history_has_next (EHistory *history); - -void *e_history_get_current (EHistory *history); - -void e_history_add (EHistory *history, - void *data); - -void e_history_remove_matching (EHistory *history, - const void *data, - GCompareFunc compare_func); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _E_HISTORY_H_ */ diff --git a/shell/e-shell-constants.h b/shell/e-shell-constants.h deleted file mode 100644 index 9e0d7a5379..0000000000 --- a/shell/e-shell-constants.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-utils.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifndef E_SHELL_CONSTANTS_H -#define E_SHELL_CONSTANTS_H - -#define E_SHELL_URI_PREFIX "evolution:" -#define E_SHELL_URI_PREFIX_LEN 10 - -#define E_SHELL_DEFAULTURI_PREFIX "default:" -#define E_SHELL_DEFAULTURI_PREFIX_LEN 8 - -#define E_SHELL_MINI_ICON_SUFFIX "-mini" -#define E_SHELL_MINI_ICON_SUFFIX_LEN 5 - -#define E_SHELL_ICON_SIZE 48 -#define E_SHELL_MINI_ICON_SIZE 16 - -#define E_PATH_SEPARATOR '/' -#define E_PATH_SEPARATOR_S "/" - -#define E_LOCAL_STORAGE_NAME "local" -#define E_SUMMARY_STORAGE_NAME "summary" - -#define E_SUMMARY_URI "evolution:/summary" -#define E_LOCAL_INBOX_URI "evolution:/local/Inbox" -#define E_LOCAL_CONTACTS_URI "evolution:/local/Contacts" -#define E_LOCAL_CALENDAR_URI "evolution:/local/Calendar" -#define E_LOCAL_TASKS_URI "evolution:/local/Tasks" - -#endif diff --git a/shell/e-shell-corba-icon-utils.c b/shell/e-shell-corba-icon-utils.c deleted file mode 100644 index b88483fd35..0000000000 --- a/shell/e-shell-corba-icon-utils.c +++ /dev/null @@ -1,208 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-corba-icon-utils.c - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#include "e-shell-corba-icon-utils.h" - - - -/** - * e_store_corba_icon_from_pixbuf: - * @pixbuf: - * @icon_return: - * - * Store a CORBA Evolution::Icon in *@icon_return. @icon_return is not - * supposed to point to allocated memory, so all of its pointers are just - * overwritten. - **/ -void -e_store_corba_icon_from_pixbuf (GdkPixbuf *pixbuf, - GNOME_Evolution_Icon *icon_return) -{ - const char *sp; - CORBA_octet *dp; - int width, height, total_width, rowstride; - int i, j; - gboolean has_alpha; - - if (pixbuf == NULL) { - icon_return->width = 0; - icon_return->height = 0; - icon_return->hasAlpha = FALSE; - icon_return->rgbaData._length = 0; - icon_return->rgbaData._maximum = 0; - icon_return->rgbaData._buffer = NULL; - return; - } - - width = gdk_pixbuf_get_width (pixbuf); - height = gdk_pixbuf_get_height (pixbuf); - rowstride = gdk_pixbuf_get_rowstride (pixbuf); - has_alpha = gdk_pixbuf_get_has_alpha (pixbuf); - - if (has_alpha) - total_width = 4 * width; - else - total_width = 3 * width; - - icon_return->width = width; - icon_return->height = height; - icon_return->hasAlpha = has_alpha; - - icon_return->rgbaData._length = icon_return->height * total_width; - icon_return->rgbaData._maximum = icon_return->rgbaData._length; - icon_return->rgbaData._buffer = CORBA_sequence_CORBA_octet_allocbuf (icon_return->rgbaData._maximum); - - sp = gdk_pixbuf_get_pixels (pixbuf); - dp = icon_return->rgbaData._buffer; - for (i = 0; i < height; i ++) { - for (j = 0; j < total_width; j++) - *(dp ++) = sp[j]; - sp += rowstride; - } - - CORBA_sequence_set_release (& icon_return->rgbaData, TRUE); -} - -/** - * e_new_corba_icon_from_pixbuf: - * @pixbuf: - * - * Create a CORBA Evolution::Icon from the specified @pixbuf. - * - * Return value: The new Evolution::Icon. - **/ -GNOME_Evolution_Icon * -e_new_corba_icon_from_pixbuf (GdkPixbuf *pixbuf) -{ - GNOME_Evolution_Icon *icon; - - icon = GNOME_Evolution_Icon__alloc (); - e_store_corba_icon_from_pixbuf (pixbuf, icon); - - return icon; -} - -/** - * e_new_corba_animated_icon_from_pixbuf_array: - * @pixbuf_array: - * - * Generate a CORBA Evolution::AnimatedIcon from a NULL-terminated - * @pixbuf_array. - * - * Return value: The new Evolution::AnimatedIcon. - **/ -GNOME_Evolution_AnimatedIcon * -e_new_corba_animated_icon_from_pixbuf_array (GdkPixbuf **pixbuf_array) -{ - GNOME_Evolution_AnimatedIcon *animated_icon; - GdkPixbuf **p; - int num_frames; - int i; - - g_return_val_if_fail (pixbuf_array != NULL, NULL); - - num_frames = 0; - for (p = pixbuf_array; *p != NULL; p++) - num_frames++; - - if (num_frames == 0) - return NULL; - - animated_icon = GNOME_Evolution_AnimatedIcon__alloc (); - - animated_icon->_length = num_frames; - animated_icon->_maximum = num_frames; - animated_icon->_buffer = CORBA_sequence_GNOME_Evolution_Icon_allocbuf (animated_icon->_maximum); - - for (i = 0; i < num_frames; i++) - e_store_corba_icon_from_pixbuf (pixbuf_array[i], & animated_icon->_buffer[i]); - - CORBA_sequence_set_release (animated_icon, TRUE); - - return animated_icon; -} - - -/** - * e_new_gdk_pixbuf_from_corba_icon: - * @icon: A CORBA Evolution::Icon. - * @scaled_width: Width of the GdkPixbuf to obtain. - * @scaled_height: Width of the GdkPixbuf to obtain. - * - * If @scaled_width or @scaled_height is -1, do not scale. - * - * Create a GdkPixbuf for the specified CORBA @icon. - * - * Return value: The newly created GdkPixbuf. - **/ -GdkPixbuf * -e_new_gdk_pixbuf_from_corba_icon (const GNOME_Evolution_Icon *icon, - int scaled_width, - int scaled_height) -{ - GdkPixbuf *pixbuf; - GdkPixbuf *scaled_pixbuf; - unsigned char *p; - int src_offset; - int i, j; - int rowstride; - int total_width; - - g_return_val_if_fail (icon != NULL, NULL); - - if (scaled_width == -1) - scaled_width = icon->width; - - if (scaled_height == -1) - scaled_height = icon->height; - - pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, icon->hasAlpha, 8, icon->width, icon->height); - - if (icon->hasAlpha) - total_width = 4 * icon->width; - else - total_width = 3 * icon->width; - - rowstride = gdk_pixbuf_get_rowstride (pixbuf); - src_offset = 0; - p = gdk_pixbuf_get_pixels (pixbuf); - - for (i = 0; i < icon->height; i++) { - for (j = 0; j < total_width; j++) - p[j] = icon->rgbaData._buffer[src_offset ++]; - p += rowstride; - } - - if (icon->width == scaled_width && icon->height == scaled_height) - return pixbuf; - - scaled_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, icon->hasAlpha, 8, scaled_width, scaled_height); - gdk_pixbuf_scale (pixbuf, scaled_pixbuf, - 0, 0, scaled_width, scaled_height, - 0, 0, (double) scaled_width / icon->width, (double) scaled_height / icon->height, - GDK_INTERP_HYPER); - - g_object_unref (pixbuf); - - return scaled_pixbuf; -} - diff --git a/shell/e-shell-corba-icon-utils.h b/shell/e-shell-corba-icon-utils.h deleted file mode 100644 index cc9da3c24b..0000000000 --- a/shell/e-shell-corba-icon-utils.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-corba-icon-utils.h - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifndef E_SHELL_ICON_UTILS_H -#define E_SHELL_ICON_UTILS_H - -#include "Evolution.h" - -#include <gdk-pixbuf/gdk-pixbuf.h> - - -void e_store_corba_icon_from_pixbuf (GdkPixbuf *pixbuf, - GNOME_Evolution_Icon *icon_return); -GNOME_Evolution_Icon *e_new_corba_icon_from_pixbuf (GdkPixbuf *pixbuf); -GNOME_Evolution_AnimatedIcon *e_new_corba_animated_icon_from_pixbuf_array (GdkPixbuf **pixbuf_array); - -GdkPixbuf *e_new_gdk_pixbuf_from_corba_icon (const GNOME_Evolution_Icon *icon, - int scaled_width, - int scaled_height); - -#endif diff --git a/shell/e-shell-folder-title-bar.c b/shell/e-shell-folder-title-bar.c deleted file mode 100644 index 9871a9c1d1..0000000000 --- a/shell/e-shell-folder-title-bar.c +++ /dev/null @@ -1,749 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-folder-title-bar.c - * - * Copyright (C) 2000, 2001 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <string.h> -#include <gtk/gtkarrow.h> -#include <gtk/gtklabel.h> -#include <gtk/gtkimage.h> -#include <gtk/gtkrc.h> -#include <gtk/gtksignal.h> -#include <gtk/gtktogglebutton.h> -#include <libgnome/gnome-i18n.h> -#include <gdk-pixbuf/gdk-pixbuf.h> - -#include <gal/util/e-util.h> - -#include "widgets/misc/e-clipped-label.h" -#include "e-shell-constants.h" -#include "e-shell-marshal.h" -#include "e-shell-folder-title-bar.h" - - -#define PARENT_TYPE GTK_TYPE_HBOX -static GtkHBox *parent_class = NULL; - -struct _EShellFolderTitleBarPrivate { - GdkPixbuf *icon; - - /* We have an icon, a label and a button that contains an icon and a - label. When the button is enabled, the stand-alone label icon get - hidden; when the button is disabled, the button gets hidden and the - label and the icon get shown. This is pretty ugly but it easier to - manage the GTK layout this way. */ - - /* The stand-alone icon/label combo. */ - GtkWidget *title_icon; - GtkWidget *title_label; - - /* The button. */ - GtkWidget *title_button; - GtkWidget *title_button_icon; - GtkWidget *title_button_label; - GtkWidget *title_button_arrow; - - /* Holds extra information that is to be shown on the bar. */ - GtkWidget *folder_bar_label; - - /* Navigation buttons. */ - GtkWidget *back_button; - GtkWidget *forward_button; - - gboolean title_clickable; -}; - -enum { - TITLE_TOGGLED, - BACK_CLICKED, - FORWARD_CLICKED, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = { 0 }; - - -/* Utility functions for managing icons and icon widgets. */ - -static GdkPixbuf * -new_empty_pixbuf (void) -{ - GdkPixbuf *empty_pixbuf; - unsigned char *pixels; - - empty_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 1, 1); - pixels = gdk_pixbuf_get_pixels (empty_pixbuf); - - memset (pixels, 0, 4); - - return empty_pixbuf; -} - -static GtkWidget * -new_empty_image_widget (void) -{ - GtkWidget *image_widget; - GdkPixmap *pixmap; - GdkBitmap *mask; - GdkPixbuf *empty_pixbuf; - - empty_pixbuf = new_empty_pixbuf (); - - gdk_pixbuf_render_pixmap_and_mask (empty_pixbuf, &pixmap, &mask, 127); - image_widget = gtk_image_new_from_pixmap (pixmap, mask); - - g_object_unref (empty_pixbuf); - - return image_widget; -} - - -/* Utility functions. */ - -static int -get_max_clipped_label_width (EClippedLabel *clipped_label) -{ - int width; - - pango_layout_get_pixel_size (clipped_label->layout, &width, NULL); - width += 2 * GTK_MISC (clipped_label)->xpad; - - return width; -} - -static void -size_allocate_title_button (EShellFolderTitleBar *title_bar, - GtkAllocation *allocation, - int offset, - int *available_width_inout) -{ - EShellFolderTitleBarPrivate *priv; - GtkAllocation child_allocation; - GtkRequisition child_requisition; - int border_width; - - priv = title_bar->priv; - - /* Keep a little distance from the navigation arrows. */ - allocation->x += 2; - - border_width = GTK_CONTAINER (title_bar)->border_width; - - gtk_widget_get_child_requisition (priv->title_button, &child_requisition); - child_allocation.x = allocation->x + border_width + offset; - child_allocation.y = allocation->y + border_width; - child_allocation.height = allocation->height - 2 * border_width; - - child_allocation.width = child_requisition.width; - child_allocation.width += get_max_clipped_label_width (E_CLIPPED_LABEL (priv->title_button_label)); - - child_allocation.width = MIN (child_allocation.width, *available_width_inout); - - gtk_widget_size_allocate (priv->title_button, & child_allocation); - - *available_width_inout -= child_allocation.width; -} - -static int -size_allocate_navigation_buttons_and_title_icon (EShellFolderTitleBar *title_bar, - GtkAllocation *allocation) -{ - EShellFolderTitleBarPrivate *priv; - GtkRequisition child_requisition; - GtkAllocation child_allocation; - int border_width; - - priv = title_bar->priv; - - border_width = GTK_CONTAINER (title_bar)->border_width; - - child_allocation.x = allocation->x + border_width; - child_allocation.y = allocation->y + border_width; - child_allocation.height = allocation->height - 2 * border_width; - - gtk_widget_size_request (priv->back_button, &child_requisition); - child_allocation.width = child_requisition.width; - gtk_widget_size_allocate (priv->back_button, &child_allocation); - - child_allocation.x += child_allocation.width; - - gtk_widget_size_request (priv->forward_button, &child_requisition); - child_allocation.width = child_requisition.width; - gtk_widget_size_allocate (priv->forward_button, &child_allocation); - - if (! priv->title_clickable) { - /* Keep a little distance from the navigation arrows. */ - child_allocation.x += child_allocation.width + 5; - - gtk_widget_size_request (priv->title_icon, &child_requisition); - child_allocation.width = child_requisition.width; - gtk_widget_size_allocate (priv->title_icon, &child_allocation); - } - - return child_allocation.x + child_allocation.width; -} - -static void -size_allocate_label (EShellFolderTitleBar *title_bar, - GtkAllocation *allocation, - int offset, - int *available_width_inout) -{ - EShellFolderTitleBarPrivate *priv; - GtkAllocation child_allocation; - int border_width; - - priv = title_bar->priv; - - border_width = GTK_CONTAINER (title_bar)->border_width; - - child_allocation.x = allocation->x + border_width + offset; - child_allocation.y = allocation->y + border_width; - child_allocation.height = allocation->height - 2 * border_width; - - child_allocation.width = MIN (get_max_clipped_label_width (E_CLIPPED_LABEL (priv->title_label)), - *available_width_inout); - - gtk_widget_size_allocate (priv->title_label, & child_allocation); - - *available_width_inout -= child_allocation.width; -} - - -/* The back/forward navigation buttons. */ - -static void -back_button_clicked_callback (GtkButton *button, - void *data) -{ - EShellFolderTitleBar *folder_title_bar; - - folder_title_bar = E_SHELL_FOLDER_TITLE_BAR (data); - - g_signal_emit (folder_title_bar, signals[BACK_CLICKED], 0); -} - -static void -forward_button_clicked_callback (GtkButton *button, - void *data) -{ - EShellFolderTitleBar *folder_title_bar; - - folder_title_bar = E_SHELL_FOLDER_TITLE_BAR (data); - - g_signal_emit (folder_title_bar, signals[FORWARD_CLICKED], 0); -} - -static void -add_navigation_buttons (EShellFolderTitleBar *folder_title_bar) -{ - EShellFolderTitleBarPrivate *priv; - GtkWidget *back_image; - GtkWidget *forward_image; - - priv = folder_title_bar->priv; - - priv->back_button = gtk_button_new (); - gtk_button_set_relief (GTK_BUTTON (priv->back_button), GTK_RELIEF_NONE); - GTK_WIDGET_UNSET_FLAGS (priv->back_button, GTK_CAN_FOCUS); - - back_image = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_NONE); - gtk_container_add (GTK_CONTAINER (priv->back_button), back_image); - - g_signal_connect (priv->back_button, "clicked", - G_CALLBACK (back_button_clicked_callback), folder_title_bar); - - priv->forward_button = gtk_button_new (); - gtk_button_set_relief (GTK_BUTTON (priv->forward_button), GTK_RELIEF_NONE); - GTK_WIDGET_UNSET_FLAGS (priv->forward_button, GTK_CAN_FOCUS); - - forward_image = gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE); - gtk_container_add (GTK_CONTAINER (priv->forward_button), forward_image); - - g_signal_connect (priv->forward_button, "clicked", - G_CALLBACK (forward_button_clicked_callback), folder_title_bar); - - gtk_box_pack_start (GTK_BOX (folder_title_bar), priv->back_button, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (folder_title_bar), priv->forward_button, FALSE, FALSE, 0); - - gtk_widget_show_all (priv->back_button); - gtk_widget_show_all (priv->forward_button); -} - - -/* Popup button callback. */ - -static void -title_button_toggled_cb (GtkToggleButton *title_button, - void *data) -{ - EShellFolderTitleBar *folder_title_bar; - - folder_title_bar = E_SHELL_FOLDER_TITLE_BAR (data); - - g_signal_emit (folder_title_bar, signals[TITLE_TOGGLED], 0, - gtk_toggle_button_get_active (title_button)); -} - - -/* GObject methods. */ - -static void -impl_dispose (GObject *object) -{ - EShellFolderTitleBar *folder_title_bar; - EShellFolderTitleBarPrivate *priv; - - folder_title_bar = E_SHELL_FOLDER_TITLE_BAR (object); - priv = folder_title_bar->priv; - - if (priv->icon != NULL) { - g_object_unref (priv->icon); - priv->icon = NULL; - } - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - EShellFolderTitleBar *folder_title_bar; - EShellFolderTitleBarPrivate *priv; - - folder_title_bar = E_SHELL_FOLDER_TITLE_BAR (object); - priv = folder_title_bar->priv; - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -/* GTkWidget methods. */ - -static void -impl_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - EShellFolderTitleBar *title_bar; - EShellFolderTitleBarPrivate *priv; - GtkAllocation label_allocation; - int border_width; - int available_width; - int width_before_icon; - int offset; - - title_bar = E_SHELL_FOLDER_TITLE_BAR (widget); - priv = title_bar->priv; - - border_width = GTK_CONTAINER (widget)->border_width; - available_width = allocation->width - 2 * border_width; - - offset = size_allocate_navigation_buttons_and_title_icon (title_bar, allocation); - available_width -= offset; - - width_before_icon = available_width; - - if (priv->title_clickable) - size_allocate_title_button (title_bar, allocation, offset, & available_width); - else - size_allocate_label (title_bar, allocation, offset, & available_width); - - label_allocation.x = allocation->x + width_before_icon - available_width - border_width + offset; - label_allocation.y = allocation->y + border_width; - label_allocation.width = available_width - 2 * border_width; - label_allocation.height = allocation->height - 2 * border_width; - - gtk_widget_size_allocate (priv->folder_bar_label, & label_allocation); - - widget->allocation = *allocation; -} - - -static int -impl_expose_event (GtkWidget *widget, - GdkEventExpose *event) -{ - gtk_paint_flat_box (widget->style, widget->window, - GTK_STATE_ACTIVE, GTK_SHADOW_OUT, - &event->area, widget, "EShellFolderTitleBar", - widget->allocation.x, - widget->allocation.y, - widget->allocation.width, - widget->allocation.height); - - (* GTK_WIDGET_CLASS (parent_class)->expose_event) (widget, event); - - return FALSE; -} - - -static void -class_init (EShellFolderTitleBarClass *klass) -{ - GObjectClass *object_class; - GtkWidgetClass *widget_class; - - object_class = G_OBJECT_CLASS (klass); - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - - widget_class = GTK_WIDGET_CLASS (klass); - widget_class->size_allocate = impl_size_allocate; - widget_class->expose_event = impl_expose_event; - - parent_class = g_type_class_ref(PARENT_TYPE); - - signals[TITLE_TOGGLED] - = g_signal_new ("title_toggled", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EShellFolderTitleBarClass, title_toggled), - NULL, NULL, - e_shell_marshal_NONE__BOOL, - G_TYPE_NONE, 1, - G_TYPE_BOOLEAN); - - signals[BACK_CLICKED] - = g_signal_new ("back_clicked", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EShellFolderTitleBarClass, back_clicked), - NULL, NULL, - e_shell_marshal_NONE__NONE, - G_TYPE_NONE, 0); - - signals[FORWARD_CLICKED] - = g_signal_new ("forward_clicked", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EShellFolderTitleBarClass, forward_clicked), - NULL, NULL, - e_shell_marshal_NONE__NONE, - G_TYPE_NONE, 0); -} - -static void -init (EShellFolderTitleBar *shell_folder_title_bar) -{ - EShellFolderTitleBarPrivate *priv; - - priv = g_new (EShellFolderTitleBarPrivate, 1); - - priv->icon = NULL; - - priv->title_icon = NULL; - priv->title_label = NULL; - - priv->title_button = NULL; - priv->title_button_icon = NULL; - priv->title_button_label = NULL; - priv->title_button_arrow = NULL; - - priv->folder_bar_label = NULL; - - priv->back_button = NULL; - priv->forward_button = NULL; - - priv->title_clickable = TRUE; - - shell_folder_title_bar->priv = priv; -} - - -/** - * e_shell_folder_title_bar_construct: - * @folder_title_bar: - * - * Construct the folder title bar widget. - **/ -void -e_shell_folder_title_bar_construct (EShellFolderTitleBar *folder_title_bar) -{ - EShellFolderTitleBarPrivate *priv; - GtkWidget *title_button_hbox; - GtkWidget *widget; - - g_return_if_fail (folder_title_bar != NULL); - g_return_if_fail (E_IS_SHELL_FOLDER_TITLE_BAR (folder_title_bar)); - - priv = folder_title_bar->priv; - widget = GTK_WIDGET (folder_title_bar); - - priv->title_icon = new_empty_image_widget (); - gtk_misc_set_alignment (GTK_MISC (priv->title_icon), 1.0, .5); - gtk_misc_set_padding (GTK_MISC (priv->title_icon), 2, 0); - gtk_widget_show (priv->title_icon); - - priv->title_label = e_clipped_label_new ("", PANGO_WEIGHT_BOLD, 1.2); - gtk_misc_set_padding (GTK_MISC (priv->title_label), 0, 0); - gtk_misc_set_alignment (GTK_MISC (priv->title_label), 0.0, 0.5); - - priv->title_button_label = e_clipped_label_new ("", PANGO_WEIGHT_BOLD, 1.2); - gtk_misc_set_padding (GTK_MISC (priv->title_button_label), 2, 0); - gtk_misc_set_alignment (GTK_MISC (priv->title_button_label), 0.0, 0.5); - gtk_widget_show (priv->title_button_label); - - priv->folder_bar_label = e_clipped_label_new ("", PANGO_WEIGHT_NORMAL, 1.0); - gtk_misc_set_alignment (GTK_MISC (priv->folder_bar_label), 1.0, 0.5); - gtk_widget_show (priv->folder_bar_label); - - priv->title_button_icon = new_empty_image_widget (); - gtk_widget_show (priv->title_button_icon); - - title_button_hbox = gtk_hbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (title_button_hbox), priv->title_button_icon, - FALSE, TRUE, 2); - gtk_box_pack_start (GTK_BOX (title_button_hbox), priv->title_button_label, - TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (title_button_hbox), gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE), - FALSE, TRUE, 2); - gtk_widget_show (title_button_hbox); - - priv->title_button = gtk_toggle_button_new (); - gtk_button_set_relief (GTK_BUTTON (priv->title_button), GTK_RELIEF_NONE); - gtk_container_add (GTK_CONTAINER (priv->title_button), title_button_hbox); - GTK_WIDGET_UNSET_FLAGS (priv->title_button, GTK_CAN_FOCUS); - gtk_widget_show (priv->title_button); - - gtk_container_set_border_width (GTK_CONTAINER (folder_title_bar), 2); - gtk_box_pack_start (GTK_BOX (folder_title_bar), priv->title_icon, FALSE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (folder_title_bar), priv->title_label, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (folder_title_bar), priv->title_button, FALSE, FALSE, 0); - gtk_box_pack_start (GTK_BOX (folder_title_bar), priv->folder_bar_label, TRUE, TRUE, 0); - - /* Make the label have a border as large as the button's. - FIXME: This is really hackish. The hardcoded numbers should be OK - as the padding is hardcoded in GtkButton too (see CHILD_SPACING in - gtkbutton.c). */ - gtk_misc_set_padding (GTK_MISC (priv->title_label), - GTK_WIDGET (priv->title_button)->style->xthickness, - GTK_WIDGET (priv->title_button)->style->ythickness + 2); - - g_signal_connect (priv->title_button, "toggled", - G_CALLBACK (title_button_toggled_cb), folder_title_bar); - - add_navigation_buttons (folder_title_bar); - - e_shell_folder_title_bar_set_title (folder_title_bar, NULL); -} - -/** - * e_shell_folder_title_bar_new: - * @void: - * - * Create a new title bar widget. - * - * Return value: - **/ -GtkWidget * -e_shell_folder_title_bar_new (void) -{ - EShellFolderTitleBar *new; - - new = g_object_new (e_shell_folder_title_bar_get_type (), NULL); - - e_shell_folder_title_bar_construct (new); - - return GTK_WIDGET (new); -} - -/** - * e_shell_folder_title_bar_set_title: - * @folder_title_bar: - * @title: - * - * Set the title for the title bar. - **/ -void -e_shell_folder_title_bar_set_title (EShellFolderTitleBar *folder_title_bar, - const char *title) -{ - EShellFolderTitleBarPrivate *priv; - - g_return_if_fail (folder_title_bar != NULL); - g_return_if_fail (E_IS_SHELL_FOLDER_TITLE_BAR (folder_title_bar)); - - priv = folder_title_bar->priv; - - if (title == NULL) { - e_clipped_label_set_text (E_CLIPPED_LABEL (priv->title_button_label), _("(Untitled)")); - e_clipped_label_set_text (E_CLIPPED_LABEL (priv->title_label), _("(Untitled)")); - } else { - e_clipped_label_set_text (E_CLIPPED_LABEL (priv->title_button_label), title); - e_clipped_label_set_text (E_CLIPPED_LABEL (priv->title_label), title); - } - - /* FIXME: There seems to be a bug in EClippedLabel, this is just a workaround. */ - gtk_widget_queue_resize (GTK_WIDGET (folder_title_bar)); -} - -/** - * e_shell_folder_title_bar_set_folder_bar_label: - * @folder_title_bar: - * @text: Some text to show in the label. - * - * Sets the right-justified text label (to the left of the icon) for - * the title bar. - **/ -void -e_shell_folder_title_bar_set_folder_bar_label (EShellFolderTitleBar *folder_title_bar, - const char *text) -{ - EShellFolderTitleBarPrivate *priv; - - g_return_if_fail (folder_title_bar != NULL); - g_return_if_fail (E_IS_SHELL_FOLDER_TITLE_BAR (folder_title_bar)); - - priv = folder_title_bar->priv; - - if (text == NULL) - e_clipped_label_set_text (E_CLIPPED_LABEL (priv->folder_bar_label), ""); - else - e_clipped_label_set_text (E_CLIPPED_LABEL (priv->folder_bar_label), text); - - /* FIXME: Might want to set the styles somewhere in here too, - black text on grey background isn't the best combination */ - - gtk_widget_queue_resize (GTK_WIDGET (folder_title_bar)); -} - -/** - * e_shell_folder_title_bar_set_icon: - * @folder_title_bar: - * @icon: - * - * Set the name of the icon for the title bar. - **/ -void -e_shell_folder_title_bar_set_icon (EShellFolderTitleBar *folder_title_bar, - GdkPixbuf *icon) -{ - EShellFolderTitleBarPrivate *priv; - GdkPixmap *pixmap; - GdkBitmap *mask; - - g_return_if_fail (folder_title_bar != NULL); - g_return_if_fail (E_IS_SHELL_FOLDER_TITLE_BAR (folder_title_bar)); - - priv = folder_title_bar->priv; - - if (icon == NULL) { - if (priv->icon != NULL) - g_object_unref (priv->icon); - priv->icon = new_empty_pixbuf (); - } else { - g_object_ref (icon); - if (priv->icon != NULL) - g_object_unref (priv->icon); - priv->icon = icon; - } - - gdk_pixbuf_render_pixmap_and_mask (priv->icon, &pixmap, &mask, 127); - gtk_image_set_from_pixmap (GTK_IMAGE (priv->title_button_icon), pixmap, mask); - - gdk_pixbuf_render_pixmap_and_mask (priv->icon, &pixmap, &mask, 127); - gtk_image_set_from_pixmap (GTK_IMAGE (priv->title_icon), pixmap, mask); -} - - -/** - * e_shell_folder_title_bar_set_toggle_state: - * @folder_title_bar: - * @state: - * - * Set whether the title bar's button is in pressed state (TRUE) or not (FALSE). - **/ -void -e_shell_folder_title_bar_set_toggle_state (EShellFolderTitleBar *folder_title_bar, - gboolean state) -{ - EShellFolderTitleBarPrivate *priv; - - g_return_if_fail (folder_title_bar != NULL); - g_return_if_fail (E_IS_SHELL_FOLDER_TITLE_BAR (folder_title_bar)); - - priv = folder_title_bar->priv; - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->title_button), state); -} - -/** - * e_shell_folder_title_bar_set_clickable: - * @folder_title_bar: - * @clickable: - * - * Specify whether the title in the @folder_title_bar is clickable. If not, - * the arrow pixmap is not shown. - **/ -void -e_shell_folder_title_bar_set_title_clickable (EShellFolderTitleBar *folder_title_bar, - gboolean title_clickable) -{ - EShellFolderTitleBarPrivate *priv; - - g_return_if_fail (folder_title_bar != NULL); - g_return_if_fail (E_IS_SHELL_FOLDER_TITLE_BAR (folder_title_bar)); - - priv = folder_title_bar->priv; - - if ((priv->title_clickable && title_clickable) - || (! priv->title_clickable && ! title_clickable)) - return; - - if (title_clickable) { - gtk_widget_hide (priv->title_label); - gtk_widget_hide (priv->title_icon); - - gtk_widget_show_all (priv->title_button); - } else { - gtk_widget_hide (priv->title_button); - - gtk_widget_show (priv->title_icon); - gtk_widget_show (priv->title_label); - } - - priv->title_clickable = !! title_clickable; -} - - -void -e_shell_folder_title_bar_update_navigation_buttons (EShellFolderTitleBar *folder_title_bar, - gboolean can_go_back, - gboolean can_go_forward) -{ - EShellFolderTitleBarPrivate *priv; - - g_return_if_fail (folder_title_bar != NULL); - g_return_if_fail (E_IS_SHELL_FOLDER_TITLE_BAR (folder_title_bar)); - - priv = folder_title_bar->priv; - - gtk_widget_set_sensitive (priv->back_button, can_go_back); - gtk_widget_set_sensitive (priv->forward_button, can_go_forward); -} - - -E_MAKE_TYPE (e_shell_folder_title_bar, "EShellFolderTitleBar", EShellFolderTitleBar, class_init, init, PARENT_TYPE) diff --git a/shell/e-shell-folder-title-bar.h b/shell/e-shell-folder-title-bar.h deleted file mode 100644 index 274e590ef7..0000000000 --- a/shell/e-shell-folder-title-bar.h +++ /dev/null @@ -1,84 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-folder-title-bar.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifndef __E_SHELL_FOLDER_TITLE_BAR_H__ -#define __E_SHELL_FOLDER_TITLE_BAR_H__ - -#include <gtk/gtkhbox.h> -#include <gdk-pixbuf/gdk-pixbuf.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -#define E_TYPE_SHELL_FOLDER_TITLE_BAR (e_shell_folder_title_bar_get_type ()) -#define E_SHELL_FOLDER_TITLE_BAR(obj) (GTK_CHECK_CAST ((obj), E_TYPE_SHELL_FOLDER_TITLE_BAR, EShellFolderTitleBar)) -#define E_SHELL_FOLDER_TITLE_BAR_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHELL_FOLDER_TITLE_BAR, EShellFolderTitleBarClass)) -#define E_IS_SHELL_FOLDER_TITLE_BAR(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_SHELL_FOLDER_TITLE_BAR)) -#define E_IS_SHELL_FOLDER_TITLE_BAR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHELL_FOLDER_TITLE_BAR)) - - -typedef struct _EShellFolderTitleBar EShellFolderTitleBar; -typedef struct _EShellFolderTitleBarPrivate EShellFolderTitleBarPrivate; -typedef struct _EShellFolderTitleBarClass EShellFolderTitleBarClass; - -struct _EShellFolderTitleBar { - GtkHBox parent; - - EShellFolderTitleBarPrivate *priv; -}; - -struct _EShellFolderTitleBarClass { - GtkHBoxClass parent_class; - - /* Signals. */ - void (* title_toggled) (EShellFolderTitleBar *folder_title_bar, gboolean pressed); - void (* back_clicked) (EShellFolderTitleBar *folder_title_bar); - void (* forward_clicked) (EShellFolderTitleBar *folder_title_bar); -}; - - -GtkType e_shell_folder_title_bar_get_type (void); -void e_shell_folder_title_bar_construct (EShellFolderTitleBar *folder_title_bar); -GtkWidget *e_shell_folder_title_bar_new (void); - -void e_shell_folder_title_bar_set_title (EShellFolderTitleBar *folder_title_bar, - const char *title); -void e_shell_folder_title_bar_set_folder_bar_label (EShellFolderTitleBar *folder_title_bar, - const char *folder_bar_label); -void e_shell_folder_title_bar_set_icon (EShellFolderTitleBar *folder_title_bar, - GdkPixbuf *icon); -void e_shell_folder_title_bar_set_toggle_state (EShellFolderTitleBar *folder_title_bar, - gboolean state); -void e_shell_folder_title_bar_set_title_clickable (EShellFolderTitleBar *folder_title_bar, - gboolean clickable); - -void e_shell_folder_title_bar_update_navigation_buttons (EShellFolderTitleBar *folder_title_bar, - gboolean can_go_back, - gboolean can_go_forward); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __E_SHELL_FOLDER_TITLE_BAR_H__ */ diff --git a/shell/e-shell-importer.c b/shell/e-shell-importer.c deleted file mode 100644 index 2ad0899580..0000000000 --- a/shell/e-shell-importer.c +++ /dev/null @@ -1,1294 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* importer.c - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> - -#include <string.h> - -#include <glib.h> -#include <libgnome/gnome-i18n.h> -#include <libgnomeui/gnome-druid.h> -#include <libgnomeui/gnome-druid-page-edge.h> -#include <libgnomeui/gnome-druid-page-standard.h> -#include <libgnomeui/gnome-file-entry.h> - -#include <bonobo-activation/bonobo-activation.h> - -#include <bonobo/bonobo-exception.h> -#include <bonobo/bonobo-widget.h> - -#include "e-shell.h" -#include "e-shell-window.h" -#include "e-shell-constants.h" - -#include "importer/evolution-importer-client.h" - -#include <glade/glade.h> -#include <gal/widgets/e-gui-utils.h> - -#include <e-util/e-gtk-utils.h> -#include <e-util/e-dialog-utils.h> -#include <e-util/e-icon-factory.h> - -#include "e-shell-importer.h" -#include "importer/GNOME_Evolution_Importer.h" - -typedef struct _ImportDialogFilePage { - GtkWidget *vbox; - GtkWidget *filename; - GtkWidget *filetype; - GtkWidget *menu; - - gboolean need_filename; -} ImportDialogFilePage; - -typedef struct _ImportDialogDestPage { - GtkWidget *vbox; -} ImportDialogDestPage; - -typedef struct _ImportDialogTypePage { - GtkWidget *vbox; - GtkWidget *intelligent; - GtkWidget *file; -} ImportDialogTypePage; - -typedef struct _ImportDialogImporterPage { - GtkWidget *vbox; - - GList *importers; - gboolean prepared; - int running; -} ImportDialogImporterPage; - -typedef struct _ImportData { - EShell *shell; - EShellWindow *window; - - GladeXML *wizard; - GtkWidget *dialog; - GtkWidget *druid; - GtkWidget *control; - ImportDialogFilePage *filepage; - ImportDialogDestPage *destpage; - ImportDialogTypePage *typepage; - ImportDialogImporterPage *importerpage; - - GtkWidget *filedialog; - GtkWidget *typedialog; - GtkWidget *destdialog; - GtkWidget *intelligent; - GnomeDruidPageEdge *start; - GnomeDruidPageEdge *finish; - GtkWidget *vbox; - - char *filename; - char *choosen_iid; - EvolutionImporterClient *client; -} ImportData; - -typedef struct _IntelligentImporterData { - CORBA_Object object; - Bonobo_Control control; - GtkWidget *widget; - - char *name; - char *blurb; - char *iid; -} IntelligentImporterData; - -typedef struct _SelectedImporterData{ - CORBA_Object importer; - char *iid; -} SelectedImporterData; - -#define IMPORTER_REPO_ID_QUERY "repo_ids.has ('IDL:GNOME/Evolution/Importer:" BASE_VERSION "')" -#define IMPORTER_INTEL_REPO_ID_QUERY "repo_ids.has ('IDL:GNOME/Evolution/IntelligentImporter:" BASE_VERSION "')" -/*#define IMPORTER_DEBUG*/ - -#ifdef IMPORTER_DEBUG -#define IN g_print ("=====> %s (%d)\n", G_GNUC_FUNCTION, __LINE__) -#define OUT g_print ("<==== %s (%d)\n", G_GNUC_FUNCTION, __LINE__) -#else -#define IN -#define OUT -#endif - -static struct { - char *name; - char *text; -} info[] = { - { "type_html", - N_("Choose the type of importer to run:") - }, - { "file_html", - N_("Choose the file that you want to import into Evolution, " - "and select what type of file it is from the list.\n\n" - "You can select \"Automatic\" if you do not know, and " - "Evolution will attempt to work it out.") - }, - { "dest_html", - N_("Choose the destination for this import") - }, - { "intelligent_html", - N_("Please select the information that you would like to import:") - }, - { "nodata_html", - N_("Evolution checked for settings to import from the following\n" - "applications: Pine, Netscape, Elm, iCalendar. No settings\n" - "that could be imported where found. If you would like to\n" - "try again, please click the \"Back\" button.\n") - } -}; -#define num_info (sizeof (info) / sizeof (info[0])) - -static GtkWidget * -create_help (const char *name) -{ - GtkWidget *label; - int i; - - for (i = 0; i < num_info; i++) { - if (!strcmp (name, info[i].name)) - break; - } - g_assert(i != num_info); - - label = gtk_label_new(_(info[i].text)); - gtk_widget_show (label); - gtk_label_set_line_wrap((GtkLabel *)label, TRUE); - - return label; -} - -/* Importing functions */ - -/* Data to be passed around */ -typedef struct _ImporterComponentData { - EvolutionImporterClient *client; - EvolutionImporterListener *listener; - char *filename; - - GtkDialog *dialog; - GtkWidget *contents; - - int item; - - gboolean stop; -} ImporterComponentData; - -static gboolean importer_timeout_fn (gpointer data); -static void -import_cb (EvolutionImporterListener *listener, - EvolutionImporterResult result, - gboolean more_items, - void *data) -{ - ImporterComponentData *icd = (ImporterComponentData *) data; - char *label; - - IN; - if (icd->stop != TRUE) { - if (result == EVOLUTION_IMPORTER_NOT_READY) { - g_timeout_add (500, importer_timeout_fn, data); - OUT; - return; - } - - if (result == EVOLUTION_IMPORTER_BUSY) { - g_timeout_add (500, importer_timeout_fn, data); - OUT; - return; - } - - if (more_items) { - char *utf8_filename; - - utf8_filename = g_filename_to_utf8 (icd->filename, -1, NULL, NULL, NULL); - label = g_strdup_printf (_("Importing %s\nImporting item %d."), - utf8_filename, ++(icd->item)); - gtk_label_set_text (GTK_LABEL (icd->contents), label); - g_free (label); - g_free (utf8_filename); - while (gtk_events_pending ()) - gtk_main_iteration (); - - g_idle_add_full (G_PRIORITY_LOW, importer_timeout_fn, - data, NULL); - OUT; - return; - } - } - - g_free (icd->filename); - if (icd->dialog != NULL) - gtk_widget_destroy ((GtkWidget *)icd->dialog); - bonobo_object_unref (BONOBO_OBJECT (icd->listener)); - g_object_unref (icd->client); - g_free (icd); - - OUT; -} - -static gboolean -importer_timeout_fn (gpointer data) -{ - ImporterComponentData *icd = (ImporterComponentData *) data; - char *label, *utf8_filename; - - IN; - - utf8_filename = g_filename_to_utf8 (icd->filename, -1, NULL, NULL, NULL); - label = g_strdup_printf (_("Importing %s\nImporting item %d."), - utf8_filename, icd->item); - gtk_label_set_text (GTK_LABEL (icd->contents), label); - g_free (label); - g_free (utf8_filename); - while (gtk_events_pending ()) - gtk_main_iteration (); - - evolution_importer_client_process_item (icd->client, icd->listener); - OUT; - return FALSE; -} - -static void -dialog_response_cb (GtkDialog *dialog, - int button_number, - ImporterComponentData *icd) -{ - if (button_number != GTK_RESPONSE_CANCEL) - return; /* Interesting... */ - - icd->stop = TRUE; -} - -static void -dialog_destroy_notify (void *data, - GObject *where_the_dialog_was) -{ - ImporterComponentData *icd = (ImporterComponentData *) data; - - icd->dialog = NULL; - icd->stop = TRUE; -} - -struct _IIDInfo { - char *iid; - char *name; -}; - -static void -free_iid_list (GList *list) -{ - for (; list; list = list->next) { - struct _IIDInfo *iid = list->data; - - g_free (iid->iid); - g_free (iid->name); - g_free (iid); - } -} - -static const char * -get_name_from_component_info (const Bonobo_ServerInfo *info) -{ - Bonobo_ActivationProperty *property; - const char *name; - - property = bonobo_server_info_prop_find ((Bonobo_ServerInfo *) info, "evolution:menu_name"); - if (property == NULL || property->v._d != Bonobo_ACTIVATION_P_STRING) - return NULL; - - name = property->v._u.value_string; - - return name; -} - -static char * -choose_importer_from_list (GList *importer_list) -{ - GtkWidget *dialog, *clist; - GList *p; - int ans; - char *iid; - - dialog = gtk_dialog_new_with_buttons(_("Select importer"), NULL, GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, GTK_RESPONSE_OK, - NULL); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); - gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); - - clist = gtk_clist_new (1); - for (p = importer_list; p; p = p->next) { - struct _IIDInfo *iid; - char *text[1]; - int row; - - iid = p->data; - text[0] = iid->name; - row = gtk_clist_append (GTK_CLIST (clist), text); - gtk_clist_set_row_data (GTK_CLIST (clist), row, iid->iid); - } - - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), clist, TRUE, TRUE, 0); - gtk_clist_set_selection_mode (GTK_CLIST (clist), GTK_SELECTION_BROWSE); - gtk_widget_show (clist); - - ans = gtk_dialog_run((GtkDialog *)dialog); - switch (ans) { - case GTK_RESPONSE_OK: - ans = GPOINTER_TO_INT (GTK_CLIST (clist)->selection->data); - iid = gtk_clist_get_row_data (GTK_CLIST (clist), ans); - break; - - case 1: - default: - iid = NULL; - break; - } - - gtk_widget_destroy (dialog); - - return g_strdup (iid); -} - -static gboolean -get_iid_for_filetype (const char *filename, char **ret_iid) -{ - Bonobo_ServerInfoList *info_list; - CORBA_Environment ev; - GList *can_handle = NULL; - int i, len = 0; - - CORBA_exception_init (&ev); - info_list = bonobo_activation_query (IMPORTER_REPO_ID_QUERY, NULL, &ev); - - for (i = 0; i < info_list->_length; i++) { - CORBA_Environment ev2; - CORBA_Object importer; - const Bonobo_ServerInfo *info; - - info = info_list->_buffer + i; - - CORBA_exception_init (&ev2); - importer = bonobo_activation_activate_from_id ((char *) info->iid, 0, NULL, &ev2); - if (ev2._major != CORBA_NO_EXCEPTION) { - g_warning ("Error activating %s", info->iid); - CORBA_exception_free (&ev2); - continue; - } - - if (GNOME_Evolution_Importer_supportFormat (importer, - filename, &ev2)) { - struct _IIDInfo *iid; - - iid = g_new (struct _IIDInfo, 1); - iid->iid = g_strdup (info->iid); - iid->name = g_strdup (get_name_from_component_info (info)); - - can_handle = g_list_prepend (can_handle, iid); - len++; - } - - bonobo_object_release_unref (importer, &ev2); - CORBA_exception_free (&ev2); - } - - CORBA_free (info_list); - - if (len == 1) { - struct _IIDInfo *iid; - - iid = can_handle->data; - - *ret_iid = g_strdup (iid->iid); - - free_iid_list (can_handle); - g_list_free (can_handle); - - return TRUE; - } else if (len > 1) { - /* Display all the IIDs */ - *ret_iid = choose_importer_from_list (can_handle); - - free_iid_list (can_handle); - g_list_free (can_handle); - - return *ret_iid ? TRUE : FALSE; - } else { - *ret_iid = NULL; - - return TRUE; - } -} - -static void -start_import (gpointer parent, const char *filename, EvolutionImporterClient *client) -{ - ImporterComponentData *icd; - char *label; - char *utf8_filename; - - utf8_filename = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL); - if (!g_file_test (filename, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) { - - e_notice (parent, GTK_MESSAGE_ERROR, _("File %s does not exist"), utf8_filename); - g_free (utf8_filename); - return; - } - - icd = g_new (ImporterComponentData, 1); - icd->client = g_object_ref (client); - icd->stop = FALSE; - icd->dialog = GTK_DIALOG (gtk_dialog_new_with_buttons(_("Importing"), NULL, 0, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - NULL)); - gtk_dialog_set_has_separator (icd->dialog, FALSE); - g_signal_connect (icd->dialog, "response", G_CALLBACK (dialog_response_cb), icd); - - g_object_weak_ref (G_OBJECT(icd->dialog), dialog_destroy_notify, icd); - - label = g_strdup_printf (_("Importing %s.\n"), utf8_filename); - icd->contents = gtk_label_new (label); - g_free (label); - - gtk_box_pack_start (GTK_BOX (icd->dialog->vbox), icd->contents, TRUE, TRUE, 0); - gtk_widget_show_all (GTK_WIDGET (icd->dialog)); - while (gtk_events_pending ()) - gtk_main_iteration (); - - if (evolution_importer_client_load_file (icd->client, filename) == FALSE) { - label = g_strdup_printf (_("Error loading %s"), utf8_filename); - e_notice (icd->dialog, GTK_MESSAGE_ERROR, _("Error loading %s"), filename); - - gtk_label_set_text (GTK_LABEL (icd->contents), label); - g_free (label); - while (gtk_events_pending ()) - gtk_main_iteration (); - - g_object_unref (icd->client); - if (icd->dialog) - gtk_widget_destroy (GTK_WIDGET (icd->dialog)); - g_free (icd); - g_free (utf8_filename); - return; - } - - icd->filename = g_strdup (filename); - icd->item = 1; - - label = g_strdup_printf (_("Importing %s\nImporting item 1."), - utf8_filename); - gtk_label_set_text (GTK_LABEL (icd->contents), label); - g_free (label); - g_free (utf8_filename); - while (gtk_events_pending ()) - gtk_main_iteration (); - - icd->listener = evolution_importer_listener_new (import_cb, icd); - evolution_importer_client_process_item (icd->client, icd->listener); -} - -static void -filename_changed (GtkEntry *entry, - ImportData *data) -{ - ImportDialogFilePage *page; - const char *filename; - - page = data->filepage; - - filename = gtk_entry_get_text (entry); - if (filename != NULL && *filename != '\0') - page->need_filename = FALSE; - else - page->need_filename = TRUE; - - gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid), - TRUE, !page->need_filename, TRUE, FALSE); -} - -static void -item_selected (GtkWidget *item, - ImportData *data) -{ - char *iid; - - g_free (data->choosen_iid); - iid = g_object_get_data (G_OBJECT (item), "bonoboiid"); - if (iid == NULL) - data->choosen_iid = g_strdup ("Automatic"); - else - data->choosen_iid = g_strdup (iid); -} - -static int -compare_info_name (const void *data1, const void *data2) -{ - const Bonobo_ServerInfo *info1 = (Bonobo_ServerInfo *)data1; - const Bonobo_ServerInfo *info2 = (Bonobo_ServerInfo *)data2; - const char *name1 = get_name_from_component_info (info1); - const char *name2 = get_name_from_component_info (info2); - - /* If we can't find a name for a plug-in, its iid will be used - * for display. Put such plug-ins at the end of the list since - * their displayed name won't be really user-friendly - */ - if (name1 == NULL) { - return -1; - } - if (name2 == NULL) { - return 1; - } - return g_utf8_collate (name1, name2); -} - -static GtkWidget * -create_plugin_menu (ImportData *data) -{ - Bonobo_ServerInfoList *info_list; - CORBA_Environment ev; - int i; - GtkWidget *menu; - GtkWidget *item; - - menu = gtk_menu_new (); - item = gtk_menu_item_new_with_label (_("Automatic")); - g_object_set_data_full ((GObject *)item, "bonoboiid", g_strdup ("Automatic"), g_free); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - - CORBA_exception_init (&ev); - info_list = bonobo_activation_query (IMPORTER_REPO_ID_QUERY, NULL, &ev); - /* Sort info list to get a consistent ordering of the items in the - * combo box from one run of evolution to another. - */ - qsort (info_list->_buffer, info_list->_length, - sizeof (Bonobo_ServerInfo), - compare_info_name); - - for (i = 0; i < info_list->_length; i++) { - const Bonobo_ServerInfo *info; - char *name = NULL; - - info = info_list->_buffer + i; - - name = g_strdup (get_name_from_component_info (info)); - if (name == NULL) { - name = g_strdup (info->iid); - } - - item = gtk_menu_item_new_with_label (name); - g_free (name); - gtk_widget_show (item); - g_signal_connect (item, "activate", - G_CALLBACK (item_selected), data); - - g_object_set_data_full ((GObject *)item, "bonoboiid", g_strdup (info->iid), g_free); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - } - CORBA_free (info_list); - - return menu; -} - -static ImportDialogFilePage * -importer_file_page_new (ImportData *data) -{ - ImportDialogFilePage *page; - GtkWidget *table, *label, *entry; - int row = 0; - - page = g_new0 (ImportDialogFilePage, 1); - - page->vbox = gtk_vbox_new (FALSE, 5); - page->need_filename = TRUE; - - table = gtk_table_new (2, 2, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table), 2); - gtk_table_set_col_spacings (GTK_TABLE (table), 10); - gtk_container_set_border_width (GTK_CONTAINER (table), 8); - gtk_box_pack_start (GTK_BOX (page->vbox), table, TRUE, TRUE, 0); - - label = gtk_label_new_with_mnemonic (_("F_ilename:")); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1, - GTK_FILL, 0, 0, 0); - gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5); - - page->filename = gnome_file_entry_new ("Evolution_Importer_FileName", _("Select a file")); - g_object_set (G_OBJECT (page->filename), "use_filechooser", TRUE, NULL); - entry = gnome_file_entry_gtk_entry((GnomeFileEntry *)page->filename); - g_signal_connect (entry, "changed", G_CALLBACK (filename_changed), data); - gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE); - - gtk_table_attach (GTK_TABLE (table), page->filename, 1, 2, - row, row + 1, GTK_EXPAND | GTK_FILL, 0, 0, 0); - gtk_label_set_mnemonic_widget(GTK_LABEL(label), page->filename); - - row++; - - label = gtk_label_new_with_mnemonic (_("File _type:")); - gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1, - GTK_FILL, 0, 0, 0); - gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5); - - page->filetype = gtk_option_menu_new (); - page->menu = create_plugin_menu (data); - gtk_option_menu_set_menu (GTK_OPTION_MENU (page->filetype), page->menu); - gtk_table_attach (GTK_TABLE (table), page->filetype, 1, 2, - row, row + 1, GTK_EXPAND | GTK_FILL, 0, 0, 0); - gtk_label_set_mnemonic_widget(GTK_LABEL(label), page->filetype); - - gtk_widget_show_all (table); - - return page; -} - - -static ImportDialogDestPage * -importer_dest_page_new (ImportData *data) -{ - ImportDialogDestPage *page; - - page = g_new0 (ImportDialogDestPage, 1); - - page->vbox = gtk_vbox_new (FALSE, 5); - - return page; -} - -static ImportDialogTypePage * -importer_type_page_new (ImportData *data) -{ - ImportDialogTypePage *page; - - page = g_new0 (ImportDialogTypePage, 1); - - page->vbox = gtk_vbox_new (FALSE, 5); - page->intelligent = gtk_radio_button_new_with_mnemonic (NULL, - _("Import data and settings from _older programs")); - gtk_box_pack_start (GTK_BOX (page->vbox), page->intelligent, FALSE, FALSE, 0); - page->file = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (page->intelligent), - _("Import a _single file")); - gtk_box_pack_start (GTK_BOX (page->vbox), page->file, FALSE, FALSE, 0); - gtk_widget_show_all (page->vbox); - return page; -} - -static ImportDialogImporterPage * -importer_importer_page_new (ImportData *data) -{ - ImportDialogImporterPage *page; - GtkWidget *sep; - - page = g_new0 (ImportDialogImporterPage, 1); - - page->vbox = gtk_vbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (page->vbox), 4); - - sep = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (page->vbox), sep, FALSE, FALSE, 0); - - page->prepared = FALSE; - gtk_widget_show_all (page->vbox); - - return page; -} - -static GList * -get_intelligent_importers (void) -{ - Bonobo_ServerInfoList *info_list; - GList *iids_ret = NULL; - CORBA_Environment ev; - int i; - - CORBA_exception_init (&ev); - info_list = bonobo_activation_query (IMPORTER_INTEL_REPO_ID_QUERY, NULL, &ev); - CORBA_exception_free (&ev); - - for (i = 0; i < info_list->_length; i++) { - const Bonobo_ServerInfo *info; - - info = info_list->_buffer + i; - iids_ret = g_list_prepend (iids_ret, g_strdup (info->iid)); - } - - return iids_ret; -} - -static gboolean -prepare_intelligent_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - GtkWidget *dialog; - ImportDialogImporterPage *import; - GList *l, *importers; - GtkWidget *table, *no_data; - int running = 0; - - if (data->importerpage->prepared == TRUE) { - if (data->importerpage->running == 0) - gnome_druid_set_buttons_sensitive(druid, TRUE, FALSE, TRUE, FALSE); - return TRUE; - } - - data->importerpage->prepared = TRUE; - - dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_INFO, GTK_BUTTONS_NONE, "%s", - _("Please wait...\nScanning for existing setups")); - e_make_widget_backing_stored (dialog); -#if !GTK_CHECK_VERSION(2,4,0) - /* not needed for message_dialog with GTK+ 2.4 */ - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); -#endif - - gtk_window_set_title (GTK_WINDOW (dialog), _("Starting Intelligent Importers")); - gtk_widget_show_all (dialog); - gtk_widget_show_now (dialog); - - gtk_widget_queue_draw (dialog); - gdk_flush (); - - while (gtk_events_pending ()) { - gtk_main_iteration (); - } - - import = data->importerpage; - importers = get_intelligent_importers (); - if (importers == NULL) { - /* No importers, go directly to finish, do not pass go - Do not collect $200 */ - import->running = 0; - no_data = create_help ("nodata_html"); - gtk_box_pack_start (GTK_BOX (data->importerpage->vbox), no_data, - FALSE, TRUE, 0); - gnome_druid_set_buttons_sensitive(druid, TRUE, FALSE, TRUE, FALSE); - gtk_widget_destroy (dialog); - return TRUE; - } - - table = gtk_table_new (g_list_length (importers), 2, FALSE); - for (l = importers; l; l = l->next) { - GtkWidget *label; - IntelligentImporterData *id; - CORBA_Environment ev; - gboolean can_run; - char *str; - - id = g_new0 (IntelligentImporterData, 1); - id->iid = g_strdup (l->data); - - CORBA_exception_init (&ev); - id->object = bonobo_activation_activate_from_id ((char *) id->iid, 0, NULL, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not start %s:%s", id->iid, - CORBA_exception_id (&ev)); - - CORBA_exception_free (&ev); - /* Clean up the IID */ - g_free (id->iid); - g_free (id); - continue; - } - - if (id->object == CORBA_OBJECT_NIL) { - g_warning ("Could not activate component %s", id->iid); - CORBA_exception_free (&ev); - - g_free (id->iid); - g_free (id); - continue; - } - - can_run = GNOME_Evolution_IntelligentImporter_canImport (id->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not call canImport(%s): %s", id->iid, - CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - - g_free (id->iid); - g_free (id); - continue; - } - - if (can_run == FALSE) { - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - g_free (id); - continue; - } - - running++; - id->name = GNOME_Evolution_IntelligentImporter__get_importername (id->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not get name(%s): %s", id->iid, - CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - g_free (id); - continue; - } - - id->blurb = GNOME_Evolution_IntelligentImporter__get_message (id->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not get message(%s): %s", - id->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - CORBA_free (id->name); - g_free (id); - continue; - } - - id->control = Bonobo_Unknown_queryInterface (id->object, - "IDL:Bonobo/Control:1.0", &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not QI for Bonobo/Control:1.0 %s:%s", - id->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - CORBA_free (id->name); - CORBA_free (id->blurb); - continue; - } - - if (id->control != CORBA_OBJECT_NIL) { - id->widget = bonobo_widget_new_control_from_objref (id->control, CORBA_OBJECT_NIL); - gtk_widget_show (id->widget); - } else { - id->widget = gtk_label_new (""); - gtk_widget_show (id->widget); - } - - CORBA_exception_free (&ev); - - import->importers = g_list_prepend (import->importers, id); - str = g_strdup_printf (_("From %s:"), id->name); - label = gtk_label_new (str); - g_free (str); - - gtk_misc_set_alignment (GTK_MISC (label), 0, .5); - - gtk_table_attach (GTK_TABLE (table), label, 0, 1, running - 1, - running, GTK_FILL, 0, 0, 0); - gtk_table_attach (GTK_TABLE (table), id->widget, 1, 2, - running - 1, running, GTK_FILL, 0, 3, 0); - gtk_box_pack_start (GTK_BOX (data->importerpage->vbox), table, - FALSE, FALSE, 0); - } - - gtk_widget_show_all (table); - - if (running == 0) { - no_data = create_help ("nodata_html"); - gtk_box_pack_start (GTK_BOX (data->importerpage->vbox), no_data, - FALSE, TRUE, 0); - gnome_druid_set_buttons_sensitive(druid, TRUE, FALSE, TRUE, FALSE); - gtk_widget_destroy (dialog); - return TRUE; - } - - import->running = running; - gtk_widget_destroy (dialog); - - return FALSE; -} - -static void -import_druid_cancel (GnomeDruid *druid, - ImportData *data) -{ - gtk_widget_destroy (GTK_WIDGET (data->dialog)); -} - -static void -import_druid_weak_notify (void *blah, - GObject *where_the_object_was) -{ - ImportData *data = (ImportData *) blah; - - g_object_unref (data->wizard); - g_free (data->choosen_iid); - g_free (data); -} - -static void -free_importers (ImportData *data) -{ - GList *l; - - for (l = data->importerpage->importers; l; l = l->next) { - IntelligentImporterData *iid; - - iid = l->data; - if (iid->object != CORBA_OBJECT_NIL) { - bonobo_object_release_unref (iid->object, NULL); - } - } - - g_list_free (data->importerpage->importers); -} - -static void -start_importers (GList *p) -{ - CORBA_Environment ev; - - for (; p; p = p->next) { - SelectedImporterData *sid = p->data; - - CORBA_exception_init (&ev); - GNOME_Evolution_IntelligentImporter_importData (sid->importer, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Error importing %s\n%s", sid->iid, - CORBA_exception_id (&ev)); - } - CORBA_exception_free (&ev); - } -} - -static void -do_import (ImportData *data) -{ - CORBA_Environment ev; - GList *l, *selected = NULL; - - for (l = data->importerpage->importers; l; l = l->next) { - IntelligentImporterData *importer_data; - SelectedImporterData *sid; - char *iid; - - importer_data = l->data; - iid = g_strdup (importer_data->iid); - - sid = g_new (SelectedImporterData, 1); - sid->iid = iid; - - CORBA_exception_init (&ev); - sid->importer = bonobo_object_dup_ref (importer_data->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Error duplication %s\n(%s)", iid, - CORBA_exception_id (&ev)); - g_free (iid); - CORBA_exception_free (&ev); - g_free (sid); - continue; - } - CORBA_exception_free (&ev); - - selected = g_list_prepend (selected, sid); - } - - free_importers (data); - - if (selected != NULL) { - start_importers (selected); - - for (l = selected; l; l = l->next) { - SelectedImporterData *sid = l->data; - - CORBA_exception_init (&ev); - bonobo_object_release_unref (sid->importer, &ev); - CORBA_exception_free (&ev); - - g_free (sid->iid); - g_free (sid); - } - g_list_free (selected); - } -} - -static void -import_druid_finish (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->typepage->intelligent))) { - do_import (data); - } else { - start_import (druid, data->filename, data->client); - } - - gtk_widget_destroy (data->dialog); -} - -static gboolean -prepare_file_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - gnome_druid_set_buttons_sensitive (druid, TRUE, - !data->filepage->need_filename, - TRUE, FALSE); - return FALSE; -} - -static gboolean -next_file_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - char *real_iid = NULL; - char *utf8_filename; - - /* Get and test the file name */ - if (data->filename) - g_free (data->filename); - utf8_filename = gnome_file_entry_get_full_path (GNOME_FILE_ENTRY (data->filepage->filename), FALSE); - data->filename = g_filename_from_utf8 (utf8_filename, -1, NULL, NULL, NULL); - - if (!g_file_test (data->filename, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) { - e_notice (druid, GTK_MESSAGE_ERROR, _("File %s does not exist"), utf8_filename); - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->filedialog)); - g_free (utf8_filename); - return TRUE; - } - - /* Work out the component to use */ - if (data->choosen_iid == NULL || strcmp (data->choosen_iid, "Automatic") == 0) { - if (!get_iid_for_filetype (data->filename, &real_iid)) { - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->filedialog)); - - g_free (utf8_filename); - return TRUE; - } - } else { - real_iid = g_strdup (data->choosen_iid); - } - - if (!real_iid) { - e_notice (druid, GTK_MESSAGE_ERROR, _("No importer available for file %s"), utf8_filename); - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->filedialog)); - - g_free (utf8_filename); - return TRUE; - } - - if (data->client) - g_object_unref (data->client); - data->client = evolution_importer_client_new_from_id (real_iid); - g_free (real_iid); - g_free (utf8_filename); - - if (!data->client) { - e_notice (druid, GTK_MESSAGE_ERROR, _("Unable to execute importer")); - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->filedialog)); - - return TRUE; - } - - return FALSE; -} - -static gboolean -prepare_dest_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - /* Add the widget */ - if (data->control) - gtk_container_remove (GTK_CONTAINER (data->destpage->vbox), data->control); - data->control = evolution_importer_client_create_control (data->client); - gtk_box_pack_start((GtkBox *)data->destpage->vbox, data->control, FALSE, FALSE, 0); - gtk_widget_show_all (data->destpage->vbox); - - return FALSE; -} - -static gboolean -next_dest_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->finish)); - return TRUE; -} - -static gboolean -next_type_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->typepage->intelligent))) { - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->intelligent)); - } else { - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->filedialog)); - } - - return TRUE; -} - -static gboolean -back_finish_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->typepage->intelligent))) { - if (data->importerpage->running != 0) { - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->intelligent)); - } else { - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->typedialog)); - } - } else { - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->destdialog)); - } - - return TRUE; -} - -static gboolean -back_intelligent_page (GnomeDruidPage *page, - GnomeDruid *druid, - ImportData *data) -{ - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->typedialog)); - return TRUE; -} - -static void -dialog_weak_notify (void *data, - GObject *where_the_dialog_was) -{ - gboolean *dialog_open = (gboolean *) data; - - *dialog_open = FALSE; -} - -void -e_shell_importer_start_import (EShellWindow *shell_window) -{ - ImportData *data = g_new0 (ImportData, 1); - GtkWidget *html; - static gboolean dialog_open = FALSE; - GdkPixbuf *icon; - - if (dialog_open) { - return; - } - - icon = e_icon_factory_get_icon ("stock_mail-import", E_ICON_SIZE_DIALOG); - - dialog_open = TRUE; - data->window = shell_window; - data->shell = e_shell_window_peek_shell (data->window); - - data->wizard = glade_xml_new (EVOLUTION_GLADEDIR "/import.glade", NULL, NULL); - data->dialog = glade_xml_get_widget (data->wizard, "importwizard"); - gtk_window_set_default_size (GTK_WINDOW (data->dialog), 480, 320); - gtk_window_set_wmclass (GTK_WINDOW (data->dialog), "importdruid", - "Evolution:shell"); - e_dialog_set_transient_for (GTK_WINDOW (data->dialog), GTK_WIDGET (shell_window)); - g_object_weak_ref ((GObject *)data->dialog, dialog_weak_notify, &dialog_open); - - data->druid = glade_xml_get_widget (data->wizard, "druid1"); - g_signal_connect (data->druid, "cancel", - G_CALLBACK (import_druid_cancel), data); - - gtk_button_set_use_underline ((GtkButton *)((GnomeDruid *)data->druid)->finish, TRUE); - gtk_button_set_label((GtkButton *)((GnomeDruid *)data->druid)->finish, _("_Import")); - - /* Start page */ - data->start = GNOME_DRUID_PAGE_EDGE (glade_xml_get_widget (data->wizard, "page0")); - gnome_druid_page_edge_set_logo (data->start, icon); - - /* Intelligent or direct import page */ - data->typedialog = glade_xml_get_widget (data->wizard, "page1"); - gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (data->typedialog), icon); - g_signal_connect (data->typedialog, "next", - G_CALLBACK (next_type_page), data); - data->typepage = importer_type_page_new (data); - html = create_help ("type_html"); - gtk_box_pack_start (GTK_BOX (data->typepage->vbox), html, FALSE, TRUE, 0); - gtk_box_reorder_child (GTK_BOX (data->typepage->vbox), html, 0); - - gtk_box_pack_start (GTK_BOX (GNOME_DRUID_PAGE_STANDARD (data->typedialog)->vbox), data->typepage->vbox, TRUE, TRUE, 0); - - /* Intelligent importer source page */ - data->intelligent = glade_xml_get_widget (data->wizard, "page2-intelligent"); - gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (data->intelligent), icon); - g_signal_connect (data->intelligent, "back", - G_CALLBACK (back_intelligent_page), data); - g_signal_connect_after (data->intelligent, "prepare", - G_CALLBACK (prepare_intelligent_page), data); - - data->importerpage = importer_importer_page_new (data); - html = create_help ("intelligent_html"); - gtk_box_pack_start (GTK_BOX (data->importerpage->vbox), html, FALSE, TRUE, 0); - gtk_box_reorder_child (GTK_BOX (data->importerpage->vbox), html, 0); - - gtk_box_pack_start (GTK_BOX (GNOME_DRUID_PAGE_STANDARD (data->intelligent)->vbox), data->importerpage->vbox, TRUE, TRUE, 0); - - - /* File selection and file type page */ - data->filedialog = glade_xml_get_widget (data->wizard, "page2-file"); - gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (data->filedialog), icon); - g_signal_connect_after (data->filedialog, "prepare", - G_CALLBACK (prepare_file_page), data); - g_signal_connect (data->filedialog, "next", - G_CALLBACK (next_file_page), data); - data->filepage = importer_file_page_new (data); - - html = create_help ("file_html"); - gtk_box_pack_start (GTK_BOX (data->filepage->vbox), html, FALSE, TRUE, 0); - gtk_box_reorder_child (GTK_BOX (data->filepage->vbox), html, 0); - - gtk_box_pack_start (GTK_BOX (GNOME_DRUID_PAGE_STANDARD (data->filedialog)->vbox), data->filepage->vbox, TRUE, TRUE, 0); - - /* File destination page */ - data->destdialog = glade_xml_get_widget (data->wizard, "page3-file"); - g_signal_connect_after (data->destdialog, "prepare", - G_CALLBACK (prepare_dest_page), data); - g_signal_connect (data->destdialog, "next", - G_CALLBACK (next_dest_page), data); - - data->destpage = importer_dest_page_new (data); - - gtk_box_pack_start (GTK_BOX (GNOME_DRUID_PAGE_STANDARD (data->destdialog)->vbox), data->destpage->vbox, TRUE, TRUE, 0); - - /* Finish page */ - data->finish = GNOME_DRUID_PAGE_EDGE (glade_xml_get_widget (data->wizard, "page4")); - gnome_druid_page_edge_set_logo (data->finish, icon); - g_signal_connect (data->finish, "back", - G_CALLBACK (back_finish_page), data); - - g_signal_connect (data->finish, "finish", - G_CALLBACK (import_druid_finish), data); - - g_object_weak_ref ((GObject *)data->dialog, import_druid_weak_notify, data); - - g_object_unref (icon); - - gtk_widget_show_all (data->dialog); -} diff --git a/shell/e-shell-importer.h b/shell/e-shell-importer.h deleted file mode 100644 index 4b3d79acf9..0000000000 --- a/shell/e-shell-importer.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* importer.c - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifndef _E_SHELL_IMPORTER_H_ -#define _E_SHELL_IMPORTER_H_ - -void e_shell_importer_start_import (EShellWindow *shell_window); - -#endif diff --git a/shell/e-shell-marshal.list b/shell/e-shell-marshal.list deleted file mode 100644 index fd4274f310..0000000000 --- a/shell/e-shell-marshal.list +++ /dev/null @@ -1,30 +0,0 @@ -NONE:BOOL -NONE:BOOL,INT -NONE:INT -NONE:INT,INT -NONE:INT,POINTER -NONE:INT,STRING -NONE:NONE -NONE:POINTER -NONE:POINTER,INT -NONE:POINTER,INT,INT -NONE:POINTER,POINTER -NONE:POINTER,POINTER,POINTER -NONE:POINTER,POINTER,POINTER,BOOL -NONE:POINTER,POINTER,POINTER,POINTER -NONE:POINTER,POINTER,POINTER,POINTER,POINTER -NONE:POINTER,STRING -NONE:POINTER,STRING,BOOL -NONE:POINTER,STRING,STRING -NONE:POINTER,STRING,STRING,BOOL -NONE:POINTER,STRING,STRING,STRING,STRING -NONE:STRING -NONE:STRING,BOOL -NONE:STRING,INT -NONE:STRING,INT,INT -NONE:STRING,POINTER -NONE:STRING,POINTER,POINTER -NONE:STRING,STRING -NONE:STRING,STRING,STRING -NONE:STRING,STRING,STRING,STRING -NONE:STRING,POINTER,POINTER,UINT,UINT diff --git a/shell/e-shell-offline-handler.c b/shell/e-shell-offline-handler.c deleted file mode 100644 index f99edf965d..0000000000 --- a/shell/e-shell-offline-handler.c +++ /dev/null @@ -1,871 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-offline-handler.c - * - * Copyright (C) 2001 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#undef G_DISABLE_DEPRECATED /* FIXME */ -#undef GTK_DISABLE_DEPRECATED /* FIXME */ - -#include "e-shell-offline-handler.h" - -#include "e-shell-marshal.h" - -#include <gtk/gtkcellrenderertext.h> -#include <gtk/gtkclist.h> -#include <gtk/gtkdialog.h> -#include <gtk/gtklabel.h> -#include <gtk/gtksignal.h> -#include <gtk/gtkliststore.h> -#include <gtk/gtktreeview.h> -#include <gtk/gtktypeutils.h> -#include <gtk/gtkwidget.h> - -#include <gal/util/e-util.h> - -#include <libgnome/gnome-i18n.h> - -#include <glade/glade-xml.h> - -#include <bonobo/bonobo-main.h> -#include <bonobo/bonobo-exception.h> - - -#define GLADE_DIALOG_FILE_NAME EVOLUTION_GLADEDIR "/e-active-connection-dialog.glade" - - -#define PARENT_TYPE GTK_TYPE_OBJECT -static GtkObjectClass *parent_class = NULL; - - -/* Private part. */ - -struct _OfflineProgressListenerServant { - POA_GNOME_Evolution_OfflineProgressListener servant; - EShellOfflineHandler *offline_handler; - char *component_id; -}; -typedef struct _OfflineProgressListenerServant OfflineProgressListenerServant; - -struct _ComponentInfo { - /* Component ID. */ - char *id; - - /* The `Evolution::Offline' interface for this component (cached just - to avoid going through the EComponentRegistry all the time). */ - GNOME_Evolution_Offline offline_interface; - - /* The interface and servant for the - `Evolution::OfflineProgressListener' we have to implement to get - notifications about progress of the off-line process. */ - GNOME_Evolution_OfflineProgressListener progress_listener_interface; - OfflineProgressListenerServant *progress_listener_servant; - - /* The current active connections for this component. This is updated - by the component itself through the `::ProgressListener' interface; - when the count reaches zero, the off-line process is considered to - be complete. */ - GNOME_Evolution_ConnectionList *active_connection_list; -}; -typedef struct _ComponentInfo ComponentInfo; - -struct _EShellOfflineHandlerPrivate { - EShell *shell; - - GtkWindow *parent_window; - - GladeXML *dialog_gui; - - int num_total_connections; - GHashTable *id_to_component_info; - - int procedure_in_progress : 1; - int finished : 1; -}; - - -/* Signals. */ - -enum { - OFFLINE_PROCEDURE_STARTED, - OFFLINE_PROCEDURE_FINISHED, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = { 0 }; - - -/* Forward declarations for the dialog handling. */ - -static void update_dialog_clist (EShellOfflineHandler *offline_handler); - - -/* Implementation for the OfflineProgressListener interface. */ - -static PortableServer_ServantBase__epv OfflineProgressListener_base_epv; -static POA_GNOME_Evolution_OfflineProgressListener__epv OfflineProgressListener_epv; -static POA_GNOME_Evolution_OfflineProgressListener__vepv OfflineProgressListener_vepv; - -static OfflineProgressListenerServant * -progress_listener_servant_new (EShellOfflineHandler *offline_handler, - const char *id) -{ - OfflineProgressListenerServant *servant; - - servant = g_new0 (OfflineProgressListenerServant, 1); - - servant->servant.vepv = &OfflineProgressListener_vepv; - servant->offline_handler = offline_handler; - servant->component_id = g_strdup (id); - - return servant; -} - -static void -progress_listener_servant_free (OfflineProgressListenerServant *servant) -{ - CORBA_Environment ev; - PortableServer_ObjectId *oid; - - CORBA_exception_init (&ev); - - oid = PortableServer_POA_servant_to_id (bonobo_poa (), servant, &ev); - PortableServer_POA_deactivate_object (bonobo_poa (), oid, &ev); - CORBA_free (oid); - - CORBA_exception_free (&ev); - - g_free (servant->component_id); - g_free (servant); -} - -static GNOME_Evolution_ConnectionList * -duplicate_connection_list (const GNOME_Evolution_ConnectionList *source) -{ - GNOME_Evolution_ConnectionList *copy; - int i; - - copy = GNOME_Evolution_ConnectionList__alloc (); - - copy->_length = source->_length; - copy->_maximum = source->_length; - - copy->_buffer = CORBA_sequence_GNOME_Evolution_Connection_allocbuf (copy->_maximum); - - for (i = 0; i < source->_length; i++) { - copy->_buffer[i].hostName = CORBA_string_dup (source->_buffer[i].hostName); - copy->_buffer[i].type = CORBA_string_dup (source->_buffer[i].type); - } - - CORBA_sequence_set_release (copy, TRUE); - - return copy; -} - -static void -impl_OfflineProgressListener_updateProgress (PortableServer_Servant servant, - const GNOME_Evolution_ConnectionList *current_active_connections, - CORBA_Environment *ev) -{ - EShellOfflineHandler *offline_handler; - EShellOfflineHandlerPrivate *priv; - ComponentInfo *component_info; - int connection_delta; - const char *component_id; - - component_id = ((OfflineProgressListenerServant *) servant)->component_id; - - offline_handler = ((OfflineProgressListenerServant *) servant)->offline_handler; - priv = offline_handler->priv; - - component_info = g_hash_table_lookup (priv->id_to_component_info, component_id); - g_assert (component_info != NULL); - - connection_delta = component_info->active_connection_list->_length - current_active_connections->_length; - if (connection_delta < 0) { - /* FIXME: Should raise an exception or something? */ - g_warning ("Weird, buggy component increased number of connection when going off-line -- %s", - component_id); - } - - g_assert (priv->num_total_connections >= connection_delta); - priv->num_total_connections -= connection_delta; - - CORBA_free (component_info->active_connection_list); - component_info->active_connection_list = duplicate_connection_list (current_active_connections); - - update_dialog_clist (offline_handler); - - if (priv->num_total_connections == 0 && ! priv->finished) { - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, TRUE); - priv->finished = TRUE; - } -} - -static gboolean -create_progress_listener (EShellOfflineHandler *offline_handler, - const char *component_id, - GNOME_Evolution_OfflineProgressListener *objref_return, - OfflineProgressListenerServant **servant_return) -{ - OfflineProgressListenerServant *servant; - CORBA_Environment ev; - - *servant_return = NULL; - *objref_return = CORBA_OBJECT_NIL; - - OfflineProgressListener_base_epv._private = NULL; - OfflineProgressListener_base_epv.finalize = NULL; - OfflineProgressListener_base_epv.default_POA = NULL; - - OfflineProgressListener_epv.updateProgress = impl_OfflineProgressListener_updateProgress; - - OfflineProgressListener_vepv._base_epv = &OfflineProgressListener_base_epv; - OfflineProgressListener_vepv.GNOME_Evolution_OfflineProgressListener_epv = &OfflineProgressListener_epv; - - servant = progress_listener_servant_new (offline_handler, component_id); - - CORBA_exception_init (&ev); - - POA_GNOME_Evolution_OfflineProgressListener__init ((PortableServer_Servant) servant, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Cannot initialize GNOME::Evolution::Offline::ProgressListener"); - progress_listener_servant_free (servant); - CORBA_exception_free (&ev); - return FALSE; - } - - CORBA_free (PortableServer_POA_activate_object (bonobo_poa (), servant, &ev)); - - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Cannot activate GNOME::Evolution::Offline::ProgressListener"); - progress_listener_servant_free (servant); - CORBA_exception_free (&ev); - return FALSE; - } - - *servant_return = servant; - *objref_return = PortableServer_POA_servant_to_reference (bonobo_poa (), servant, &ev); - - CORBA_exception_free (&ev); - - return TRUE; -} - - -/* ComponentInfo handling. */ - -static ComponentInfo * -component_info_new (const char *id, - const GNOME_Evolution_Offline offline_interface, - GNOME_Evolution_OfflineProgressListener progress_listener_interface, - OfflineProgressListenerServant *progress_listener_servant, - GNOME_Evolution_ConnectionList *active_connection_list) -{ - ComponentInfo *new; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - new = g_new (ComponentInfo, 1); - new->id = g_strdup (id); - new->offline_interface = CORBA_Object_duplicate (offline_interface, &ev); - new->progress_listener_interface = progress_listener_interface; - new->progress_listener_servant = progress_listener_servant; - new->active_connection_list = active_connection_list; - - CORBA_exception_free (&ev); - - return new; -} - -static void -component_info_free (ComponentInfo *component_info) -{ - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - g_free (component_info->id); - - progress_listener_servant_free (component_info->progress_listener_servant); - CORBA_Object_release (component_info->progress_listener_interface, &ev); - - CORBA_Object_release (component_info->offline_interface, &ev); - - CORBA_free (component_info->active_connection_list); - - g_free (component_info); - - CORBA_exception_free (&ev); -} - - -/* Utility functions. */ - -static void -hash_foreach_free_component_info (void *key, - void *value, - void *user_data) -{ - ComponentInfo *component_info; - - component_info = (ComponentInfo *) value; - component_info_free (component_info); -} - - -static GNOME_Evolution_Offline -get_offline_interface (GNOME_Evolution_Component objref) -{ - GNOME_Evolution_Offline interface; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - interface = Bonobo_Unknown_queryInterface (objref, "IDL:GNOME/Evolution/Offline:1.0", &ev); - - if (ev._major != CORBA_NO_EXCEPTION) - interface = CORBA_OBJECT_NIL; - - CORBA_exception_free (&ev); - return interface; -} - - -/* Cancelling the off-line procedure. */ - -static void -cancel_offline (EShellOfflineHandler *offline_handler) -{ - EShellOfflineHandlerPrivate *priv; - EComponentRegistry *component_registry; - GSList *component_infos; - GSList *p; - - priv = offline_handler->priv; - - component_registry = e_shell_peek_component_registry (priv->shell); - component_infos = e_component_registry_peek_list (component_registry); - - for (p = component_infos; p != NULL; p = p->next) { - EComponentInfo *info = p->data; - GNOME_Evolution_Offline offline_interface; - CORBA_Environment ev; - - offline_interface = get_offline_interface (info->iface); - if (offline_interface == CORBA_OBJECT_NIL) - continue; - - CORBA_exception_init (&ev); - - GNOME_Evolution_Offline_goOnline (offline_interface, &ev); - if (ev._major != CORBA_NO_EXCEPTION) - g_warning ("Error putting component `%s' on-line.", info->id); - - CORBA_exception_free (&ev); - } - - priv->num_total_connections = 0; - - if (! priv->finished) { - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, FALSE); - priv->finished = TRUE; - } -} - - -/* Preparing the off-line procedure. */ - -static gboolean -prepare_for_offline (EShellOfflineHandler *offline_handler) -{ - EComponentRegistry *component_registry; - EShellOfflineHandlerPrivate *priv; - GSList *component_infos; - GSList *p; - gboolean error; - - priv = offline_handler->priv; - component_registry = e_shell_peek_component_registry (priv->shell); - component_infos = e_component_registry_peek_list (component_registry); - - error = FALSE; - for (p = component_infos; p != NULL; p = p->next) { - EComponentInfo *info = p->data; - GNOME_Evolution_Offline offline_interface; - GNOME_Evolution_OfflineProgressListener progress_listener_interface; - GNOME_Evolution_ConnectionList *active_connection_list; - OfflineProgressListenerServant *progress_listener_servant; - ComponentInfo *component_info; - CORBA_Environment ev; - - offline_interface = get_offline_interface (info->iface); - if (offline_interface == CORBA_OBJECT_NIL) - continue; - - if (! create_progress_listener (offline_handler, info->id, - &progress_listener_interface, - &progress_listener_servant)) { - g_warning ("Cannot create the Evolution::OfflineProgressListener interface for `%s'", info->id); - continue; - } - - CORBA_exception_init (&ev); - - GNOME_Evolution_Offline_prepareForOffline (offline_interface, &active_connection_list, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Cannot prepare component component to go offline -- %s [%s]", - info->id, BONOBO_EX_REPOID (&ev)); - - progress_listener_servant_free (progress_listener_servant); - - CORBA_Object_release (progress_listener_interface, &ev); - - CORBA_exception_free (&ev); - - error = TRUE; - break; - } - - CORBA_exception_free (&ev); - - priv->num_total_connections += active_connection_list->_length; - - component_info = component_info_new (info->id, - offline_interface, - progress_listener_interface, - progress_listener_servant, - active_connection_list); - - g_assert (g_hash_table_lookup (priv->id_to_component_info, component_info->id) == NULL); - g_hash_table_insert (priv->id_to_component_info, component_info->id, component_info); - } - - /* If an error occurred while preparing, just put all the components - on-line again. */ - if (error) - cancel_offline (offline_handler); - - return ! error; -} - - -/* Finalizing the off-line procedure. */ - -static void -finalize_offline_hash_foreach (void *key, - void *value, - void *user_data) -{ - EShellOfflineHandler *offline_handler; - EShellOfflineHandlerPrivate *priv; - ComponentInfo *component_info; - CORBA_Environment ev; - - offline_handler = E_SHELL_OFFLINE_HANDLER (user_data); - priv = offline_handler->priv; - - component_info = (ComponentInfo *) value; - - CORBA_exception_init (&ev); - - GNOME_Evolution_Offline_goOffline (component_info->offline_interface, - component_info->progress_listener_interface, - &ev); - - if (ev._major != CORBA_NO_EXCEPTION) { - /* FIXME: Should detect an error and put all the components - on-line again. */ - g_warning ("Error putting component off-line -- %s", component_info->id); - } - - CORBA_exception_free (&ev); -} - -static void -finalize_offline (EShellOfflineHandler *offline_handler) -{ - EShellOfflineHandlerPrivate *priv; - - priv = offline_handler->priv; - - g_object_ref (offline_handler); - - g_hash_table_foreach (priv->id_to_component_info, finalize_offline_hash_foreach, offline_handler); - - if (priv->num_total_connections == 0 && ! priv->finished) { - /* Nothing else to do, we are all set. */ - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, TRUE); - priv->finished = TRUE; - } - - g_object_unref (offline_handler); -} - - -/* The confirmation dialog. */ - -static void -update_dialog_tree_view_hash_foreach (void *key, - void *data, - void *user_data) -{ - ComponentInfo *component_info; - const GNOME_Evolution_Connection *p; - GtkTreeModel *model = GTK_TREE_MODEL (user_data); - int i; - - component_info = (ComponentInfo *) data; - for (i = 0, p = component_info->active_connection_list->_buffer; - i < component_info->active_connection_list->_length; - i++, p++) { - GtkTreeIter iter; - char *host = g_strdup_printf ("%s (%s)", p->hostName, p->type); - - gtk_list_store_prepend (GTK_LIST_STORE (model), &iter); - gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, host, -1); - } -} - -static void -update_dialog_clist (EShellOfflineHandler *offline_handler) -{ - EShellOfflineHandlerPrivate *priv; - GtkWidget *tree_view; - GtkListStore *model; - GtkCellRenderer *renderer; - GtkTreeViewColumn *column; - - priv = offline_handler->priv; - if (priv->dialog_gui == NULL) - return; - - tree_view = glade_xml_get_widget (priv->dialog_gui, "active_connection_treeview"); - g_assert (GTK_IS_TREE_VIEW (tree_view)); - - gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), FALSE); - - renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes ("Host", renderer, "text", 0, NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column); - - model = gtk_list_store_new (1, G_TYPE_STRING); - g_hash_table_foreach (priv->id_to_component_info, update_dialog_tree_view_hash_foreach, model); - - gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL(model)); -} - -static void -dialog_handle_ok (GtkDialog *dialog, - EShellOfflineHandler *offline_handler) -{ - EShellOfflineHandlerPrivate *priv; - GtkWidget *instruction_label; - - priv = offline_handler->priv; - - gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_OK, FALSE); - - instruction_label = glade_xml_get_widget (priv->dialog_gui, "instruction_label"); - g_assert (instruction_label != NULL); - g_assert (GTK_IS_LABEL (instruction_label)); - - gtk_label_set_text (GTK_LABEL (instruction_label), _("Closing connections...")); - - finalize_offline (offline_handler); -} - -static void -dialog_handle_cancel (GtkDialog *dialog, - EShellOfflineHandler *offline_handler) -{ - EShellOfflineHandlerPrivate *priv; - - priv = offline_handler->priv; - - gtk_widget_destroy (GTK_WIDGET (dialog)); - - g_object_unref (priv->dialog_gui); - priv->dialog_gui = NULL; - - cancel_offline (offline_handler); -} - -static void -dialog_response_cb (GtkDialog *dialog, - int response_id, - void *data) -{ - EShellOfflineHandler *offline_handler; - - offline_handler = E_SHELL_OFFLINE_HANDLER (data); - - switch (response_id) { - case GTK_RESPONSE_OK: - dialog_handle_ok (dialog, offline_handler); - break; - - case GTK_RESPONSE_CANCEL: - case GTK_RESPONSE_DELETE_EVENT: - dialog_handle_cancel (dialog, offline_handler); - break; - - default: - g_assert_not_reached (); - } -} - -static void -pop_up_confirmation_dialog (EShellOfflineHandler *offline_handler) -{ - EShellOfflineHandlerPrivate *priv; - GtkWidget *dialog; - - priv = offline_handler->priv; - - if (priv->dialog_gui == NULL) { - priv->dialog_gui = glade_xml_new (GLADE_DIALOG_FILE_NAME, NULL, NULL); - if (priv->dialog_gui == NULL) { - g_warning ("Cannot load the active connection dialog (installation problem?) -- %s", - GLADE_DIALOG_FILE_NAME); - finalize_offline (offline_handler); - return; - } - } - - dialog = glade_xml_get_widget (priv->dialog_gui, "active_connection_dialog"); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 0); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 12); - - /* FIXME: do we really want this? */ - /* gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (priv->parent_shell_view)); */ - /* gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); */ - - update_dialog_clist (offline_handler); - - g_signal_connect (dialog, "response", G_CALLBACK (dialog_response_cb), offline_handler); - - gtk_widget_show (dialog); -} - - -/* GObject methods. */ - -static void -impl_dispose (GObject *object) -{ - EShellOfflineHandler *offline_handler; - EShellOfflineHandlerPrivate *priv; - - offline_handler = E_SHELL_OFFLINE_HANDLER (object); - priv = offline_handler->priv; - - /* (We don't unref the shell, as it's our owner.) */ - - if (priv->id_to_component_info != NULL) { - g_hash_table_foreach (priv->id_to_component_info, hash_foreach_free_component_info, NULL); - g_hash_table_destroy (priv->id_to_component_info); - priv->id_to_component_info = NULL; - } - - if (priv->dialog_gui != NULL) { - GtkWidget *dialog; - - dialog = glade_xml_get_widget (priv->dialog_gui, "active_connection_dialog"); - gtk_widget_destroy (dialog); - - g_object_unref (priv->dialog_gui); - priv->dialog_gui = NULL; - } - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - EShellOfflineHandler *offline_handler; - EShellOfflineHandlerPrivate *priv; - - offline_handler = E_SHELL_OFFLINE_HANDLER (object); - priv = offline_handler->priv; - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -/* GTK type handling. */ - -static void -class_init (EShellOfflineHandlerClass *klass) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (klass); - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - - parent_class = g_type_class_ref(gtk_object_get_type ()); - - signals[OFFLINE_PROCEDURE_STARTED] - = g_signal_new ("offline_procedure_started", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EShellOfflineHandlerClass, offline_procedure_started), - NULL, NULL, - e_shell_marshal_NONE__NONE, - G_TYPE_NONE, 0); - - signals[OFFLINE_PROCEDURE_FINISHED] - = g_signal_new ("offline_procedure_finished", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EShellOfflineHandlerClass, offline_procedure_finished), - NULL, NULL, - e_shell_marshal_NONE__BOOL, - G_TYPE_NONE, 1, - G_TYPE_BOOLEAN); -} - - -static void -init (EShellOfflineHandler *shell_offline_handler) -{ - EShellOfflineHandlerPrivate *priv; - - priv = g_new (EShellOfflineHandlerPrivate, 1); - - priv->shell = NULL; - priv->parent_window = NULL; - - priv->dialog_gui = NULL; - - priv->num_total_connections = 0; - priv->id_to_component_info = g_hash_table_new (g_str_hash, g_str_equal); - - priv->procedure_in_progress = FALSE; - priv->finished = FALSE; - - shell_offline_handler->priv = priv; -} - - -/** - * e_shell_offline_handler_construct: - * @offline_handler: A pointer to an EShellOfflineHandler to construct. - * @shell: The Evolution shell. - * - * Construct the @offline_handler. - **/ -void -e_shell_offline_handler_construct (EShellOfflineHandler *offline_handler, - EShell *shell) -{ - EShellOfflineHandlerPrivate *priv; - - g_return_if_fail (E_IS_SHELL_OFFLINE_HANDLER (offline_handler)); - g_return_if_fail (E_IS_SHELL (shell)); - - priv = offline_handler->priv; - - g_assert (priv->shell == NULL); - - GTK_OBJECT_UNSET_FLAGS (GTK_OBJECT (offline_handler), GTK_FLOATING); - - priv->shell = shell; -} - -/** - * e_shell_offline_handler_new: - * @shell: The Evolution shell. - * - * Create a new offline handler. - * - * Return value: A pointer to the newly created EShellOfflineHandler object. - **/ -EShellOfflineHandler * -e_shell_offline_handler_new (EShell *shell) -{ - EShellOfflineHandler *offline_handler; - - g_return_val_if_fail (E_IS_SHELL (shell), NULL); - - offline_handler = (EShellOfflineHandler *) g_object_new (e_shell_offline_handler_get_type (), NULL); - e_shell_offline_handler_construct (offline_handler, shell); - - return offline_handler; -} - - -/** - * e_shell_offline_handler_put_components_offline: - * @offline_handler: A pointer to an EShellOfflineHandler object. - * - * Put the components offline. - **/ -void -e_shell_offline_handler_put_components_offline (EShellOfflineHandler *offline_handler, - GtkWindow *parent_window) -{ - EShellOfflineHandlerPrivate *priv; - - g_return_if_fail (offline_handler != NULL); - g_return_if_fail (E_IS_SHELL_OFFLINE_HANDLER (offline_handler)); - g_return_if_fail (parent_window == NULL || GTK_IS_WINDOW (parent_window)); - - priv = offline_handler->priv; - - priv->procedure_in_progress = TRUE; - priv->parent_window = parent_window; - - /* Add an extra ref here as the signal handlers might want to unref - us. */ - - g_object_ref (offline_handler); - - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_STARTED], 0); - - priv->finished = FALSE; - - if (! prepare_for_offline (offline_handler)) { - /* FIXME: Maybe do something smarter here. */ - g_warning ("Couldn't put components off-line"); - g_signal_emit (offline_handler, signals[OFFLINE_PROCEDURE_FINISHED], 0, FALSE); - priv->finished = TRUE; - g_object_unref (offline_handler); - return; - } - - if (priv->num_total_connections > 0 && priv->parent_window != NULL) - pop_up_confirmation_dialog (offline_handler); - else - finalize_offline (offline_handler); - - g_object_unref (offline_handler); -} - - -E_MAKE_TYPE (e_shell_offline_handler, "EShellOfflineHandler", EShellOfflineHandler, class_init, init, PARENT_TYPE) diff --git a/shell/e-shell-offline-handler.h b/shell/e-shell-offline-handler.h deleted file mode 100644 index 912ba143f4..0000000000 --- a/shell/e-shell-offline-handler.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-offline-handler.h - * - * Copyright (C) 2001 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_SHELL_OFFLINE_HANDLER_H_ -#define _E_SHELL_OFFLINE_HANDLER_H_ - -#include <gtk/gtkobject.h> -#include <gtk/gtkwindow.h> - -#include "e-shell.h" - - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -#define E_TYPE_SHELL_OFFLINE_HANDLER (e_shell_offline_handler_get_type ()) -#define E_SHELL_OFFLINE_HANDLER(obj) (GTK_CHECK_CAST ((obj), E_TYPE_SHELL_OFFLINE_HANDLER, EShellOfflineHandler)) -#define E_SHELL_OFFLINE_HANDLER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHELL_OFFLINE_HANDLER, EShellOfflineHandlerClass)) -#define E_IS_SHELL_OFFLINE_HANDLER(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_SHELL_OFFLINE_HANDLER)) -#define E_IS_SHELL_OFFLINE_HANDLER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHELL_OFFLINE_HANDLER)) - - -typedef struct _EShellOfflineHandler EShellOfflineHandler; -typedef struct _EShellOfflineHandlerPrivate EShellOfflineHandlerPrivate; -typedef struct _EShellOfflineHandlerClass EShellOfflineHandlerClass; - -struct _EShellOfflineHandler { - GtkObject parent; - - EShellOfflineHandlerPrivate *priv; -}; - -struct _EShellOfflineHandlerClass { - GtkObjectClass parent_class; - - /* This signal is emitted when the offline procedure starts, i.e. the - EShellOfflineHanlder starts contacting the components one-by-one - telling them to be prepared to go off-line. */ - void (* offline_procedure_started) (EShellOfflineHandler *offline_handler); - - /* This is emitted when the procedure is finished, and all the - components are all either off-line (@now_offline is %TRUE) or - on-line (@now_offline is %FALSE). */ - void (* offline_procedure_finished) (EShellOfflineHandler *offline_hanlder, - gboolean now_offline); -}; - - -GtkType e_shell_offline_handler_get_type (void); -void e_shell_offline_handler_construct (EShellOfflineHandler *offline_handler, - EShell *shell); -EShellOfflineHandler *e_shell_offline_handler_new (EShell *shell); - -void e_shell_offline_handler_put_components_offline (EShellOfflineHandler *offline_handler, - GtkWindow *parent_window); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _E_SHELL_OFFLINE_HANDLER_H_ */ diff --git a/shell/e-shell-settings-dialog.c b/shell/e-shell-settings-dialog.c deleted file mode 100644 index 42063ccea4..0000000000 --- a/shell/e-shell-settings-dialog.c +++ /dev/null @@ -1,373 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-settings-dialog.c - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-shell-settings-dialog.h" - -#include "e-corba-config-page.h" -#include <e-util/e-icon-factory.h> - -#include <gal/util/e-util.h> - -#include <bonobo/bonobo-widget.h> -#include <bonobo/bonobo-exception.h> - -#include <bonobo-activation/bonobo-activation.h> - -#include <string.h> - - -#define PARENT_TYPE e_multi_config_dialog_get_type () -static EMultiConfigDialogClass *parent_class = NULL; - - - -struct _EShellSettingsDialogPrivate { - GHashTable *types; -}; - - -/* FIXME ugly hack to work around that sizing of invisible widgets is broken - with Bonobo. */ - -static void -set_dialog_size (EShellSettingsDialog *dialog) -{ - PangoLayout *layout; - PangoContext *context; - PangoFontMetrics *metrics; - int width, height; - - layout = gtk_widget_create_pango_layout (GTK_WIDGET (dialog), "M"); - context = pango_layout_get_context (layout); - metrics = pango_context_get_metrics (context, - gtk_widget_get_style (GTK_WIDGET (dialog))->font_desc, - pango_context_get_language (context)); - - pango_layout_get_pixel_size (layout, &width, NULL); - - width *= 60; - height = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) - + pango_font_metrics_get_descent (metrics)) * 30; - - gtk_window_set_default_size((GtkWindow *)dialog, width, height); - g_object_unref (layout); - pango_font_metrics_unref (metrics); -} - - -/* Page handling. */ - -struct _Page { - char *title; - char *description; - GdkPixbuf *icon; - Bonobo_ActivationProperty *type; - int priority; - EConfigPage *page_widget; -}; -typedef struct _Page Page; - -static Page * -page_new (const char *title, - const char *description, - GdkPixbuf *icon, - Bonobo_ActivationProperty *type, - int priority, - EConfigPage *page_widget) -{ - Page *page; - - if (icon != NULL) - g_object_ref (icon); - - page = g_new (Page, 1); - page->title = g_strdup (title); - page->description = g_strdup (description); - page->icon = icon; - page->type = type; - page->priority = priority; - page->page_widget = page_widget; - - return page; -} - -static void -page_free (Page *page) -{ - g_free (page->title); - g_free (page->description); - - if (page->icon != NULL) - g_object_unref (page->icon); - - g_free (page); -} - -static int -compare_page_func (const void *a, - const void *b) -{ - const Page *page_a; - const Page *page_b; - - page_a = (const Page *) a; - page_b = (const Page *) b; - - if (page_a->priority == page_b->priority) - return strcmp (page_a->title, page_b->title); - - return page_a->priority - page_b->priority; -} - -static GList * -sort_page_list (GList *list) -{ - return g_list_sort (list, compare_page_func); -} - -static void -load_pages (EShellSettingsDialog *dialog) -{ - EShellSettingsDialogPrivate *priv; - Bonobo_ServerInfoList *control_list; - CORBA_Environment ev; - const GList *l; - GSList *language_list; - GList *page_list; - GList *p; - int i, j; - - priv = dialog->priv; - - CORBA_exception_init (&ev); - - control_list = bonobo_activation_query ("repo_ids.has('IDL:GNOME/Evolution/ConfigControl:" BASE_VERSION "')", NULL, &ev); - if (ev._major != CORBA_NO_EXCEPTION || control_list == NULL) { - g_warning ("Cannot load configuration pages -- %s", BONOBO_EX_REPOID (&ev)); - CORBA_exception_free (&ev); - return; - } - - CORBA_exception_free (&ev); - - /* Great, one uses GList the other GSList (!) */ - l = gnome_i18n_get_language_list("LC_MESSAGES"); - for (language_list=NULL;l;l=l->next) - language_list = g_slist_append(language_list, l->data); - - page_list = NULL; - for (i = 0; i < control_list->_length; i ++) { - CORBA_Object corba_object; - Bonobo_ServerInfo *info; - const char *title; - const char *description; - const char *icon_path; - const char *priority_string; - Bonobo_ActivationProperty *type; - int priority; - GdkPixbuf *icon; - - CORBA_exception_init (&ev); - - info = & control_list->_buffer[i]; - - title = bonobo_server_info_prop_lookup (info, "evolution2:config_item:title", language_list); - description = bonobo_server_info_prop_lookup (info, "evolution2:config_item:description", language_list); - icon_path = bonobo_server_info_prop_lookup (info, "evolution2:config_item:icon_name", NULL); - type = bonobo_server_info_prop_find (info, "evolution2:config_item:type"); - priority_string = bonobo_server_info_prop_lookup (info, "evolution2:config_item:priority", NULL); - - if (icon_path == NULL) { - icon = NULL; - } else { - if (g_path_is_absolute (icon_path)) { - icon = gdk_pixbuf_new_from_file (icon_path, NULL); - } else { - icon = e_icon_factory_get_icon (icon_path, E_ICON_SIZE_DIALOG); - } - } - - if (type != NULL && type->v._d != Bonobo_ACTIVATION_P_STRINGV) - type = NULL; - if (priority_string == NULL) - priority = 0xffff; - else - priority = atoi (priority_string); - - corba_object = bonobo_activation_activate_from_id ((char *) info->iid, 0, NULL, &ev); - - if (! BONOBO_EX (&ev)) { - Page *page; - - page = page_new (title, description, icon, type, priority, - E_CONFIG_PAGE (e_corba_config_page_new_from_objref (corba_object))); - - page_list = g_list_prepend (page_list, page); - } else { - char *bonobo_ex_text = bonobo_exception_get_text (&ev); - g_warning ("Cannot activate %s -- %s", info->iid, bonobo_ex_text); - g_free (bonobo_ex_text); - } - - if (icon != NULL) - g_object_unref (icon); - - CORBA_exception_free (&ev); - } - g_slist_free(language_list); - - page_list = sort_page_list (page_list); - for (p = page_list, i = 0; p != NULL; p = p->next, i++) { - Page *page; - - page = (Page *) p->data; - - e_multi_config_dialog_add_page (E_MULTI_CONFIG_DIALOG (dialog), - page->title, - page->description, - page->icon, - page->page_widget); - - if (page->type != NULL) { - Bonobo_StringList list = page->type->v._u.value_stringv; - - for (j = 0; j < list._length; j++) { - if (g_hash_table_lookup (priv->types, list._buffer[j]) == NULL) - g_hash_table_insert (priv->types, g_strdup (list._buffer[j]), - GINT_TO_POINTER (i)); - } - } - - - page_free (page); - } - - g_list_free (page_list); - CORBA_free (control_list); -} - - -/* GtkObject methods. */ - -static gboolean -destroy_type_entry (gpointer key, gpointer value, gpointer data) -{ - g_free (key); - - return TRUE; -} - -static void -impl_finalize (GObject *object) -{ - EShellSettingsDialog *dialog; - EShellSettingsDialogPrivate *priv; - - dialog = E_SHELL_SETTINGS_DIALOG (object); - priv = dialog->priv; - - g_hash_table_foreach_remove (priv->types, destroy_type_entry, NULL); - g_hash_table_destroy (priv->types); - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -static void -class_init (EShellSettingsDialog *class) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (class); - object_class->finalize = impl_finalize; - - parent_class = g_type_class_ref(PARENT_TYPE); -} - -static void -init (EShellSettingsDialog *dialog) -{ - EShellSettingsDialogPrivate *priv; - - priv = g_new (EShellSettingsDialogPrivate, 1); - priv->types = g_hash_table_new (g_str_hash, g_str_equal); - - dialog->priv = priv; - - load_pages (dialog); - set_dialog_size (dialog); - - gtk_window_set_title (GTK_WINDOW (dialog), _("Evolution Settings")); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); -} - - -GtkWidget * -e_shell_settings_dialog_new () -{ - EShellSettingsDialog *new; - - new = g_object_new (e_shell_settings_dialog_get_type (), NULL); - - return GTK_WIDGET (new); -} - -void -e_shell_settings_dialog_show_type (EShellSettingsDialog *dialog, const char *type) -{ - EShellSettingsDialogPrivate *priv; - gpointer key, value; - int page; - - g_return_if_fail (dialog != NULL); - g_return_if_fail (E_IS_SHELL_SETTINGS_DIALOG (dialog)); - g_return_if_fail (type != NULL); - - priv = dialog->priv; - - if (!g_hash_table_lookup_extended (priv->types, type, &key, &value)) { - char *slash, *supertype; - - slash = strchr (type, '/'); - if (slash) { - supertype = g_strndup (type, slash - type); - value = g_hash_table_lookup (priv->types, type); - g_free (supertype); - } else - value = NULL; - } - page = GPOINTER_TO_INT (value); - - e_multi_config_dialog_show_page (E_MULTI_CONFIG_DIALOG (dialog), page); -} - - -E_MAKE_TYPE (e_shell_settings_dialog, "EShellSettingsDialog", EShellSettingsDialog, - class_init, init, PARENT_TYPE) - diff --git a/shell/e-shell-settings-dialog.h b/shell/e-shell-settings-dialog.h deleted file mode 100644 index 49f3fb60f3..0000000000 --- a/shell/e-shell-settings-dialog.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-settings-dialog.h - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_SHELL_SETTINGS_DIALOG_H_ -#define _E_SHELL_SETTINGS_DIALOG_H_ - -#include "e-multi-config-dialog.h" - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -#define E_TYPE_SHELL_SETTINGS_DIALOG (e_shell_settings_dialog_get_type ()) -#define E_SHELL_SETTINGS_DIALOG(obj) (GTK_CHECK_CAST ((obj), E_TYPE_SHELL_SETTINGS_DIALOG, EShellSettingsDialog)) -#define E_SHELL_SETTINGS_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHELL_SETTINGS_DIALOG, EShellSettingsDialogClass)) -#define E_IS_SHELL_SETTINGS_DIALOG(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_SHELL_SETTINGS_DIALOG)) -#define E_IS_SHELL_SETTINGS_DIALOG_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHELL_SETTINGS_DIALOG)) - - -typedef struct _EShellSettingsDialog EShellSettingsDialog; -typedef struct _EShellSettingsDialogPrivate EShellSettingsDialogPrivate; -typedef struct _EShellSettingsDialogClass EShellSettingsDialogClass; - -struct _EShellSettingsDialog { - EMultiConfigDialog parent; - - EShellSettingsDialogPrivate *priv; -}; - -struct _EShellSettingsDialogClass { - EMultiConfigDialogClass parent_class; -}; - - -GtkType e_shell_settings_dialog_get_type (void); -GtkWidget *e_shell_settings_dialog_new (void); -void e_shell_settings_dialog_show_type (EShellSettingsDialog *dialog, - const char *type); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _E_SHELL_SETTINGS_DIALOG_H_ */ diff --git a/shell/e-shell-startup-wizard.c b/shell/e-shell-startup-wizard.c deleted file mode 100644 index eddaacb79d..0000000000 --- a/shell/e-shell-startup-wizard.c +++ /dev/null @@ -1,893 +0,0 @@ -/* - * e-shell-startup-wizard.c - * - * Copyright (C) 2001, 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Authors: Iain Holmes <iain@ximian.com> - */ - -/* WARNING: I LEAK. */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-shell-startup-wizard.h" -#include "e-shell-corba-icon-utils.h" - -#include "e-timezone-dialog/e-timezone-dialog.h" -#include "e-util/e-gtk-utils.h" -#include <e-util/e-icon-factory.h> -#include <gconf/gconf-client.h> - -#include <evolution-wizard.h> -#include "Evolution.h" -#include "importer/GNOME_Evolution_Importer.h" - -#include <string.h> -#include <glib.h> -#include <gtk/gtk.h> -#include <gnome.h> -#include <glade/glade.h> - -#include <bonobo/bonobo-object.h> -#include <bonobo/bonobo-widget.h> -#include <bonobo/bonobo-exception.h> -#include <bonobo/bonobo-moniker-util.h> - -#include <bonobo-activation/bonobo-activation.h> - -#include <gal/widgets/e-gui-utils.h> - -#include <widgets/e-timezone-dialog/e-timezone-dialog.h> - -typedef struct _TimezoneDialogPage { - GtkWidget *page; - GtkWidget *vbox; - GObject *etd; - - gboolean prepared; -} TimezoneDialogPage; - -typedef struct _ImportDialogPage { - GtkWidget *page; - GtkWidget *vbox; - - GList *importers; - - int running; - gboolean prepared; -} ImportDialogPage; - -typedef struct _SWData { - GladeXML *wizard; - GtkWidget *dialog; - GtkWidget *druid; - - GtkWidget *start, *finish; - GPtrArray *corba_pages; - TimezoneDialogPage *timezone_page; - ImportDialogPage *import_page; - - gboolean cancel; - GNOME_Evolution_Wizard corba_wizard; - BonoboListener *listener; - GNOME_Evolution_Wizard_PageList *pagelist; -} SWData; - -typedef struct _IntelligentImporterData { - CORBA_Object object; - Bonobo_Control control; - GtkWidget *widget; - - char *name; - char *blurb; - char *iid; -} IntelligentImporterData; - -typedef struct _SelectedImporterData{ - CORBA_Object importer; - char *iid; -} SelectedImporterData; - -static GHashTable *page_hash; -static GList *page_list = NULL; - -static void -druid_event_notify_cb (BonoboListener *listener, - const char *name, - BonoboArg *arg, - CORBA_Environment *ev, - SWData *data) -{ - int buttons, pagenum; - GnomeDruidPage *page; - - if (strcmp (name, EVOLUTION_WIZARD_SET_BUTTONS_SENSITIVE) == 0) { - buttons = (int) *((CORBA_short *)arg->_value); - gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid), - (buttons & 4) >> 2, - (buttons & 2) >> 1, - (buttons & 1), - FALSE); - } else if (strcmp (name, EVOLUTION_WIZARD_SET_SHOW_FINISH) == 0) { - gnome_druid_set_show_finish (GNOME_DRUID (data->druid), - (gboolean) *((CORBA_boolean *) arg->_value)); - } else if (strcmp (name, EVOLUTION_WIZARD_SET_PAGE) == 0) { - pagenum = (int) *((CORBA_short *) arg->_value); - - page = g_list_nth_data (page_list, pagenum); - gnome_druid_set_page (GNOME_DRUID (data->druid), page); - } -} - -static GNOME_Evolution_Wizard -start_wizard (void) -{ - char *const selection_order[] = { "0-evolution:startup_wizard:priority", NULL }; - Bonobo_ServerInfoList *info; - CORBA_Environment ev; - GNOME_Evolution_Wizard wizard; - char *query; - int i; - - CORBA_exception_init (&ev); - query = g_strdup_printf ("repo_ids.has ('IDL:GNOME/Evolution/StartupWizard:%s')", BASE_VERSION); - info = bonobo_activation_query (query, selection_order, &ev); - g_free (query); - - if (BONOBO_EX (&ev) || info == CORBA_OBJECT_NIL) { - g_warning ("Cannot find startup wizard -- %s", BONOBO_EX_REPOID (&ev)); - CORBA_exception_free (&ev); - return NULL; - } - CORBA_exception_free (&ev); - - for (i = 0; i < info->_length; i++) { - CORBA_exception_init (&ev); - wizard = bonobo_activation_activate_from_id (info->_buffer[i].iid, 0, NULL, &ev); - if (!BONOBO_EX (&ev) && wizard != CORBA_OBJECT_NIL) { - CORBA_free (info); - return wizard; - } - CORBA_exception_free (&ev); - } - - if (info->_length) - g_warning ("Could not start any startup wizard!"); - else - g_warning ("No startup wizard available!"); - CORBA_free (info); - return NULL; -} - -static void -make_corba_dialog_pages (SWData *data) -{ - CORBA_Environment ev; - CORBA_Object object; - Bonobo_EventSource event_source; - - data->corba_wizard = start_wizard (); - if (!data->corba_wizard) - return; - - CORBA_exception_init (&ev); - data->pagelist = GNOME_Evolution_Wizard__get_pages (data->corba_wizard, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not get CORBA wizard pages (%s)", CORBA_exception_id (&ev)); - CORBA_exception_free (&ev); - data->pagelist = CORBA_OBJECT_NIL; - return; - } - - CORBA_exception_init (&ev); - event_source = Bonobo_Unknown_queryInterface (data->corba_wizard, "IDL:Bonobo/EventSource:1.0", &ev); - CORBA_exception_free (&ev); - data->listener = bonobo_listener_new (NULL, NULL); - g_signal_connect (data->listener, "event-notify", - G_CALLBACK (druid_event_notify_cb), data); - object = bonobo_object_corba_objref (BONOBO_OBJECT (data->listener)); - - CORBA_exception_init (&ev); - Bonobo_EventSource_addListener (event_source, object, &ev); - CORBA_exception_free (&ev); - bonobo_object_release_unref (event_source, &ev); - CORBA_exception_free (&ev); -} - -static int -page_to_num (GnomeDruidPage *page) -{ - return GPOINTER_TO_INT (g_hash_table_lookup (page_hash, page)); -} - -static gboolean -next_func (GnomeDruidPage *page, - GnomeDruid *druid, - SWData *data) -{ - CORBA_Environment ev; - int pagenum; - - CORBA_exception_init (&ev); - pagenum = page_to_num (page); - GNOME_Evolution_Wizard_notifyAction (data->corba_wizard, pagenum, GNOME_Evolution_Wizard_NEXT, &ev); - CORBA_exception_free (&ev); - - /* If on last page we own, let druid goto next page */ - if (pagenum == g_list_length(page_list)-1) - return FALSE; - - return TRUE; -} - -static gboolean -prepare_func (GnomeDruidPage *page, - GnomeDruid *druid, - SWData *data) -{ - CORBA_Environment ev; - int pagenum; - - CORBA_exception_init (&ev); - pagenum = page_to_num (page); - GNOME_Evolution_Wizard_notifyAction (data->corba_wizard, pagenum, GNOME_Evolution_Wizard_PREPARE, &ev); - CORBA_exception_free (&ev); - return FALSE; -} - -static gboolean -back_func (GnomeDruidPage *page, - GnomeDruid *druid, - SWData *data) -{ - CORBA_Environment ev; - int pagenum; - - CORBA_exception_init (&ev); - pagenum = page_to_num (page); - GNOME_Evolution_Wizard_notifyAction (data->corba_wizard, pagenum, GNOME_Evolution_Wizard_BACK, &ev); - CORBA_exception_free (&ev); - - /* if we're on page 0, let the druid go back to the start page, if we have one */ - if (pagenum == 0) - return FALSE; - - return TRUE; -} - -static void -free_importers (SWData *data) -{ - GList *l; - - for (l = data->import_page->importers; l; l = l->next) { - IntelligentImporterData *iid; - - iid = l->data; - if (iid->object != CORBA_OBJECT_NIL) { - bonobo_object_release_unref (iid->object, NULL); - } - } - - g_list_free (data->import_page->importers); -} - -static void -start_importers (GList *p) -{ - CORBA_Environment ev; - - for (; p; p = p->next) { - SelectedImporterData *sid = p->data; - - CORBA_exception_init (&ev); - GNOME_Evolution_IntelligentImporter_importData (sid->importer, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Error importing %s\n%s", sid->iid, - CORBA_exception_id (&ev)); - } - CORBA_exception_free (&ev); - } -} - -static void -do_import (SWData *data) -{ - CORBA_Environment ev; - GList *l, *selected = NULL; - - for (l = data->import_page->importers; l; l = l->next) { - IntelligentImporterData *importer_data; - SelectedImporterData *sid; - char *iid; - - importer_data = l->data; - iid = g_strdup (importer_data->iid); - - sid = g_new (SelectedImporterData, 1); - sid->iid = iid; - - CORBA_exception_init (&ev); - sid->importer = bonobo_object_dup_ref (importer_data->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Error duplication %s\n(%s)", iid, - CORBA_exception_id (&ev)); - g_free (iid); - CORBA_exception_free (&ev); - g_free (sid); - continue; - } - CORBA_exception_free (&ev); - - selected = g_list_prepend (selected, sid); - } - - free_importers (data); - - if (selected != NULL) { - start_importers (selected); - - for (l = selected; l; l = l->next) { - SelectedImporterData *sid = l->data; - - CORBA_exception_init (&ev); - bonobo_object_release_unref (sid->importer, &ev); - CORBA_exception_free (&ev); - - g_free (sid->iid); - g_free (sid); - } - g_list_free (selected); - } -} - -static gboolean -finish_func (GnomeDruidPage *page, - GnomeDruid *druid, - SWData *data) -{ - GConfClient *client; - CORBA_Environment ev; - icaltimezone *zone; - - /* Notify mailer */ - CORBA_exception_init (&ev); - GNOME_Evolution_Wizard_notifyAction (data->corba_wizard, 0, GNOME_Evolution_Wizard_FINISH, &ev); - CORBA_exception_free (&ev); - - /* Set Timezone */ - zone = e_timezone_dialog_get_timezone (E_TIMEZONE_DIALOG (data->timezone_page->etd)); - if (zone) { - client = gconf_client_get_default (); - gconf_client_set_string (client, "/apps/evolution/calendar/display/timezone", - icaltimezone_get_display_name (zone), NULL); - g_object_unref (client); - } - - do_import (data); - - /* Free data */ - data->cancel = FALSE; - - /* Need to do this otherwise the timezone widget gets destroyed but the - timezone object isn't, and we can get a crash like #22047. */ - g_object_unref (data->timezone_page->etd); - data->timezone_page->etd = NULL; - - gtk_widget_destroy (data->dialog); - gtk_main_quit (); - - return TRUE; -} - -static gboolean -back_finish_func (GnomeDruidPage *page, - GnomeDruid *druid, - SWData *data) -{ - if (data->import_page->running == 0) - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->timezone_page->page)); - else - return FALSE; - - return TRUE; -} - -static void -connect_page (GtkWidget *page, - SWData *data) -{ - g_signal_connect (page, "next", - G_CALLBACK (next_func), data); - g_signal_connect (page, "back", - G_CALLBACK (back_func), data); - g_signal_connect (page, "finish", - G_CALLBACK (finish_func), data); - - /* At least in 2.0 (and probably 2.2 too), - * GnomeDruidPageStandard is broken and you need to - * connect_after to "prepare" or else its default method will - * run after your signal handler and undo its button - * sensitivity changes. - */ - g_signal_connect_after (page, "prepare", - G_CALLBACK (prepare_func), data); -} - -static GtkWidget * -make_corba_page (SWData *data, int n, GtkWidget *prev) -{ - GNOME_Evolution_Wizard_Page *corba_page; - GdkPixbuf *icon; - GtkWidget *page, *body; - - corba_page = &data->pagelist->_buffer[n]; - icon = e_new_gdk_pixbuf_from_corba_icon (&corba_page->icon, -1, -1); - page = gnome_druid_page_standard_new_with_vals (corba_page->title, - icon, NULL); - g_object_unref (icon); - - body = bonobo_widget_new_control_from_objref (corba_page->control, - CORBA_OBJECT_NIL); - gtk_box_pack_start (GTK_BOX (GNOME_DRUID_PAGE_STANDARD (page)->vbox), - body, TRUE, TRUE, 0); - gtk_widget_show_all (page); - - gnome_druid_insert_page (GNOME_DRUID (data->druid), - GNOME_DRUID_PAGE (prev), - GNOME_DRUID_PAGE (page)); - connect_page (page, data); - g_hash_table_insert (page_hash, page, GINT_TO_POINTER (n)); - page_list = g_list_append (page_list, page); - - return page; -} - -static gboolean -prepare_timezone_page (GnomeDruidPage *page, - GnomeDruid *druid, - SWData *data) -{ - GConfClient *client; - icaltimezone *zone; - char *zone_name; - - if (data->timezone_page->prepared) - return TRUE; - data->timezone_page->prepared = TRUE; - - client = gconf_client_get_default (); - zone_name = gconf_client_get_string (client, "/apps/evolution/calendar/display/timezone", NULL); - g_object_unref (client); - - if (!zone_name) - return TRUE; - - zone = icaltimezone_get_builtin_timezone (zone_name); - g_free (zone_name); - - if (zone) - e_timezone_dialog_set_timezone (E_TIMEZONE_DIALOG (data->timezone_page->etd), zone); - - return TRUE; -} - -static TimezoneDialogPage * -make_timezone_page (SWData *data) -{ - TimezoneDialogPage *page; - ETimezoneDialog *etd; - GdkPixbuf *pixbuf; - - g_return_val_if_fail (data != NULL, NULL); - - page = g_new0 (TimezoneDialogPage, 1); - page->page = glade_xml_get_widget (data->wizard, "timezone-page"); - g_return_val_if_fail (page->page != NULL, NULL); - - pixbuf = e_icon_factory_get_icon ("stock_timezone", E_ICON_SIZE_DIALOG); - gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (page->page), pixbuf); - g_object_unref (pixbuf); - - g_signal_connect_after (page->page, "prepare", - G_CALLBACK (prepare_timezone_page), data); - page->vbox = GTK_WIDGET (GNOME_DRUID_PAGE_STANDARD (page->page)->vbox); - - etd = e_timezone_dialog_new (); - page->etd = G_OBJECT (etd); - e_timezone_dialog_reparent (E_TIMEZONE_DIALOG (page->etd), page->vbox); - - return page; -} - -static GList * -get_intelligent_importers (void) -{ - Bonobo_ServerInfoList *info_list; - GList *iids_ret = NULL; - CORBA_Environment ev; - char *query; - int i; - - CORBA_exception_init (&ev); - query = g_strdup_printf ("repo_ids.has ('IDL:GNOME/Evolution/IntelligentImporter:%s')", BASE_VERSION); - info_list = bonobo_activation_query (query, NULL, &ev); - g_free (query); - - if (BONOBO_EX (&ev) || info_list == CORBA_OBJECT_NIL) { - g_warning ("Cannot find importers -- %s", BONOBO_EX_REPOID (&ev)); - CORBA_exception_free (&ev); - return NULL; - } - CORBA_exception_free (&ev); - - for (i = 0; i < info_list->_length; i++) { - const Bonobo_ServerInfo *info; - - info = info_list->_buffer + i; - iids_ret = g_list_prepend (iids_ret, g_strdup (info->iid)); - } - - return iids_ret; -} - -static gboolean -prepare_importer_page (GnomeDruidPage *page, - GnomeDruid *druid, - SWData *data) -{ - GtkWidget *dialog; - ImportDialogPage *import; - GList *l, *importers; - GtkWidget *table; - int running = 0; - - if (data->import_page->prepared == TRUE) { - if (data->import_page->running == 0) - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->finish)); - return TRUE; - } - - data->import_page->prepared = TRUE; - - dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_INFO, - GTK_BUTTONS_NONE, - _("Please wait...\nScanning for existing setups")); -#if !GTK_CHECK_VERSION (2,4,0) - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); -#endif - e_make_widget_backing_stored (dialog); - - gtk_window_set_title (GTK_WINDOW (dialog), _("Starting import")); - gtk_widget_show_all (dialog); - gtk_widget_show_now (dialog); - - gtk_widget_queue_draw (dialog); - gdk_flush (); - - while (gtk_events_pending ()) { - gtk_main_iteration (); - } - - import = data->import_page; - importers = get_intelligent_importers (); - if (importers == NULL) { - /* No importers, go directly to finish, do not pass go - Do not collect $200 */ - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->finish)); - gtk_widget_destroy (dialog); - return TRUE; - } - - table = gtk_table_new (g_list_length (importers), 2, FALSE); - for (l = importers; l; l = l->next) { - GtkWidget *label; - CORBA_Environment ev; - gboolean can_run; - char *str; - IntelligentImporterData *id; - - id = g_new0 (IntelligentImporterData, 1); - id->iid = g_strdup (l->data); - - CORBA_exception_init (&ev); - id->object = bonobo_activation_activate_from_id ((char *) id->iid, 0, NULL, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not start %s:%s", id->iid, - CORBA_exception_id (&ev)); - - CORBA_exception_free (&ev); - /* Clean up the IID */ - g_free (id->iid); - g_free (id); - continue; - } - - if (id->object == CORBA_OBJECT_NIL) { - g_warning ("Could not activate component %s", id->iid); - CORBA_exception_free (&ev); - - g_free (id->iid); - g_free (id); - continue; - } - - can_run = GNOME_Evolution_IntelligentImporter_canImport (id->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not call canImport(%s): %s", id->iid, - CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - - g_free (id->iid); - g_free (id); - continue; - } - - if (can_run == FALSE) { - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - g_free (id); - continue; - } - - running++; - id->name = GNOME_Evolution_IntelligentImporter__get_importername (id->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not get name(%s): %s", id->iid, - CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - g_free (id); - continue; - } - - id->blurb = GNOME_Evolution_IntelligentImporter__get_message (id->object, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not get message(%s): %s", - id->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - CORBA_free (id->name); - g_free (id); - continue; - } - - id->control = Bonobo_Unknown_queryInterface (id->object, - "IDL:Bonobo/Control:1.0", &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Could not QI for Bonobo/Control:1.0 %s:%s", - id->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (id->object, &ev); - CORBA_exception_free (&ev); - g_free (id->iid); - CORBA_free (id->name); - CORBA_free (id->blurb); - continue; - } - - if (id->control != CORBA_OBJECT_NIL) { - id->widget = bonobo_widget_new_control_from_objref (id->control, CORBA_OBJECT_NIL); - gtk_widget_show (id->widget); - } else { - printf("no control\n"); - id->widget = gtk_label_new (""); - gtk_widget_show (id->widget); - } - - CORBA_exception_free (&ev); - - import->importers = g_list_prepend (import->importers, id); - str = g_strdup_printf (_("From %s:"), id->name); - label = gtk_label_new (str); - g_free (str); - - gtk_misc_set_alignment (GTK_MISC (label), 0, .5); - - gtk_table_attach (GTK_TABLE (table), label, 0, 1, running - 1, - running, GTK_FILL, 0, 0, 0); - gtk_table_attach (GTK_TABLE (table), id->widget, 1, 2, - running - 1, running, GTK_FILL, 0, 3, 0); - gtk_widget_show_all (table); - - gtk_box_pack_start (GTK_BOX (data->import_page->vbox), table, - FALSE, FALSE, 0); - } - - if (running == 0) { - gnome_druid_set_page (druid, GNOME_DRUID_PAGE (data->finish)); - gtk_widget_destroy (dialog); - return TRUE; - } - - import->running = running; - gtk_widget_destroy (dialog); - - return FALSE; -} - -static ImportDialogPage * -make_importer_page (SWData *data) -{ - ImportDialogPage *page; - GtkWidget *label, *sep; - GdkPixbuf *pixbuf; - - g_return_val_if_fail (data != NULL, NULL); - - page = g_new0 (ImportDialogPage, 1); - page->page = glade_xml_get_widget (data->wizard, "import-page"); - g_return_val_if_fail (page->page != NULL, NULL); - - pixbuf = e_icon_factory_get_icon ("stock_mail-import", E_ICON_SIZE_DIALOG); - gnome_druid_page_standard_set_logo (GNOME_DRUID_PAGE_STANDARD (page->page), pixbuf); - g_object_unref (pixbuf); - - g_signal_connect_after (page->page, "prepare", - G_CALLBACK (prepare_importer_page), data); - page->vbox = GNOME_DRUID_PAGE_STANDARD (page->page)->vbox; - gtk_container_set_border_width (GTK_CONTAINER (page->vbox), 4); - - label = gtk_label_new (_("Please select the information that you would like to import:")); - gtk_box_pack_start (GTK_BOX (page->vbox), label, FALSE, FALSE, 3); - - sep = gtk_hseparator_new (); - gtk_box_pack_start (GTK_BOX (page->vbox), sep, FALSE, FALSE, 3); - - page->prepared = FALSE; - return page; -} - -static void -startup_wizard_cancel (GnomeDruid *druid, - SWData *data) -{ - /* Free data */ - data->cancel = TRUE; - - if (data->timezone_page->etd != NULL) { - /* Need to do this otherwise the timezone widget gets destroyed but the - timezone object isn't, and we can get a crash like #22047. */ - g_object_unref (data->timezone_page->etd); - data->timezone_page->etd = NULL; - } - - gtk_widget_destroy (data->dialog); - gtk_main_quit (); -} - -static gboolean -startup_wizard_delete (GnomeDruid *druid, - GdkEventAny *ev, - SWData *data) -{ - startup_wizard_cancel(druid, data); - return FALSE; -} - -static gboolean -key_press_event_callback (GtkWidget *widget, - GdkEventKey *keyev, - SWData *data) -{ - if (keyev->keyval == GDK_Escape) { - GtkWidget *confirm_dialog; - int returnvalue; - char *confirmations; - - confirmations = _("If you quit the Evolution Setup Assistant now, all of the information that " - "you have entered will be forgotten. You will need to run this assistant again " - "before using Evolution.\n\nDo you want to quit using the Assistant now?"); - - confirm_dialog = gtk_message_dialog_new (GTK_WINDOW (data->dialog), - GTK_DIALOG_MODAL, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_NONE, - confirmations); - - gtk_dialog_add_button (GTK_DIALOG (confirm_dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); - gtk_dialog_add_button (GTK_DIALOG (confirm_dialog), GTK_STOCK_QUIT, GTK_RESPONSE_OK); - gtk_dialog_set_has_separator (GTK_DIALOG (confirm_dialog), - FALSE); - - returnvalue = gtk_dialog_run (GTK_DIALOG (confirm_dialog)); - gtk_widget_destroy (confirm_dialog); - - if (returnvalue == GTK_RESPONSE_OK) { - startup_wizard_cancel ((GnomeDruid *)data->druid, data); - return TRUE; - } - } - return FALSE; -} - -gboolean -e_shell_startup_wizard_create (void) -{ - GConfClient *client; - SWData *data; - GSList *accounts; - GtkWidget *page; - int i; - - client = gconf_client_get_default (); - accounts = gconf_client_get_list (client, "/apps/evolution/mail/accounts", GCONF_VALUE_STRING, NULL); - g_object_unref (client); - - if (accounts != NULL) { - g_slist_foreach (accounts, (GFunc) g_free, NULL); - g_slist_free (accounts); - return TRUE; - } - - data = g_new0 (SWData, 1); - - data->wizard = glade_xml_new (EVOLUTION_GLADEDIR "/evolution-startup-wizard.glade", NULL, NULL); - g_return_val_if_fail (data->wizard != NULL, FALSE); - data->dialog = glade_xml_get_widget (data->wizard, "startup-wizard"); - g_return_val_if_fail (data->dialog != NULL, FALSE); - gtk_window_set_wmclass (GTK_WINDOW (data->dialog), "startup-wizard", - "Evolution:shell"); - - g_signal_connect_after (data->dialog, "delete_event", - G_CALLBACK (startup_wizard_delete), data); - - page_hash = g_hash_table_new (NULL, NULL); - data->druid = glade_xml_get_widget (data->wizard, "startup-druid"); - g_return_val_if_fail (data->druid != NULL, FALSE); - gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid), - FALSE, TRUE, FALSE, FALSE); - - g_signal_connect (data->druid, "cancel", - G_CALLBACK (startup_wizard_cancel), data); - - g_signal_connect (data->dialog, "key_press_event", - G_CALLBACK (key_press_event_callback), data); - - data->start = glade_xml_get_widget (data->wizard, "start-page"); - data->finish = glade_xml_get_widget (data->wizard, "done-page"); - g_return_val_if_fail (data->start != NULL, FALSE); - g_return_val_if_fail (data->finish != NULL, FALSE); - g_signal_connect (data->finish, "finish", G_CALLBACK (finish_func), data); - g_signal_connect (data->finish, "back", G_CALLBACK (back_finish_func), data); - - make_corba_dialog_pages (data); - g_return_val_if_fail (data->corba_wizard != CORBA_OBJECT_NIL, TRUE); - g_return_val_if_fail (data->pagelist != CORBA_OBJECT_NIL, TRUE); - - page = data->start; - for (i = 0; i < data->pagelist->_length; i++) - page = make_corba_page (data, i, page); - - data->timezone_page = make_timezone_page (data); - data->import_page = make_importer_page (data); - - g_return_val_if_fail (data->timezone_page != NULL, TRUE); - g_return_val_if_fail (data->import_page != NULL, TRUE); - - gnome_druid_set_buttons_sensitive (GNOME_DRUID (data->druid), FALSE, TRUE, TRUE, FALSE); - gtk_widget_show_all (data->dialog); - - gtk_main (); - - return !data->cancel; -} diff --git a/shell/e-shell-startup-wizard.h b/shell/e-shell-startup-wizard.h deleted file mode 100644 index 4e849b8feb..0000000000 --- a/shell/e-shell-startup-wizard.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * e-shell-startup-wizard.h - * - * Copyright (C) 2001 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Authors: Iain Holmes <iain@ximian.com> - */ - -#ifndef E_SHELL_STARTUP_WIZARD_H -#define E_SHELL_STARTUP_WIZARD_H - -#include <glib.h> - -gboolean e_shell_startup_wizard_create (void); - -#endif diff --git a/shell/e-shell-utils.c b/shell/e-shell-utils.c deleted file mode 100644 index 195b25b986..0000000000 --- a/shell/e-shell-utils.c +++ /dev/null @@ -1,149 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-utils.c - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <string.h> - -#include <glib.h> - -#include <libgnome/gnome-util.h> -#include <libgnome/gnome-i18n.h> - -#include "e-shell-constants.h" -#include "e-shell-utils.h" - - -static char * -get_icon_path (const char *icon_name) -{ - char *icon_path; - - if (g_path_is_absolute (icon_name)) - icon_path = g_strdup (icon_name); - else - icon_path = g_build_filename (EVOLUTION_IMAGES, icon_name, NULL); - - if (g_file_test (icon_path, G_FILE_TEST_EXISTS)) { - return icon_path; - } else { - g_free (icon_path); - return NULL; - } -} - -static char * -get_mini_name (const char *icon_name) -{ - const char *dot_ptr; - char *basename; - char *name_without_extension; - char *mini_name; - - basename = g_path_get_basename (icon_name); - if (basename == NULL) - return NULL; - - dot_ptr = strrchr (basename, '.'); - - if (dot_ptr == NULL) { - /* No extension. */ - g_free (basename); - return g_strconcat (icon_name, E_SHELL_MINI_ICON_SUFFIX, NULL); - } - - name_without_extension = g_strndup (icon_name, dot_ptr - basename); - mini_name = g_strconcat (name_without_extension, E_SHELL_MINI_ICON_SUFFIX, - dot_ptr, NULL); - g_free (name_without_extension); - - g_free (basename); - return mini_name; -} - - -char * -e_shell_get_icon_path (const char *icon_name, - gboolean try_mini) -{ - if (try_mini) { - char *path; - char *mini_name; - - mini_name = get_mini_name (icon_name); - if (mini_name == NULL) { - path = NULL; - } else { - path = get_icon_path (mini_name); - g_free (mini_name); - } - - if (path != NULL) - return path; - } - - return get_icon_path (icon_name); -} - - -gboolean -e_shell_folder_name_is_valid (const char *name, - const char **reason_return) -{ - if (name == NULL || *name == '\0') { - if (reason_return != NULL) - *reason_return = _("No folder name specified."); - return FALSE; - } - - /* GtkEntry is broken - if you hit KP_ENTER you get a \r inserted... */ - if (strchr (name, '\r')) { - if (reason_return != NULL) - *reason_return = _("Folder name cannot contain the Return character."); - return FALSE; - } - - if (strchr (name, E_PATH_SEPARATOR) != NULL) { - if (reason_return != NULL) - *reason_return = _("Folder name cannot contain the character \"/\"."); - return FALSE; - } - - if (strchr (name, '#') != NULL) { - if (reason_return != NULL) - *reason_return = _("Folder name cannot contain the character \"#\"."); - return FALSE; - } - - if (strcmp (name, ".") == 0 || strcmp (name, "..") == 0) { - if (reason_return != NULL) - *reason_return = _("'.' and '..' are reserved folder names."); - return FALSE; - } - - *reason_return = NULL; - - return TRUE; -} - diff --git a/shell/e-shell-utils.h b/shell/e-shell-utils.h deleted file mode 100644 index f6bf62de8a..0000000000 --- a/shell/e-shell-utils.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-utils.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifndef E_SHELL_UTILS_H -#define E_SHELL_UTILS_H - -#include <glib.h> - -char *e_shell_get_icon_path (const char *icon_name, - gboolean try_mini); - -gboolean e_shell_folder_name_is_valid (const char *name, - const char **reason_return); - -#endif diff --git a/shell/e-shell-window-commands.c b/shell/e-shell-window-commands.c deleted file mode 100644 index 05f95a63d4..0000000000 --- a/shell/e-shell-window-commands.c +++ /dev/null @@ -1,773 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-window-commands.c - * - * Copyright (C) 2003 Ettore Perazzoli - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-shell-window-commands.h" - -#include "e-shell-importer.h" -#include "e-shell-window.h" - -#include "evolution-shell-component-utils.h" - -#include "e-util/e-icon-factory.h" -#include "e-util/e-dialog-utils.h" -#include "e-util/e-passwords.h" - -#include <glib/gprintf.h> - -#include <libgnome/gnome-exec.h> -#include <libgnome/gnome-url.h> -#include <libgnome/gnome-i18n.h> -#include <libgnomeui/gnome-about.h> - -#include <libgnomevfs/gnome-vfs-mime-handlers.h> -#include <libgnomevfs/gnome-vfs-mime-utils.h> - -#include <bonobo/bonobo-ui-component.h> - -#include <string.h> - -/* Utility functions. */ - -static void -launch_pilot_settings (const char *extra_arg) -{ - char *args[] = { - "gpilotd-control-applet", - (char *) extra_arg, - NULL - }; - int pid; - - args[0] = g_find_program_in_path ("gpilotd-control-applet"); - if (!args[0]) { - e_notice (NULL, GTK_MESSAGE_ERROR, - _("The GNOME Pilot tools do not appear to be installed on this system.")); - return; - } - - pid = gnome_execute_async (NULL, extra_arg ? 2 : 1, args); - g_free (args[0]); - - if (pid == -1) - e_notice (NULL, GTK_MESSAGE_ERROR, _("Error executing %s."), args[0]); -} - - -/* Command callbacks. */ - -static void -command_import (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - e_shell_importer_start_import (window); -} - -static void -command_close (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - if (e_shell_request_close_window (e_shell_window_peek_shell (window), window)) - gtk_widget_destroy (GTK_WIDGET (window)); -} - -static void -command_quit (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - EShell *shell = e_shell_window_peek_shell (window); - - e_shell_quit(shell); -} - -static void -command_submit_bug (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - int pid; - char *args[] = { - "bug-buddy", - "--sm-disable", - "--package=evolution", - "--package-ver="VERSION, - NULL - }; - - args[0] = g_find_program_in_path ("bug-buddy"); - if (!args[0]) { - e_notice (NULL, GTK_MESSAGE_ERROR, _("Bug buddy is not installed.")); - return; - } - - pid = gnome_execute_async (NULL, 4, args); - g_free (args[0]); - - if (pid == -1) - e_notice (NULL, GTK_MESSAGE_ERROR, _("Bug buddy could not be run.")); -} - -/* must be in utf8, the weird breaking of escaped strings - is so the hex escape strings dont swallow too many chars */ -static const char *authors[] = { - "Aaron Weber", - "Abel Cheung", - "Adam Weinberger", - "Akira TAGOH", - "Alastair McKinstry", - "Alex Graveley", - "Alex Jiang", - "Alfred Peng", - "Almer S. Tigelaar", - "Anders Carlsson", - "Andre Klapper", - "Andreas Hyden", - "Andrew T. Veliath", - "Andrew Wu", - "Ankit Patel", - "Anna Marie Dirks", - "Antonio Xu", - "Arafat Medini", - "Ariel Rios", - "Arik Devens", - "Arturo Espinosa Aldama", - "Bastien Nocera", - "Benjamin Kahn", - "Bertrand Guiheneuf", - "Bill Zhu", - "Bjorn Torkelsson" - "Bob Doan", - "Bolian Yin", - "Bruce Tao", - "Calvin Liu", - "Cantona Su", - "Carl Sun", - "Carlos Garnacho Parro", - "Carlos Perell\xC3\xB3" " Mar\xC3\xAD" "n", - "Carsten Schaar", - "Changwoo Ryu", - "Charles Zhang", - "Chema Celorio", - "Chenthill Palanisamy", - "Chris Lahey", - "Chris Toshok", - "Christian Hammond", - "Christian Kellner", - "Christian Kreibich", - "Christian Neumair", - "Christophe Fergeau", - "Christophe Merlet", - "Christopher Blizzard", - "Christopher J. Lahey", - "Clifford R. Conover", - "Cody Russell", - "Craig Small", - "Damon Chaplin", - "Dan Berger", - "Dan Winship", - "Danilo \xC5\xA0" "egan", - "Darin Adler", - "Dave Camp", - "Dave Fallon", - "Dave West", - "David Malcolm", - "David Moore", - "David Trowbridge", - "David Woodhouse", - "Dietmar Maurer", - "Duarte Loreto", - "Duncan Mak", - "ERDI Gergo", - "Ed Catmur", - "Edd Dumbill", - "Edgar Luna DÃaz", - "Elliot Lee", - "Elliot Turner", - "Eneko Lacunza", - "Enver ALTIN", - "Eric Zhao", - "Eskil Heyn Olsen", - "Ettore Perazzoli", - "Fatih Demir", - "Federico Mena Quintero", - "Fernando Herrera", - "Francisco Javier F. Serrador", - "Frank Belew", - "Frederic Crozat", - "Gary Ekker", - "Gediminas Paulauskas", - "Gerardo Marin", - "Gil Osher", - "Gilbert Fang", - "Grahame Bowland", - "Greg Hudson", - "Gregory McLean", - "Grzegorz Goawski", - "Gustavo Maciel Dias Vieira", - "H P Nadig", - "H\xC3\xA9" "ctor Garc\xC3\xAD" "a \xC3\x81" "lvarez", - "Hans Petter Jansson", - "Hao Sheng", - "Hari Prasad Nadig", - "Harish Krishnaswamy", - "Harry Lu", - "Hasbullah Bin Pit", - "Havoc Pennington", - "Heath Harrelson", - "Herbert V. Riedel", - "Iain Holmes", - "Ian Campbell", - "Ismael Olea", - "Israel Escalante", - "J.H.M. Dassen (Ray)", - "JP Rosevear", - "Jack Jia", - "Jacob Berkman", - "Jaka Mocnik", - "Jakub Steiner", - "James Henstridge", - "James Willcox", - "Jan Arne Petersen", - "Jason Leach", - "Jason Tackaberry", - "Jean-Noel Guiheneuf", - "Jeff Garzik", - "Jeffrey Stedfast", - "Jeremy Katz", - "Jeremy Wise", - "Jerome Lacoste", - "Jes\xC3\xBA" "s Bravo \xC3\x81" "lvarez", - "Jesse Pavel", - "Ji Lee", - "Jody Goldberg", - "Joe Shaw", - "Jon K Hellan", - "Jon Oberheide", - "Jon Trowbridge", - "Jonas Borgstr", - "Jonathan Blandford", - "Jos Dehaes", - "Jukka Zitting", - "J\xC3\xBC" "rg Billeter", - "Karl Eichwalder", - "Karsten Br\xC3\xA4" "ckelmann", - "Kenneth Christiansen", - "Kenny Graunke", - "Kevin Breit", - "Kidd Wang", - "Kjartan Maraas", - "Larry Ewing", - "Laurent Dhima", - "Lauris Kaplinski", - "Leon Zhang", - "Lorenzo Gil Sanchez", - "Luis Villa", - "Maciej Stachowiak", - "Malcolm Tredinnick", - "Marius Andreiana", - "Marius Vollmer", - "Mark Crichton", - "Mark Gordon", - "Martha Burke", - "Martin Baulig", - "Martin Hicks", - "Martin Norb\xC3\xA4" "ck", - "Martyn Russell", - "Mathieu Lacage", - "Matt Bissiri", - "Matt Martin", - "Matt Wilson", - "Matthew Loper", - "Matthew Wilson", - "Max Horn", - "Maxx Cao", - "Meilof Veeningen", - "Michael M. Morrison", - "Michael MacDonald", - "Michael Meeks", - "Michael Terry", - "Michael Zucchi", - "Michel Daenzer", - "Miguel de Icaza", - "Mikael Hallendal", - "Mike Castle", - "Mike Kestner", - "Mike McEwan", - "Miles Lane", - "Nat Friedman", - "Nicel KM", - "Nicholas J Kreucher", - "Nike Gerdts", - "Nuno Ferreira", - "P Chenthill", - "Pablo Gonzalo del Campo", - "Pablo Saratxaga", - "Paolo Molaro", - "Parthasarathi S A", - "Pavel Cisler", - "Pavel Roskin", - "Peter Pouliot", - "Peter Teichman", - "Peter Williams", - "Petta Pietikainen", - "Philip Zhao", - "Pratik V. Parikh", - "Priit Laes", - "Priyanshu Raj", - "Radek Doul\xC3\xADk", - "Raja R Harinath", - "Ray Strode", - "Richard Boulton", - "Richard Hult", - "Richard Li", - "Robert Brady", - "Robert Sedak", - "Rodney Dawes", - "Rodrigo Moya", - "Ronald Kuetemeier", - "Roozbeh Pournader", - "Ross Burton", - "Russell Steinthal", - "Ryan P. Skadberg", - "S N Tejasvi", - "Sam Creasey", - "Sam\xC3\xBA" "el J\xC3\xB3" "n Gunnarsson", - "Sanlig Badral", - "Sanshao Jiang", - "Sarfraaz Ahmed", - "Sean Atkinson", - "Sean Gao", - "Sebastian Rittau", - "Sebastian Wilhelmi", - "Sergey Panov", - "Seth Alves", - "Sivaiah Nallagatla", - "Stanislav Brabec", - "Stanislav Visnovsky", - "Steve Murphy", - "Stuart Parmenter", - "Suresh Chandrasekharan", - "Sushma Rai", - "Szabolcs BAN", - "T\xC3\xB5" "ivo Leedj\xC3\xA4" "rv", - "Taylor Hayward", - "Tim Wo", - "Timo Sirainen", - "Timothy Lee", - "Timur Bakeyev", - "Tom Tromey", - "Tomas Ogren", - "Tomislav Vujec", - "Trent Lloyd", - "Tuomas J. Lukka", - "Tuomas Kuosmanen", - "Umesh Tiwari", - "Umeshtej", - "V Ravi Kumar Raju", - "Vadim Strizhevsky", - "Valek Filippov", - "Vardhman Jain", - "Vladimir Vukicevic", - "Wang Jian", - "Wayne Davis", - "William Jon McCann", - "Xan Lopez", - "Yanko Kaneti", - "Yong Sun", - "Yuedong Du", - "Yukihiro Nakai", - "Yuri Syrota", - "Zbigniew Chyla", - NULL -}; -static const char *documentors[] = { - "Aaron Weber", - "David Trowbridge", - NULL -}; - -static GtkWidget * -about_box_new (void) -{ - GtkWidget *about_box = NULL; - GdkPixbuf *pixbuf = NULL; - char copyright[1024]; - char *filename = NULL; - - /* The translator-credits string is for translators to list - * per language credits for translation, displayed in the - * about box*/ - char *translator_credits = _("translator-credits"); - - g_sprintf (copyright, "Copyright \xC2\xA9 1999 - 2004 Novell, Inc. and Others"); - - filename = g_build_filename (EVOLUTION_DATADIR, "pixmaps", - "evolution-1.5.png", NULL); - if (filename != NULL) { - pixbuf = gdk_pixbuf_new_from_file (filename, NULL); - g_free (filename); - } - - about_box = gnome_about_new ("Evolution", - VERSION, - copyright, - _("Groupware Suite"), - authors, documentors, - strcmp (translator_credits, "translator-credits") ? translator_credits : NULL, - pixbuf); - - if (pixbuf != NULL) - g_object_unref (pixbuf); - - return GTK_WIDGET (about_box); -} - -static void -command_about_box (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - static GtkWidget *about_box_window = NULL; - - if (about_box_window != NULL) { - gdk_window_raise (about_box_window->window); - return; - } - - about_box_window = about_box_new (); - - g_signal_connect (G_OBJECT (about_box_window), "destroy", - G_CALLBACK (gtk_widget_destroyed), &about_box_window); - - gtk_window_set_transient_for (GTK_WINDOW (about_box_window), GTK_WINDOW (window)); - - gtk_widget_show (about_box_window); -} - -static void -command_help_faq (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - /* FIXME Show when we have a faq */ - /* FIXME use the error */ - gnome_url_show ("http://gnome.org/projects/evolution/faq.shtml", NULL); -} - -static void -command_quick_reference (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - char *quickref; - char *uri; - char *command; - GString *str; - GnomeVFSMimeApplication *app; - const GList *lang_list = gnome_i18n_get_language_list ("LC_MESSAGES"); - - for (; lang_list != NULL; lang_list = lang_list->next) { - const char *lang = lang_list->data; - - /* This has to be a valid language AND a language with - * no encoding postfix. The language will come up without - * encoding next */ - if (lang == NULL || strchr (lang, '.') != NULL) - continue; - - quickref = g_build_filename (EVOLUTION_HELPDIR, "quickref", lang, "quickref.pdf", NULL); - if (g_file_test (quickref, G_FILE_TEST_EXISTS)) { - app = gnome_vfs_mime_get_default_application ("application/pdf"); - if (app) { - str = g_string_new (""); - str = g_string_append (str, app->command); - - switch (app->expects_uris) { - case GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS: - uri = g_strconcat ("file://", quickref, NULL); - g_string_append_printf (str, " %s", uri); - g_free (uri); - break; - case GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_PATHS: - case GNOME_VFS_MIME_APPLICATION_ARGUMENT_TYPE_URIS_FOR_NON_FILES: - g_string_append_printf (str, " %s", quickref); - break; - } - - command = g_string_free (str, FALSE); - if (command != NULL && - !g_spawn_command_line_async (command, NULL)) { - g_warning ("Could not launch %s", command); - } - - g_free (command); - gnome_vfs_mime_application_free (app); - } - - g_free (quickref); - return; - } - - g_free (quickref); - } -} - - -static void -command_work_offline (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - e_shell_go_offline (e_shell_window_peek_shell (window), window); -} - -static void -command_work_online (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - e_shell_go_online (e_shell_window_peek_shell (window), window); -} - -static void -command_open_new_window (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - e_shell_create_window (e_shell_window_peek_shell (window), - e_shell_window_peek_current_component_id (window), - window); -} - - -/* Actions menu. */ - -static void -command_send_receive (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - e_shell_send_receive (e_shell_window_peek_shell (window)); -} - -static void -command_forget_passwords (BonoboUIComponent *ui_component, - void *data, - const char *path) -{ - e_passwords_forget_passwords(); -} - -/* Tools menu. */ - -static void -command_settings (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - e_shell_window_show_settings (window); -} - -static void -command_pilot_settings (BonoboUIComponent *uih, - EShellWindow *window, - const char *path) -{ - launch_pilot_settings (NULL); -} - - -static BonoboUIVerb file_verbs [] = { - BONOBO_UI_VERB ("FileImporter", (BonoboUIVerbFn) command_import), - BONOBO_UI_VERB ("FileClose", (BonoboUIVerbFn) command_close), - BONOBO_UI_VERB ("FileExit", (BonoboUIVerbFn) command_quit), - - BONOBO_UI_VERB ("WorkOffline", (BonoboUIVerbFn) command_work_offline), - BONOBO_UI_VERB ("WorkOnline", (BonoboUIVerbFn) command_work_online), - - BONOBO_UI_VERB_END -}; - -static BonoboUIVerb new_verbs [] = { - BONOBO_UI_VERB ("OpenNewWindow", (BonoboUIVerbFn) command_open_new_window), - - BONOBO_UI_VERB_END -}; - -static BonoboUIVerb actions_verbs[] = { - BONOBO_UI_VERB ("SendReceive", (BonoboUIVerbFn) command_send_receive), - BONOBO_UI_VERB ("ForgetPasswords", command_forget_passwords), - - BONOBO_UI_VERB_END -}; - -static BonoboUIVerb tools_verbs[] = { - BONOBO_UI_VERB ("Settings", (BonoboUIVerbFn) command_settings), - BONOBO_UI_VERB ("PilotSettings", (BonoboUIVerbFn) command_pilot_settings), - - BONOBO_UI_VERB_END -}; - -static BonoboUIVerb help_verbs [] = { - BONOBO_UI_VERB ("QuickReference", (BonoboUIVerbFn) command_quick_reference), - BONOBO_UI_VERB ("HelpSubmitBug", (BonoboUIVerbFn) command_submit_bug), - BONOBO_UI_VERB ("HelpAbout", (BonoboUIVerbFn) command_about_box), - - BONOBO_UI_VERB_END -}; - -static EPixmap pixmaps [] = { - E_PIXMAP ("/commands/SendReceive", "stock_mail-send-receive", E_ICON_SIZE_MENU), - E_PIXMAP ("/Toolbar/SendReceive", "stock_mail-send-receive", E_ICON_SIZE_LARGE_TOOLBAR), - E_PIXMAP ("/menu/File/FileImporter", "stock_mail-import", E_ICON_SIZE_MENU), - E_PIXMAP ("/menu/File/ToggleOffline", "stock_disconnect", E_ICON_SIZE_MENU), - E_PIXMAP ("/menu/Tools/Settings", "gnome-settings", E_ICON_SIZE_MENU), - - E_PIXMAP_END -}; - -static EPixmap offline_pixmaps [] = { - E_PIXMAP ("/menu/File/ToggleOffline", "stock_disconnect", E_ICON_SIZE_MENU), - E_PIXMAP_END -}; - -static EPixmap online_pixmaps [] = { - E_PIXMAP ("/menu/File/ToggleOffline", "stock_connect", E_ICON_SIZE_MENU), - E_PIXMAP_END -}; - - -/* The Work Online / Work Offline menu item. */ - -static void -update_offline_menu_item (EShellWindow *shell_window, - EShellLineStatus line_status) -{ - BonoboUIComponent *ui_component; - - ui_component = e_shell_window_peek_bonobo_ui_component (shell_window); - - switch (line_status) { - case E_SHELL_LINE_STATUS_OFFLINE: - bonobo_ui_component_set_prop (ui_component, - "/menu/File/ToggleOffline", - "label", _("_Work Online"), NULL); - bonobo_ui_component_set_prop (ui_component, - "/menu/File/ToggleOffline", - "verb", "WorkOnline", NULL); - bonobo_ui_component_set_prop (ui_component, - "/commands/ToggleOffline", - "sensitive", "1", NULL); - e_pixmaps_update (ui_component, online_pixmaps); - break; - - case E_SHELL_LINE_STATUS_ONLINE: - bonobo_ui_component_set_prop (ui_component, - "/menu/File/ToggleOffline", - "label", _("_Work Offline"), NULL); - bonobo_ui_component_set_prop (ui_component, - "/menu/File/ToggleOffline", - "verb", "WorkOffline", NULL); - bonobo_ui_component_set_prop (ui_component, - "/commands/ToggleOffline", - "sensitive", "1", NULL); - e_pixmaps_update (ui_component, offline_pixmaps); - break; - - case E_SHELL_LINE_STATUS_GOING_OFFLINE: - bonobo_ui_component_set_prop (ui_component, - "/menu/File/ToggleOffline", - "label", _("Work Offline"), NULL); - bonobo_ui_component_set_prop (ui_component, - "/menu/File/ToggleOffline", - "verb", "WorkOffline", NULL); - bonobo_ui_component_set_prop (ui_component, - "/commands/ToggleOffline", - "sensitive", "0", NULL); - e_pixmaps_update (ui_component, offline_pixmaps); - break; - - default: - g_assert_not_reached (); - } -} - -static void -shell_line_status_changed_cb (EShell *shell, - EShellLineStatus new_status, - EShellWindow *shell_window) -{ - update_offline_menu_item (shell_window, new_status); -} - -static void -view_toolbar_item_toggled_handler (BonoboUIComponent *ui_component, - const char *path, - Bonobo_UIComponent_EventType type, - const char *state, - EShellWindow *shell_window) -{ - gboolean is_visible; - - is_visible = state[0] == '1'; - - bonobo_ui_component_set_prop (ui_component, "/Toolbar", - "hidden", is_visible ? "0" : "1", NULL); -} - - -/* Public API. */ - -void -e_shell_window_commands_setup (EShellWindow *shell_window) -{ - BonoboUIComponent *uic; - EShell *shell; - - g_return_if_fail (shell_window != NULL); - g_return_if_fail (E_IS_SHELL_WINDOW (shell_window)); - - uic = e_shell_window_peek_bonobo_ui_component (shell_window); - shell = e_shell_window_peek_shell (shell_window); - - bonobo_ui_component_add_verb_list_with_data (uic, file_verbs, shell_window); - bonobo_ui_component_add_verb_list_with_data (uic, new_verbs, shell_window); - bonobo_ui_component_add_verb_list_with_data (uic, actions_verbs, shell_window); - bonobo_ui_component_add_verb_list_with_data (uic, tools_verbs, shell_window); - bonobo_ui_component_add_verb_list_with_data (uic, help_verbs, shell_window); - bonobo_ui_component_add_listener (uic, "ViewToolbar", - (BonoboUIListenerFn)view_toolbar_item_toggled_handler, - (gpointer)shell_window); - - e_pixmaps_update (uic, pixmaps); - - /* Set up the work online / work offline menu item. */ - g_signal_connect_object (shell, "line_status_changed", - G_CALLBACK (shell_line_status_changed_cb), shell_window, 0); - update_offline_menu_item (shell_window, e_shell_get_line_status (shell)); -} diff --git a/shell/e-shell-window-commands.h b/shell/e-shell-window-commands.h deleted file mode 100644 index b27b611f74..0000000000 --- a/shell/e-shell-window-commands.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-window-commands.h - * - * Copyright (C) 2003 Ettore Perazzoli - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_SHELL_WINDOW_COMMANDS_H_ -#define _E_SHELL_WINDOW_COMMANDS_H_ - -#include "e-shell-window.h" - -void e_shell_window_commands_setup (EShellWindow *window); - -#endif /* _E_SHELL_WINDOW_COMMANDS_H_ */ diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c deleted file mode 100644 index 1d9c4f5202..0000000000 --- a/shell/e-shell-window.c +++ /dev/null @@ -1,912 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-window.c - * - * Copyright (C) 2003 Ettore Perazzoli - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#include <config.h> - -#include "e-shell-window.h" - -#include "Evolution.h" - -#include "e-component-registry.h" -#include "e-shell-window-commands.h" -#include "e-shell-marshal.h" -#include "e-sidebar.h" - -#include <gal/util/e-util.h> - -#include <gtk/gtkbutton.h> -#include <gtk/gtkhbox.h> -#include <gtk/gtkhpaned.h> -#include <gtk/gtkimage.h> -#include <gtk/gtklabel.h> -#include <gtk/gtknotebook.h> -#include <gtk/gtktooltips.h> -#include <gtk/gtkvbox.h> - -#include <bonobo/bonobo-exception.h> -#include <bonobo/bonobo-object.h> -#include <bonobo/bonobo-ui-util.h> -#include <bonobo/bonobo-widget.h> - -#include <libgnome/gnome-i18n.h> - -#include <gconf/gconf-client.h> - -#include <string.h> - - -#define PARENT_TYPE gtk_window_get_type () -static GtkWindowClass *parent_class = NULL; - - -/* A view for each component. These are all created when EShellWindow is - instantiated, but with the widget pointers to NULL and the page number set - to -1. When the views are created the first time, the widget pointers as - well as the notebook page value get set. */ -struct _ComponentView { - int button_id; - char *component_id; - char *component_alias; - - GtkWidget *sidebar_widget; - GtkWidget *view_widget; - GtkWidget *statusbar_widget; - - int notebook_page_num; -}; -typedef struct _ComponentView ComponentView; - - -struct _EShellWindowPrivate { - EShell *shell; - - /* All the ComponentViews. */ - GSList *component_views; - - /* The paned widget for the sidebar and component views */ - GtkWidget *paned; - - /* The sidebar. */ - GtkWidget *sidebar; - - /* Notebooks used to switch between components. */ - GtkWidget *sidebar_notebook; - GtkWidget *view_notebook; - GtkWidget *statusbar_notebook; - - /* Bonobo foo. */ - BonoboUIComponent *ui_component; - - /* The current view (can be NULL initially). */ - ComponentView *current_view; - - /* Tooltips. */ - GtkTooltips *tooltips; - - /* The status bar widgetry. */ - GtkWidget *status_bar; - GtkWidget *offline_toggle; - GtkWidget *offline_toggle_image; - GtkWidget *menu_hint_label; -}; - - -enum { - COMPONENT_CHANGED, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = { 0 }; - - -/* The icons for the offline/online status. */ - -static GdkPixmap *offline_pixmap = NULL; -static GdkBitmap *offline_mask = NULL; - -static GdkPixmap *online_pixmap = NULL; -static GdkBitmap *online_mask = NULL; - - -/* ComponentView handling. */ - -static ComponentView * -component_view_new (const char *id, const char *alias, int button_id) -{ - ComponentView *view = g_new0 (ComponentView, 1); - - view->component_id = g_strdup (id); - view->component_alias = g_strdup (alias); - view->button_id = button_id; - view->notebook_page_num = -1; - - return view; -} - -static void -component_view_free (ComponentView *view) -{ - g_free (view->component_id); - g_free (view->component_alias); - g_free (view); -} - -static void -component_view_deactivate (ComponentView *view) -{ - BonoboControlFrame *view_control_frame; - BonoboControlFrame *sidebar_control_frame; - - g_return_if_fail (view->sidebar_widget != NULL); - g_return_if_fail (view->view_widget != NULL); - - view_control_frame = bonobo_widget_get_control_frame (BONOBO_WIDGET (view->view_widget)); - bonobo_control_frame_control_deactivate (view_control_frame); - - sidebar_control_frame = bonobo_widget_get_control_frame (BONOBO_WIDGET (view->sidebar_widget)); - bonobo_control_frame_control_deactivate (sidebar_control_frame); -} - -static void -component_view_activate (ComponentView *view) -{ - BonoboControlFrame *view_control_frame; - BonoboControlFrame *sidebar_control_frame; - - g_return_if_fail (view->sidebar_widget != NULL); - g_return_if_fail (view->view_widget != NULL); - - view_control_frame = bonobo_widget_get_control_frame (BONOBO_WIDGET (view->view_widget)); - bonobo_control_frame_control_activate (view_control_frame); - - sidebar_control_frame = bonobo_widget_get_control_frame (BONOBO_WIDGET (view->sidebar_widget)); - bonobo_control_frame_control_activate (sidebar_control_frame); -} - -static void -init_view (EShellWindow *window, - ComponentView *view) -{ - EShellWindowPrivate *priv = window->priv; - EComponentRegistry *registry = e_shell_peek_component_registry (window->priv->shell); - GNOME_Evolution_Component component_iface; - Bonobo_UIContainer container; - Bonobo_Control sidebar_control; - Bonobo_Control view_control; - Bonobo_Control statusbar_control; - CORBA_Environment ev; - int sidebar_notebook_page_num; - int view_notebook_page_num; - int statusbar_notebook_page_num; - - g_assert (view->view_widget == NULL); - g_assert (view->sidebar_widget == NULL); - g_assert (view->notebook_page_num == -1); - - CORBA_exception_init (&ev); - - /* 1. Activate component. (FIXME: Shouldn't do this here.) */ - - component_iface = e_component_registry_activate (registry, view->component_id, &ev); - if (BONOBO_EX (&ev) || component_iface == CORBA_OBJECT_NIL) { - char *ex_text = bonobo_exception_get_text (&ev); - g_warning ("Cannot activate component %s: %s", view->component_id, ex_text); - g_free (ex_text); - CORBA_exception_free (&ev); - return; - } - - /* 2. Set up view. */ - - GNOME_Evolution_Component_createControls (component_iface, &sidebar_control, &view_control, &statusbar_control, &ev); - if (BONOBO_EX (&ev)) { - g_warning ("Cannot create view for %s", view->component_id); - - /* The rest of the code assumes that the component is valid and can create - controls; if this fails something is really wrong in the component - (e.g. methods not implemented)... So handle it as if there was no - component at all. */ - bonobo_object_release_unref (component_iface, NULL); - CORBA_exception_free (&ev); - return; - } - - CORBA_exception_free (&ev); - - container = bonobo_ui_component_get_container (priv->ui_component); - - view->sidebar_widget = bonobo_widget_new_control_from_objref (sidebar_control, container); - gtk_widget_show (view->sidebar_widget); - bonobo_object_release_unref (sidebar_control, NULL); - - view->view_widget = bonobo_widget_new_control_from_objref (view_control, container); - gtk_widget_show (view->view_widget); - bonobo_object_release_unref (view_control, NULL); - - view->statusbar_widget = bonobo_widget_new_control_from_objref (statusbar_control, container); - gtk_widget_show (view->statusbar_widget); - bonobo_object_release_unref (statusbar_control, NULL); - - gtk_notebook_append_page (GTK_NOTEBOOK (priv->sidebar_notebook), view->sidebar_widget, NULL); - gtk_notebook_append_page (GTK_NOTEBOOK (priv->view_notebook), view->view_widget, NULL); - gtk_notebook_append_page (GTK_NOTEBOOK (priv->statusbar_notebook), view->statusbar_widget, NULL); - - sidebar_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->sidebar_notebook), view->sidebar_widget); - view_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->view_notebook), view->view_widget); - statusbar_notebook_page_num = gtk_notebook_page_num (GTK_NOTEBOOK (priv->view_notebook), view->statusbar_widget); - - /* Since we always add a view page and a sidebar page at the same time... */ - g_assert (sidebar_notebook_page_num == view_notebook_page_num); - - view->notebook_page_num = view_notebook_page_num; - - /* 3. Switch to the new page. */ - - gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->view_notebook), view_notebook_page_num); - gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->sidebar_notebook), view_notebook_page_num); - gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->statusbar_notebook), view_notebook_page_num); - - if (priv->current_view != NULL) - component_view_deactivate (priv->current_view); - priv->current_view = view; - component_view_activate (view); - - bonobo_object_release_unref (component_iface, NULL); -} - -static void -switch_view (EShellWindow *window, ComponentView *component_view) -{ - EShellWindowPrivate *priv = window->priv; - GConfClient *gconf_client = gconf_client_get_default (); - EComponentRegistry *registry = e_shell_peek_component_registry (window->priv->shell); - EComponentInfo *info = e_component_registry_peek_info (registry, - ECR_FIELD_ID, - component_view->component_id); - char *title; - - if (component_view->sidebar_widget == NULL) { - init_view (window, component_view); - } else { - if (priv->current_view != NULL) - component_view_deactivate (priv->current_view); - priv->current_view = component_view; - component_view_activate (component_view); - - gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->view_notebook), component_view->notebook_page_num); - gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->sidebar_notebook), component_view->notebook_page_num); - gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->statusbar_notebook), component_view->notebook_page_num); - } - - title = g_strdup_printf ("Evolution - %s", info->button_label); - gtk_window_set_title (GTK_WINDOW (window), title); - g_free (title); - - if (info->button_icon) - gtk_window_set_icon (GTK_WINDOW (window), info->button_icon); - - gconf_client_set_string (gconf_client, "/apps/evolution/shell/view_defaults/component_id", - (component_view->component_alias != NULL - ? component_view->component_alias - : component_view->component_id), - NULL); - - g_object_unref (gconf_client); - - g_signal_emit (window, signals[COMPONENT_CHANGED], 0); -} - - -/* Functions to update the sensitivity of buttons and menu items depending on the status. */ - -static void -update_offline_toggle_status (EShellWindow *window) -{ - EShellWindowPrivate *priv; - GdkPixmap *icon_pixmap; - GdkBitmap *icon_mask; - const char *tooltip; - gboolean sensitive; - - priv = window->priv; - - switch (e_shell_get_line_status (priv->shell)) { - case E_SHELL_LINE_STATUS_ONLINE: - icon_pixmap = online_pixmap; - icon_mask = online_mask; - sensitive = TRUE; - tooltip = _("Evolution is currently online. " - "Click on this button to work offline."); - break; - case E_SHELL_LINE_STATUS_GOING_OFFLINE: - icon_pixmap = online_pixmap; - icon_mask = online_mask; - sensitive = FALSE; - tooltip = _("Evolution is in the process of going offline."); - break; - case E_SHELL_LINE_STATUS_OFFLINE: - icon_pixmap = offline_pixmap; - icon_mask = offline_mask; - sensitive = TRUE; - tooltip = _("Evolution is currently offline. " - "Click on this button to work online."); - break; - default: - g_assert_not_reached (); - return; - } - - gtk_image_set_from_pixmap (GTK_IMAGE (priv->offline_toggle_image), icon_pixmap, icon_mask); - gtk_widget_set_sensitive (priv->offline_toggle, sensitive); - gtk_tooltips_set_tip (priv->tooltips, priv->offline_toggle, tooltip, NULL); -} - -static void -update_send_receive_sensitivity (EShellWindow *window) -{ - if (e_shell_get_line_status (window->priv->shell) == E_SHELL_LINE_STATUS_OFFLINE) - bonobo_ui_component_set_prop (window->priv->ui_component, - "/commands/SendReceive", - "sensitive", "0", NULL); - else - bonobo_ui_component_set_prop (window->priv->ui_component, - "/commands/SendReceive", - "sensitive", "1", NULL); -} - - -/* Callbacks. */ - -static void -sidebar_button_selected_callback (ESidebar *sidebar, - int button_id, - EShellWindow *window) -{ - EShellWindowPrivate *priv = window->priv; - ComponentView *component_view = NULL; - GSList *p; - - for (p = priv->component_views; p != NULL; p = p->next) { - if (((ComponentView *) p->data)->button_id == button_id) { - component_view = p->data; - break; - } - } - - if (component_view == NULL) { - g_warning ("Unknown component button id %d", button_id); - return; - } - - switch_view (window, component_view); -} - -static void -offline_toggle_clicked_callback (GtkButton *button, - EShellWindow *window) -{ - EShellWindowPrivate *priv = window->priv; - - switch (e_shell_get_line_status (priv->shell)) { - case E_SHELL_LINE_STATUS_ONLINE: - e_shell_go_offline (priv->shell, window); - break; - case E_SHELL_LINE_STATUS_OFFLINE: - e_shell_go_online (priv->shell, window); - break; - default: - g_assert_not_reached (); - } -} - -static void -shell_line_status_changed_callback (EShell *shell, - EShellLineStatus new_status, - EShellWindow *window) -{ - update_offline_toggle_status (window); - update_send_receive_sensitivity (window); -} - -static void -ui_engine_add_hint_callback (BonoboUIEngine *engine, - const char *hint, - EShellWindow *window) -{ - gtk_label_set_text (GTK_LABEL (window->priv->menu_hint_label), hint); - gtk_widget_show (window->priv->menu_hint_label); - gtk_widget_hide (window->priv->statusbar_notebook); -} - -static void -ui_engine_remove_hint_callback (BonoboUIEngine *engine, - EShellWindow *window) -{ - gtk_widget_hide (window->priv->menu_hint_label); - gtk_widget_show (window->priv->statusbar_notebook); -} - - -/* Widgetry. */ - -static void -load_icons (void) -{ - GdkPixbuf *pixbuf; - - pixbuf = gdk_pixbuf_new_from_file (EVOLUTION_IMAGES "/offline.png", NULL); - if (pixbuf == NULL) { - g_warning ("Cannot load `%s'", EVOLUTION_IMAGES "/offline.png"); - } else { - gdk_pixbuf_render_pixmap_and_mask (pixbuf, &offline_pixmap, &offline_mask, 128); - g_object_unref (pixbuf); - } - - pixbuf = gdk_pixbuf_new_from_file (EVOLUTION_IMAGES "/online.png", NULL); - if (pixbuf == NULL) { - g_warning ("Cannot load `%s'", EVOLUTION_IMAGES "/online.png"); - } else { - gdk_pixbuf_render_pixmap_and_mask (pixbuf, &online_pixmap, &online_mask, 128); - g_object_unref (pixbuf); - } -} - -static void -setup_offline_toggle (EShellWindow *window) -{ - EShellWindowPrivate *priv; - GtkWidget *toggle; - GtkWidget *image; - - priv = window->priv; - - toggle = gtk_button_new (); - GTK_WIDGET_UNSET_FLAGS (toggle, GTK_CAN_FOCUS); - gtk_button_set_relief (GTK_BUTTON (toggle), GTK_RELIEF_NONE); - - g_signal_connect (toggle, "clicked", - G_CALLBACK (offline_toggle_clicked_callback), window); - - image = gtk_image_new_from_pixmap (offline_pixmap, offline_mask); - - gtk_container_add (GTK_CONTAINER (toggle), image); - - gtk_widget_show (toggle); - gtk_widget_show (image); - - priv->offline_toggle = toggle; - priv->offline_toggle_image = image; - - update_offline_toggle_status (window); - - g_assert (priv->status_bar != NULL); - - gtk_box_pack_start (GTK_BOX (priv->status_bar), priv->offline_toggle, FALSE, TRUE, 0); -} - -static void -setup_menu_hint_label (EShellWindow *window) -{ - EShellWindowPrivate *priv; - - priv = window->priv; - - priv->menu_hint_label = gtk_label_new (""); - gtk_misc_set_alignment (GTK_MISC (priv->menu_hint_label), 0.0, 0.5); - - gtk_box_pack_start (GTK_BOX (priv->status_bar), priv->menu_hint_label, TRUE, TRUE, 0); -} - -static void -setup_statusbar_notebook (EShellWindow *window) -{ - EShellWindowPrivate *priv; - - priv = window->priv; - - priv->statusbar_notebook = gtk_notebook_new (); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->statusbar_notebook), FALSE); - gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->statusbar_notebook), FALSE); - - gtk_box_pack_start (GTK_BOX (priv->status_bar), priv->statusbar_notebook, TRUE, TRUE, 0); - gtk_widget_show (priv->statusbar_notebook); -} - -static void -setup_status_bar (EShellWindow *window) -{ - EShellWindowPrivate *priv; - BonoboUIEngine *ui_engine; - - priv = window->priv; - - priv->status_bar = gtk_hbox_new (FALSE, 2); - gtk_widget_show (priv->status_bar); - - setup_offline_toggle (window); - setup_menu_hint_label (window); - setup_statusbar_notebook (window); - - ui_engine = bonobo_window_get_ui_engine (BONOBO_WINDOW (window)); - - g_signal_connect (ui_engine, "add_hint", G_CALLBACK (ui_engine_add_hint_callback), window); - g_signal_connect (ui_engine, "remove_hint", G_CALLBACK (ui_engine_remove_hint_callback), window); -} - -static void -menu_component_selected (BonoboUIComponent *uic, - EShellWindow *window, - const char *path) -{ - char *component_id; - - component_id = strchr(path, '-'); - if (component_id) - e_shell_window_switch_to_component (window, component_id+1); -} - -static void -setup_widgets (EShellWindow *window) -{ - EShellWindowPrivate *priv = window->priv; - EComponentRegistry *registry = e_shell_peek_component_registry (priv->shell); - GConfClient *gconf_client = gconf_client_get_default (); - GtkWidget *contents_vbox; - GSList *p; - GString *xml; - int button_id; - gboolean toolbar_visible; - - priv->paned = gtk_hpaned_new (); - - priv->sidebar = e_sidebar_new (); - g_signal_connect (priv->sidebar, "button_selected", - G_CALLBACK (sidebar_button_selected_callback), window); - gtk_paned_pack1 (GTK_PANED (priv->paned), priv->sidebar, FALSE, FALSE); - - priv->sidebar_notebook = gtk_notebook_new (); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->sidebar_notebook), FALSE); - gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->sidebar_notebook), FALSE); - e_sidebar_set_selection_widget (E_SIDEBAR (priv->sidebar), priv->sidebar_notebook); - - priv->view_notebook = gtk_notebook_new (); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->view_notebook), FALSE); - gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->view_notebook), FALSE); - gtk_paned_pack2 (GTK_PANED (priv->paned), priv->view_notebook, TRUE, TRUE); - - gtk_paned_set_position (GTK_PANED (priv->paned), - gconf_client_get_int (gconf_client, "/apps/evolution/shell/view_defaults/folder_bar/width", NULL)); - - toolbar_visible = gconf_client_get_bool (gconf_client, - "/apps/evolution/shell/view_defaults/toolbar_visible", - NULL); - bonobo_ui_component_set_prop (e_shell_window_peek_bonobo_ui_component (window), - "/commands/ViewToolbar", - "state", - toolbar_visible ? "1" : "0", - NULL); - bonobo_ui_component_set_prop (e_shell_window_peek_bonobo_ui_component (window), - "/Toolbar", - "hidden", - toolbar_visible ? "0" : "1", - NULL); - - button_id = 0; - xml = g_string_new(""); - for (p = e_component_registry_peek_list (registry); p != NULL; p = p->next) { - char *tmp; - EComponentInfo *info = p->data; - ComponentView *view = component_view_new (info->id, info->alias, button_id); - - window->priv->component_views = g_slist_prepend (window->priv->component_views, view); - e_sidebar_add_button (E_SIDEBAR (priv->sidebar), info->button_label, info->button_icon, button_id); - - g_string_printf(xml, "SwitchComponent-%s", info->alias); - bonobo_ui_component_add_verb (e_shell_window_peek_bonobo_ui_component (window), - xml->str, - (BonoboUIVerbFn)menu_component_selected, - window); - - g_string_printf(xml, "<submenu name=\"View\">" - "<submenu name=\"Window\">" - "<placeholder name=\"WindowComponent\">" - "<menuitem name=\"SwitchComponent-%s\" " - "verb=\"\" label=\"%s\" accel=\"%s\" tip=\"", - info->alias, - info->menu_label, - info->menu_accelerator); - g_string_append_printf(xml, _("Switch to %s"), info->button_label); - tmp = bonobo_ui_util_pixbuf_to_xml (info->menu_icon), - g_string_append_printf(xml, "\" pixtype=\"pixbuf\" pixname=\"%s\"/>" - "</placeholder></submenu></submenu>\n", - tmp); - g_free(tmp); - bonobo_ui_component_set_translate (e_shell_window_peek_bonobo_ui_component (window), - "/menu", - xml->str, - NULL); - g_string_printf(xml, "<cmd name=\"SwitchComponent-%s\"/>\n", info->alias); - bonobo_ui_component_set_translate (e_shell_window_peek_bonobo_ui_component (window), - "/commands", - xml->str, - NULL); - button_id ++; - } - g_string_free(xml, TRUE); - - setup_status_bar (window); - - contents_vbox = gtk_vbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (contents_vbox), priv->paned, TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (contents_vbox), priv->status_bar, FALSE, TRUE, 0); - gtk_widget_show_all (contents_vbox); - - /* We only display this when a menu item is actually selected. */ - gtk_widget_hide (priv->menu_hint_label); - - bonobo_window_set_contents (BONOBO_WINDOW (window), contents_vbox); - g_object_unref (gconf_client); -} - - -/* GObject methods. */ - -static void -impl_dispose (GObject *object) -{ - EShellWindowPrivate *priv = E_SHELL_WINDOW (object)->priv; - - if (priv->shell != NULL) { - g_object_remove_weak_pointer (G_OBJECT (priv->shell), (void **) &priv->shell); - priv->shell = NULL; - } - - if (priv->ui_component != NULL) { - bonobo_object_unref (BONOBO_OBJECT (priv->ui_component)); - priv->ui_component = NULL; - } - - if (priv->tooltips != NULL) { - gtk_object_destroy (GTK_OBJECT (priv->tooltips)); - priv->tooltips = NULL; - } - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - EShellWindowPrivate *priv = E_SHELL_WINDOW (object)->priv; - - g_slist_foreach (priv->component_views, (GFunc) component_view_free, NULL); - g_slist_free (priv->component_views); - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -/* Initialization. */ - -static void -class_init (EShellWindowClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - - parent_class = g_type_class_peek_parent (class); - - signals[COMPONENT_CHANGED] = g_signal_new ("component_changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EShellWindowClass, component_changed), - NULL, NULL, - e_shell_marshal_NONE__NONE, - G_TYPE_NONE, 0); - - load_icons (); -} - -static void -init (EShellWindow *shell_window) -{ - EShellWindowPrivate *priv = g_new0 (EShellWindowPrivate, 1); - - priv->tooltips = gtk_tooltips_new (); - - shell_window->priv = priv; -} - - -/* Instantiation. */ - -GtkWidget * -e_shell_window_new (EShell *shell, - const char *component_id) -{ - EShellWindow *window = g_object_new (e_shell_window_get_type (), NULL); - EShellWindowPrivate *priv = window->priv; - GConfClient *gconf_client = gconf_client_get_default (); - BonoboUIContainer *ui_container; - char *default_component_id = NULL; - - if (bonobo_window_construct (BONOBO_WINDOW (window), - bonobo_ui_container_new (), - "evolution", "Evolution") == NULL) { - g_object_unref (window); - g_object_unref (gconf_client); - return NULL; - } - - window->priv->shell = shell; - g_object_add_weak_pointer (G_OBJECT (shell), (void **) &window->priv->shell); - - /* FIXME TODO: Add system_exception signal handling and all the other - stuff from e_shell_view_construct(). */ - - ui_container = bonobo_window_get_ui_container (BONOBO_WINDOW (window)); - - priv->ui_component = bonobo_ui_component_new ("evolution"); - bonobo_ui_component_set_container (priv->ui_component, - bonobo_object_corba_objref (BONOBO_OBJECT (ui_container)), - NULL); - - bonobo_ui_util_set_ui (priv->ui_component, - PREFIX, - EVOLUTION_UIDIR "/evolution.xml", - "evolution-" BASE_VERSION, NULL); - - e_shell_window_commands_setup (window); - - setup_widgets (window); - - g_signal_connect_object (shell, "line_status_changed", G_CALLBACK (shell_line_status_changed_callback), window, 0); - - gtk_window_set_default_size (GTK_WINDOW (window), 640, 480); - - if (component_id == NULL) { - component_id = default_component_id = - gconf_client_get_string (gconf_client, - "/apps/evolution/shell/view_defaults/component_id", - NULL); - if (component_id == NULL) - component_id = "mail"; - } - - e_shell_window_switch_to_component (window, component_id); - g_free(default_component_id); - g_object_unref (gconf_client); - - gtk_window_set_default_size (GTK_WINDOW (window), - gconf_client_get_int (gconf_client, "/apps/evolution/shell/view_defaults/width", NULL), - gconf_client_get_int (gconf_client, "/apps/evolution/shell/view_defaults/height", NULL)); - - g_object_unref (gconf_client); - return GTK_WIDGET (window); -} - - -void -e_shell_window_switch_to_component (EShellWindow *window, const char *component_id) -{ - EShellWindowPrivate *priv = window->priv; - ComponentView *view = NULL; - GSList *p; - - g_return_if_fail (E_IS_SHELL_WINDOW (window)); - g_return_if_fail (component_id != NULL); - - for (p = priv->component_views; p != NULL; p = p->next) { - ComponentView *this_view = p->data; - - if (strcmp (this_view->component_id, component_id) == 0 - || (this_view->component_alias != NULL - && strcmp (this_view->component_alias, component_id) == 0)) - { - view = p->data; - break; - } - } - - if (view == NULL) { - g_warning ("Unknown component %s", component_id); - return; - } - - e_sidebar_select_button (E_SIDEBAR (priv->sidebar), view->button_id); -} - - -const char * -e_shell_window_peek_current_component_id (EShellWindow *window) -{ - g_return_val_if_fail (E_IS_SHELL_WINDOW (window), NULL); - - if (window->priv->current_view == NULL) - return NULL; - - return window->priv->current_view->component_id; -} - - -EShell * -e_shell_window_peek_shell (EShellWindow *window) -{ - g_return_val_if_fail (E_IS_SHELL_WINDOW (window), NULL); - - return window->priv->shell; -} - - -BonoboUIComponent * -e_shell_window_peek_bonobo_ui_component (EShellWindow *window) -{ - g_return_val_if_fail (E_IS_SHELL_WINDOW (window), NULL); - - return window->priv->ui_component; -} - -void -e_shell_window_save_defaults (EShellWindow *window) -{ - GConfClient *client = gconf_client_get_default (); - char *prop; - gboolean toolbar_visible; - - gconf_client_set_int (client, "/apps/evolution/shell/view_defaults/width", - GTK_WIDGET (window)->allocation.width, NULL); - gconf_client_set_int (client, "/apps/evolution/shell/view_defaults/height", - GTK_WIDGET (window)->allocation.height, NULL); - - gconf_client_set_int (client, "/apps/evolution/shell/view_defaults/folder_bar/width", - gtk_paned_get_position (GTK_PANED (window->priv->paned)), NULL); - - prop = bonobo_ui_component_get_prop (e_shell_window_peek_bonobo_ui_component (window), - "/commands/ViewToolbar", - "state", - NULL); - if (prop) { - toolbar_visible = prop[0] == '1'; - gconf_client_set_bool (client, - "/apps/evolution/shell/view_defaults/toolbar_visible", - toolbar_visible, - NULL); - g_free (prop); - } - - g_object_unref (client); -} - -void -e_shell_window_show_settings (EShellWindow *window) -{ - g_return_if_fail (E_IS_SHELL_WINDOW (window)); - - e_shell_show_settings (window->priv->shell, window->priv->current_view ? window->priv->current_view->component_alias : NULL, window); -} - - -E_MAKE_TYPE (e_shell_window, "EShellWindow", EShellWindow, class_init, init, BONOBO_TYPE_WINDOW) diff --git a/shell/e-shell-window.h b/shell/e-shell-window.h deleted file mode 100644 index 01c231c329..0000000000 --- a/shell/e-shell-window.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell-window.h - * - * Copyright (C) 2003 Ettore Perazzoli - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_SHELL_WINDOW_H_ -#define _E_SHELL_WINDOW_H_ - -#include <bonobo/bonobo-window.h> -#include <bonobo/bonobo-ui-component.h> - -#define E_TYPE_SHELL_WINDOW (e_shell_window_get_type ()) -#define E_SHELL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_SHELL_WINDOW, EShellWindow)) -#define E_SHELL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_SHELL_WINDOW, EShellWindowClass)) -#define E_IS_SHELL_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_SHELL_WINDOW)) -#define E_IS_SHELL_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_SHELL_WINDOW)) - - -typedef struct _EShellWindow EShellWindow; -typedef struct _EShellWindowPrivate EShellWindowPrivate; -typedef struct _EShellWindowClass EShellWindowClass; - -struct _EShellWindow { - BonoboWindow parent; - - EShellWindowPrivate *priv; -}; - -struct _EShellWindowClass { - BonoboWindowClass parent_class; - - void (* component_changed) (EShellWindow *window); -}; - - -#include "e-shell.h" - - -GType e_shell_window_get_type (void); - -GtkWidget *e_shell_window_new (EShell *shell, - const char *component_id); - -void e_shell_window_switch_to_component (EShellWindow *shell, - const char *component_id); -const char *e_shell_window_peek_current_component_id (EShellWindow *shell); - -EShell *e_shell_window_peek_shell (EShellWindow *window); -BonoboUIComponent *e_shell_window_peek_bonobo_ui_component (EShellWindow *window); - -void e_shell_window_save_defaults (EShellWindow *window); -void e_shell_window_show_settings (EShellWindow *window); - -#endif /* _E_SHELL_WINDOW_H_ */ diff --git a/shell/e-shell.c b/shell/e-shell.c deleted file mode 100644 index 07c7dd9df5..0000000000 --- a/shell/e-shell.c +++ /dev/null @@ -1,1330 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell.c - * - * Copyright (C) 2000, 2001, 2002, 2003 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <sys/types.h> -#include <dirent.h> - -#include "e-shell.h" - -#include "e-util/e-dialog-utils.h" -#include "e-util/e-bconf-map.h" -#include "e-util/e-fsutils.h" -#include "e-util/e-passwords.h" -#include "widgets/misc/e-error.h" - -#include "e-shell-constants.h" -#include "e-shell-offline-handler.h" -#include "e-shell-settings-dialog.h" -#include "e-shell-startup-wizard.h" - -#include "e-shell-marshal.h" - -#include "evolution-shell-component-utils.h" - -#include "importer/intelligent.h" - -#include <glib.h> - -#include <gtk/gtkmain.h> -#include <gtk/gtksignal.h> -#include <gdk/gdkx.h> - -#include <X11/Xatom.h> - -#include <libgnome/gnome-i18n.h> -#include <libgnome/gnome-util.h> - -/* (For the displayName stuff.) */ -#include <gdk/gdkprivate.h> -#include <X11/Xlib.h> - -#include <bonobo-activation/bonobo-activation.h> -#include <bonobo/bonobo-exception.h> -#include <bonobo/bonobo-moniker-util.h> - -#include <gal/util/e-util.h> - -#include <gconf/gconf-client.h> - -#include <string.h> - -#include "Evolution.h" - - -#define PARENT_TYPE bonobo_object_get_type () -static BonoboObjectClass *parent_class = NULL; - -struct _EShellPrivate { - /* IID for registering the object on OAF. */ - char *iid; - - GList *windows; - - /* EUriSchemaRegistry *uri_schema_registry; FIXME */ - EComponentRegistry *component_registry; - - /* Names for the types of the folders that have maybe crashed. */ - /* FIXME TODO */ - GList *crash_type_names; /* char * */ - - /* Line status. */ - EShellLineStatus line_status; - - /* This object handles going off-line. If the pointer is not NULL, it - means we have a going-off-line process in progress. */ - EShellOfflineHandler *offline_handler; - - /* Settings Dialog */ - GtkWidget *settings_dialog; - - /* If we're quitting and things are still busy, a timeout handler */ - guint quit_timeout; - - /* Whether the shell is succesfully initialized. This is needed during - the start-up sequence, to avoid CORBA calls to do make wrong things - to happen while the shell is initializing. */ - unsigned int is_initialized : 1; - - /* Wether the shell is working in "interactive" mode or not. - (Currently, it's interactive IIF there is at least one active - view.) */ - unsigned int is_interactive : 1; - - /* Whether quit has been requested, and the shell is now waiting for - permissions from all the components to quit. */ - unsigned int preparing_to_quit : 1; -}; - - -/* Signals. */ - -enum { - NO_WINDOWS_LEFT, - LINE_STATUS_CHANGED, - NEW_WINDOW_CREATED, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = { 0 }; - - -/* Utility functions. */ - -static gboolean -get_config_start_offline (void) -{ - GConfClient *client; - gboolean value; - - client = gconf_client_get_default (); - - value = gconf_client_get_bool (client, "/apps/evolution/shell/start_offline", NULL); - - g_object_unref (client); - - return value; -} - - -/* Interactivity handling. */ - -static void -set_interactive (EShell *shell, - gboolean interactive) -{ - GSList *component_list; - GSList *p; - GList *first_element; - int num_windows; - GtkWidget *view; - - g_return_if_fail (E_IS_SHELL (shell)); - - shell->priv->is_interactive = interactive; - - num_windows = g_list_length (shell->priv->windows); - - /* We want to send the "interactive" message only when the first - window is created */ - if (num_windows != 1) - return; - - first_element = g_list_first (shell->priv->windows); - view = GTK_WIDGET (first_element->data); - - component_list = e_component_registry_peek_list (shell->priv->component_registry); - - for (p = component_list; p != NULL; p = p->next) { - EComponentInfo *info = p->data; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - GNOME_Evolution_Component_interactive (info->iface, interactive,GPOINTER_TO_INT (GDK_WINDOW_XWINDOW (view->window)), &ev); - - /* Ignore errors, the components can decide to not implement - this interface. */ - - CORBA_exception_free (&ev); - } -} - - -/* CORBA interface implementation. */ - -static gboolean -raise_exception_if_not_ready (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EShell *shell; - - shell = E_SHELL (bonobo_object_from_servant (servant)); - - if (! shell->priv->is_initialized) { - CORBA_exception_set (ev, CORBA_USER_EXCEPTION, - ex_GNOME_Evolution_Shell_NotReady, NULL); - return TRUE; - } - - return FALSE; -} - -static void -impl_Shell_createNewWindow (PortableServer_Servant servant, - const CORBA_char *component_id, - CORBA_Environment *ev) -{ - BonoboObject *bonobo_object; - EShell *shell; - EShellWindow *shell_window; - - if (raise_exception_if_not_ready (servant, ev)) - return; - - bonobo_object = bonobo_object_from_servant (servant); - shell = E_SHELL (bonobo_object); - - if (component_id[0] == '\0') - component_id = NULL; - - shell_window = e_shell_create_window (shell, component_id, NULL); - if (shell_window == NULL) { - CORBA_exception_set (ev, CORBA_USER_EXCEPTION, - ex_GNOME_Evolution_Shell_ComponentNotFound, NULL); - return; - } -} - -static void -impl_Shell_handleURI (PortableServer_Servant servant, - const CORBA_char *uri, - CORBA_Environment *ev) -{ - EShell *shell = E_SHELL (bonobo_object_from_servant (servant)); - EComponentInfo *component_info; - char *schema, *p; - int show = FALSE; - - schema = g_alloca(strlen(uri)+1); - strcpy(schema, uri); - p = strchr(schema, ':'); - if (p) - *p = 0; - - component_info = e_component_registry_peek_info(shell->priv->component_registry, ECR_FIELD_SCHEMA, schema); - if (component_info == NULL) { - show = TRUE; - component_info = e_component_registry_peek_info(shell->priv->component_registry, ECR_FIELD_ALIAS, schema); - } - - if (component_info == NULL) { - CORBA_exception_set (ev, CORBA_USER_EXCEPTION, ex_GNOME_Evolution_Shell_UnsupportedSchema, NULL); - return; - } - - if (show && shell->priv->windows) - e_shell_window_switch_to_component((EShellWindow *)shell->priv->windows->data, component_info->id); - - GNOME_Evolution_Component_handleURI (component_info->iface, uri, ev); - /* not an error not to implement it */ - if (ev->_id != NULL && strcmp(ev->_id, ex_CORBA_NO_IMPLEMENT) == 0) - memset(ev, 0, sizeof(*ev)); -} - -static void -impl_Shell_setLineStatus (PortableServer_Servant servant, - CORBA_boolean online, - CORBA_Environment *ev) -{ - BonoboObject *bonobo_object; - EShell *shell; - - if (raise_exception_if_not_ready (servant, ev)) - return; - - bonobo_object = bonobo_object_from_servant (servant); - shell = E_SHELL (bonobo_object); - - /* let the password manager know out online status */ - e_passwords_set_online(online); - - if (online) - e_shell_go_online (shell, NULL); - else - e_shell_go_offline (shell, NULL); -} - - -/* EShellWindow handling and bookkeeping. */ - -static int -window_delete_event_cb (GtkWidget *widget, - GdkEventAny *ev, - void *data) -{ - EShell *shell; - - g_assert (E_IS_SHELL_WINDOW (widget)); - shell = E_SHELL (data); - - return ! e_shell_request_close_window (shell, E_SHELL_WINDOW (widget)); -} - -static gboolean -notify_no_windows_left_idle_cb (void *data) -{ - EShell *shell; - - shell = E_SHELL (data); - - set_interactive (shell, FALSE); - - g_signal_emit (shell, signals [NO_WINDOWS_LEFT], 0); - - bonobo_object_unref (BONOBO_OBJECT (shell)); - - return FALSE; -} - -static void -window_weak_notify (void *data, - GObject *where_the_object_was) -{ - EShell *shell; - int num_windows; - - shell = E_SHELL (data); - - num_windows = g_list_length (shell->priv->windows); - - /* If this is our last window, save settings now because in the callback - for no_windows_left shell->priv->windows will be NULL and settings won't - be saved because of that. */ - if (num_windows == 1) - e_shell_save_settings (shell); - - shell->priv->windows = g_list_remove (shell->priv->windows, where_the_object_was); - - if (shell->priv->windows == NULL) { - bonobo_object_ref (BONOBO_OBJECT (shell)); - g_idle_add (notify_no_windows_left_idle_cb, shell); - } -} - -/* GObject methods. */ - -static void -impl_dispose (GObject *object) -{ - EShell *shell; - EShellPrivate *priv; - GList *p; - - shell = E_SHELL (object); - priv = shell->priv; - - priv->is_initialized = FALSE; - -#if 0 /* FIXME */ - if (priv->uri_schema_registry != NULL) { - g_object_unref (priv->uri_schema_registry); - priv->uri_schema_registry = NULL; - } -#endif - - if (priv->component_registry != NULL) { - g_object_unref (priv->component_registry); - priv->component_registry = NULL; - } - - if (priv->offline_handler != NULL) { - g_object_unref (priv->offline_handler); - priv->offline_handler = NULL; - } - - if (priv->quit_timeout) { - g_source_remove(priv->quit_timeout); - priv->quit_timeout = 0; - } - - for (p = priv->windows; p != NULL; p = p->next) { - EShellWindow *window; - - window = E_SHELL_WINDOW (p->data); - - g_signal_handlers_disconnect_by_func (window, G_CALLBACK (window_delete_event_cb), shell); - g_object_weak_unref (G_OBJECT (window), window_weak_notify, shell); - - gtk_object_destroy (GTK_OBJECT (window)); - } - - g_list_free (priv->windows); - priv->windows = NULL; - - /* No unreffing for these as they are aggregate. */ - /* bonobo_object_unref (BONOBO_OBJECT (priv->corba_storage_registry)); */ - - if (priv->settings_dialog != NULL) { - gtk_widget_destroy (priv->settings_dialog); - priv->settings_dialog = NULL; - } - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - EShell *shell; - EShellPrivate *priv; - - shell = E_SHELL (object); - priv = shell->priv; - - if (priv->iid != NULL) - bonobo_activation_active_server_unregister (priv->iid, - bonobo_object_corba_objref (BONOBO_OBJECT (shell))); - - e_free_string_list (priv->crash_type_names); - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -/* Initialization. */ - -static void -e_shell_class_init (EShellClass *klass) -{ - GObjectClass *object_class; - POA_GNOME_Evolution_Shell__epv *epv; - - parent_class = g_type_class_ref(PARENT_TYPE); - - object_class = G_OBJECT_CLASS (klass); - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - - signals[NO_WINDOWS_LEFT] = - g_signal_new ("no_windows_left", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EShellClass, no_windows_left), - NULL, NULL, - e_shell_marshal_NONE__NONE, - G_TYPE_NONE, 0); - - signals[LINE_STATUS_CHANGED] = - g_signal_new ("line_status_changed", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EShellClass, line_status_changed), - NULL, NULL, - e_shell_marshal_NONE__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - signals[NEW_WINDOW_CREATED] = - g_signal_new ("new_window_created", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EShellClass, new_window_created), - NULL, NULL, - e_shell_marshal_NONE__POINTER, - G_TYPE_NONE, 1, - G_TYPE_POINTER); - - epv = & klass->epv; - epv->createNewWindow = impl_Shell_createNewWindow; - epv->handleURI = impl_Shell_handleURI; - epv->setLineStatus = impl_Shell_setLineStatus; -} - -static void -e_shell_init (EShell *shell) -{ - EShellPrivate *priv; - - priv = g_new0 (EShellPrivate, 1); - priv->line_status = E_SHELL_LINE_STATUS_OFFLINE; - priv->component_registry = e_component_registry_new (); - - shell->priv = priv; -} - -static void -detect_version (GConfClient *gconf, int *major, int *minor, int *revision) -{ - char *val, *evolution_dir; - struct stat st; - - evolution_dir = g_build_filename (g_get_home_dir (), "evolution", NULL); - - val = gconf_client_get_string(gconf, "/apps/evolution/version", NULL); - if (val) { - /* Since 1.4.0 We've been keeping the version key in gconf */ - sscanf(val, "%u.%u.%u", major, minor, revision); - g_free(val); - } else if (lstat (evolution_dir, &st) != 0 || !S_ISDIR (st.st_mode)) { - /* If ~/evolution does not exit or is not a directory it must be a new installation */ - *major = 0; - *minor = 0; - *revision = 0; - } else { - xmlDocPtr config_doc = NULL; - xmlNodePtr source; - char *tmp; - - tmp = g_build_filename (evolution_dir, "config.xmldb", NULL); - if (lstat(tmp, &st) == 0 - && S_ISREG(st.st_mode)) - config_doc = xmlParseFile (tmp); - g_free (tmp); - - tmp = NULL; - if (config_doc - && (source = e_bconf_get_path (config_doc, "/Shell")) - && (tmp = e_bconf_get_value (source, "upgrade_from_1_0_to_1_2_performed")) - && tmp[0] == '1' ) { - *major = 1; - *minor = 2; - *revision = 0; - } else { - *major = 1; - *minor = 0; - *revision = 0; - } - if (tmp) - xmlFree(tmp); - if (config_doc) - xmlFreeDoc (config_doc); - } - - g_free (evolution_dir); -} - -/* calls components to perform upgrade */ -static gboolean -attempt_upgrade (EShell *shell, int major, int minor, int revision) -{ - GSList *component_infos, *p; - gboolean success; - int res; - - success = TRUE; - - component_infos = e_component_registry_peek_list (shell->priv->component_registry); - for (p = component_infos; success && p != NULL; p = p->next) { - const EComponentInfo *info = p->data; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - GNOME_Evolution_Component_upgradeFromVersion (info->iface, major, minor, revision, &ev); - - if (BONOBO_EX (&ev)) { - char *exception_text; - CORBA_char *id = CORBA_exception_id(&ev); - - if (strcmp (id, ex_CORBA_NO_IMPLEMENT) == 0) { - /* Ignore components that do not implement this version, it - might just mean that they don't need an upgrade path. */ - } else if (strcmp (id, ex_GNOME_Evolution_Component_UpgradeFailed) == 0) { - GNOME_Evolution_Component_UpgradeFailed *ex = CORBA_exception_value(&ev); - - res = e_error_run(NULL, "shell:upgrade-failed", ex->what, ex->why, NULL); - if (res == GTK_RESPONSE_CANCEL) - success = FALSE; - } else if (strcmp (id, ex_GNOME_Evolution_Component_UnsupportedVersion) == 0) { - /* This is non-fatal */ - /* DO WE CARE??? */ - printf("Upgrade of component failed, unsupported prior version\n"); - } else { - exception_text = bonobo_exception_get_text (&ev); - res = e_error_run(NULL, "shell:upgrade-failed", exception_text, _("Uknown system error."), NULL); - g_free (exception_text); - if (res == GTK_RESPONSE_CANCEL) - success = FALSE; - } - } - CORBA_exception_free (&ev); - } - - return success; -} - -/** - * e_shell_construct: - * @shell: An EShell object to construct - * @iid: OAFIID for registering the shell into the name server - * @startup_line_mode: How to set up the line mode (online or offline) initally. - * - * Construct @shell so that it uses the specified @corba_object. - * - * Return value: The result of the operation. - **/ -EShellConstructResult -e_shell_construct (EShell *shell, - const char *iid, - EShellStartupLineMode startup_line_mode) -{ - EShellPrivate *priv; - CORBA_Object corba_object; - gboolean start_online; - GSList *component; - - g_return_val_if_fail (E_IS_SHELL (shell), E_SHELL_CONSTRUCT_RESULT_INVALIDARG); - g_return_val_if_fail (startup_line_mode == E_SHELL_STARTUP_LINE_MODE_CONFIG - || startup_line_mode == E_SHELL_STARTUP_LINE_MODE_ONLINE - || startup_line_mode == E_SHELL_STARTUP_LINE_MODE_OFFLINE, - E_SHELL_CONSTRUCT_RESULT_INVALIDARG); - - priv = shell->priv; - priv->iid = g_strdup (iid); - - /* Now we can register into OAF. Notice that we shouldn't be - registering into OAF until we are sure we can complete. */ - - /* FIXME: Multi-display stuff. */ - corba_object = bonobo_object_corba_objref (BONOBO_OBJECT (shell)); - if (bonobo_activation_active_server_register (iid, corba_object) != Bonobo_ACTIVATION_REG_SUCCESS) - return E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER; - - while (gtk_events_pending ()) - gtk_main_iteration (); - - /* activate all the components (peek list does this implictly) */ - component = e_component_registry_peek_list (shell->priv->component_registry); - - e_shell_attempt_upgrade(shell); - -#if 0 - if (e_shell_startup_wizard_create () == FALSE) { - bonobo_object_unref (BONOBO_OBJECT (shell)); - exit (0); - } -#endif - - priv->is_initialized = TRUE; - - switch (startup_line_mode) { - case E_SHELL_STARTUP_LINE_MODE_CONFIG: - start_online = ! get_config_start_offline (); - break; - case E_SHELL_STARTUP_LINE_MODE_ONLINE: - start_online = TRUE; - break; - case E_SHELL_STARTUP_LINE_MODE_OFFLINE: - start_online = FALSE; - break; - default: - start_online = FALSE; /* Make compiler happy. */ - g_assert_not_reached (); - } - - e_passwords_set_online(start_online); - - if (start_online) - e_shell_go_online (shell, NULL); - - return E_SHELL_CONSTRUCT_RESULT_OK; -} - -/** - * e_shell_new: - * @start_online: Whether to start in on-line mode or not. - * @construct_result_return: A pointer to an EShellConstructResult variable into - * which the result of the operation will be stored. - * - * Create a new EShell. - * - * Return value: - **/ -EShell * -e_shell_new (EShellStartupLineMode startup_line_mode, - EShellConstructResult *construct_result_return) -{ - EShell *new; - EShellPrivate *priv; - EShellConstructResult construct_result; - - new = g_object_new (e_shell_get_type (), NULL); - - construct_result = e_shell_construct (new, E_SHELL_OAFIID, startup_line_mode); - - if (construct_result != E_SHELL_CONSTRUCT_RESULT_OK) { - *construct_result_return = construct_result; - bonobo_object_unref (BONOBO_OBJECT (new)); - return NULL; - } - - priv = new->priv; - - *construct_result_return = E_SHELL_CONSTRUCT_RESULT_OK; - return new; -} - -static int -remove_dir(const char *root, const char *path) -{ - DIR *dir; - struct dirent *d; - int res = -1; - char *new = NULL; - struct stat st; - - dir = opendir(path); - if (dir == NULL) - return -1; - - while ( (d = readdir(dir)) ) { - if (!strcmp(d->d_name, ".") - || !strcmp(d->d_name, "..")) - continue; - - new = g_build_filename(path, d->d_name, NULL); - if (stat(new, &st) == -1) - goto fail; - - /* make sure we're really removing something from evolution dir */ - g_assert(strlen(path) >= strlen(root) - && strncmp(root, path, strlen(root)) == 0); - - if (S_ISDIR(st.st_mode)) { - if (remove_dir(root, new) == -1) - goto fail; - } else { - if (unlink(new) == -1) - goto fail; - } - g_free(new); - new = NULL; - } - - res = rmdir(path); -fail: - g_free(new); - closedir(dir); - return res; -} - -/** - * e_shell_attempt_upgrade: - * @shell: - * - * Upgrade config and components from the currently installed version. - * - * Return value: %TRUE If it works. If it fails the application will exit. - **/ -gboolean -e_shell_attempt_upgrade (EShell *shell) -{ - GConfClient *gconf_client; - int major = 0, minor = 0, revision = 0; - int lmajor, lminor, lrevision; - int cmajor, cminor, crevision; - char *version_string, *last_version = NULL; - int done_upgrade = FALSE; - char *oldpath; - struct stat st; - - gconf_client = gconf_client_get_default(); - - oldpath = g_build_filename(g_get_home_dir(), "evolution", NULL); - - g_assert(sscanf(BASE_VERSION, "%u.%u", &cmajor, &cminor) == 2); - crevision = atoi(UPGRADE_REVISION); - - detect_version (gconf_client, &major, &minor, &revision); - - if (!(cmajor > major - || (cmajor == major && cminor > minor) - || (cminor == minor && crevision > revision))) - goto check_old; - - /* if upgrading from < 1.5, we need to copy most data from ~/evolution to ~/.evolution */ - if (major == 1 && minor < 5) { - long size, space; - - size = e_fsutils_usage(oldpath); - space = e_fsutils_avail(g_get_home_dir()); - if (size != -1 && space != -1 && space < size) { - char *required = g_strdup_printf(_("%ld KB"), size); - char *have = g_strdup_printf(_("%ld KB"), space); - - e_error_run(NULL, "shell:upgrade-nospace", required, have, NULL); - g_free(required); - g_free(have); - _exit(0); - } - } - - if (!attempt_upgrade (shell, major, minor, revision)) - _exit(0); - - /* mark as upgraded */ - version_string = g_strdup_printf ("%s.%s", BASE_VERSION, UPGRADE_REVISION); - gconf_client_set_string (gconf_client, "/apps/evolution/version", version_string, NULL); - done_upgrade = TRUE; - -check_old: - /* if the last upgraded version was old, check for stuff to remove */ - if (done_upgrade - || (last_version = gconf_client_get_string (gconf_client, "/apps/evolution/last_version", NULL)) == NULL - || sscanf(last_version, "%d.%d.%d", &lmajor, &lminor, &lrevision) != 3) { - lmajor = major; - lminor = minor; - lrevision = revision; - } - g_free(last_version); - - if (lmajor == 1 && lminor < 5 - && stat(oldpath, &st) == 0 - && S_ISDIR(st.st_mode)) { - int res; - - last_version = g_strdup_printf("%u.%u.%u", lmajor, lminor, lrevision); - res = e_error_run(NULL, "shell:upgrade-remove-1-4", last_version, NULL); - g_free(last_version); - - switch (res) { - case GTK_RESPONSE_OK: /* 'delete' */ - if (e_error_run(NULL, "shell:upgrade-remove-1-4-confirm", NULL) == GTK_RESPONSE_OK) - remove_dir(oldpath, oldpath); - else - break; - /* falls through */ - case GTK_RESPONSE_ACCEPT: /* 'keep' */ - lmajor = cmajor; - lminor = cminor; - lrevision = crevision; - break; - default: - /* cancel - noop */ - break; - } - } else { - /* otherwise 'last version' is now the same as current */ - lmajor = cmajor; - lminor = cminor; - lrevision = crevision; - } - - last_version = g_strdup_printf("%u.%u.%u", lmajor, lminor, lrevision); - gconf_client_set_string (gconf_client, "/apps/evolution/last_version", last_version, NULL); - g_free(last_version); - - g_free(oldpath); - g_object_unref (gconf_client); - - return TRUE; -} - -/** - * e_shell_create_window: - * @shell: The shell for which to create a new window. - * @component_id: Id or alias of the component to display in the new window. - * @template_window: Window from which to copy the window settings (can be %NULL). - * - * Create a new window for @uri. - * - * Return value: The new window. - **/ -EShellWindow * -e_shell_create_window (EShell *shell, - const char *component_id, - EShellWindow *template_window) -{ - EShellWindow *window; - EShellPrivate *priv; - - /* FIXME need to actually copy settings from template_window. */ - - g_return_val_if_fail (shell != NULL, NULL); - g_return_val_if_fail (E_IS_SHELL (shell), NULL); - - priv = shell->priv; - - window = E_SHELL_WINDOW (e_shell_window_new (shell, component_id)); - - g_signal_connect (window, "delete_event", G_CALLBACK (window_delete_event_cb), shell); - g_object_weak_ref (G_OBJECT (window), window_weak_notify, shell); - shell->priv->windows = g_list_prepend (shell->priv->windows, window); - - g_signal_emit (shell, signals[NEW_WINDOW_CREATED], 0, window); - - gtk_widget_show (GTK_WIDGET (window)); - - e_error_default_parent((GtkWindow *)window); - - set_interactive (shell, TRUE); - - return window; -} - -gboolean -e_shell_request_close_window (EShell *shell, - EShellWindow *shell_window) -{ - g_return_val_if_fail (E_IS_SHELL (shell), FALSE); - g_return_val_if_fail (E_IS_SHELL_WINDOW (shell_window), FALSE); - - e_shell_save_settings (shell); - - if (g_list_length (shell->priv->windows) != 1) { - /* Not the last window. */ - return TRUE; - } - - return e_shell_quit(shell); -} - -#if 0 /* FIXME */ -/** - * e_shell_peek_uri_schema_registry: - * @shell: An EShell object. - * - * Get the schema registry associated to @shell. - * - * Return value: A pointer to the EUriSchemaRegistry associated to @shell. - **/ -EUriSchemaRegistry * -e_shell_peek_uri_schema_registry (EShell *shell) -{ - g_return_val_if_fail (E_IS_SHELL (shell), NULL); - - return shell->priv->uri_schema_registry; -} -#endif - - -/** - * e_shell_peek_component_registry: - * @shell: - * - * Get the component registry associated to @shell. - * - * Return value: - **/ -EComponentRegistry * -e_shell_peek_component_registry (EShell *shell) -{ - g_return_val_if_fail (E_IS_SHELL (shell), NULL); - - return shell->priv->component_registry; -} - - -/** - * e_shell_save_settings: - * @shell: - * - * Save the settings for this shell. - * - * Return value: %TRUE if it worked, %FALSE otherwise. Even if %FALSE is - * returned, it is possible that at least part of the settings for the windows - * have been saved. - **/ -gboolean -e_shell_save_settings (EShell *shell) -{ - GConfClient *client; - EShellPrivate *priv; - gboolean is_offline; - - priv = shell->priv; - - is_offline = ( e_shell_get_line_status (shell) == E_SHELL_LINE_STATUS_OFFLINE ); - - client = gconf_client_get_default (); - gconf_client_set_bool (client, "/apps/evolution/shell/start_offline", is_offline, NULL); - g_object_unref (client); - - return TRUE; -} - -/** - * e_shell_close_all_windows: - * @shell: - * - * Destroy all the windows in @shell. - **/ -void -e_shell_close_all_windows (EShell *shell) -{ - EShellPrivate *priv; - GList *p, *pnext; - - g_return_if_fail (shell != NULL); - g_return_if_fail (E_IS_SHELL (shell)); - - if (shell->priv->windows) - e_shell_save_settings (shell); - - priv = shell->priv; - for (p = priv->windows; p != NULL; p = pnext) { - pnext = p->next; - - /* Note that this will also remove the window from the list... Hence the - need for the pnext variable. */ - gtk_widget_destroy (GTK_WIDGET (p->data)); - } -} - -/** - * e_shell_get_line_status: - * @shell: A pointer to an EShell object. - * - * Get the line status for @shell. - * - * Return value: The current line status for @shell. - **/ -EShellLineStatus -e_shell_get_line_status (EShell *shell) -{ - g_return_val_if_fail (shell != NULL, E_SHELL_LINE_STATUS_OFFLINE); - g_return_val_if_fail (E_IS_SHELL (shell), E_SHELL_LINE_STATUS_OFFLINE); - - return shell->priv->line_status; -} - - -/* Offline/online handling. */ - -static void -offline_procedure_started_cb (EShellOfflineHandler *offline_handler, - void *data) -{ - EShell *shell; - EShellPrivate *priv; - - shell = E_SHELL (data); - priv = shell->priv; - - priv->line_status = E_SHELL_LINE_STATUS_GOING_OFFLINE; - g_signal_emit (shell, signals[LINE_STATUS_CHANGED], 0, priv->line_status); -} - -static void -offline_procedure_finished_cb (EShellOfflineHandler *offline_handler, - gboolean now_offline, - void *data) -{ - EShell *shell; - EShellPrivate *priv; - - shell = E_SHELL (data); - priv = shell->priv; - - if (now_offline) - priv->line_status = E_SHELL_LINE_STATUS_OFFLINE; - else - priv->line_status = E_SHELL_LINE_STATUS_ONLINE; - e_passwords_set_online (!now_offline); - - g_object_unref (priv->offline_handler); - priv->offline_handler = NULL; - - g_signal_emit (shell, signals[LINE_STATUS_CHANGED], 0, priv->line_status); -} - -/** - * e_shell_go_offline: - * @shell: - * @action_window: - * - * Make the shell go into off-line mode. - **/ -void -e_shell_go_offline (EShell *shell, - EShellWindow *action_window) -{ - EShellPrivate *priv; - - g_return_if_fail (shell != NULL); - g_return_if_fail (E_IS_SHELL (shell)); - g_return_if_fail (action_window != NULL); - g_return_if_fail (action_window == NULL || E_IS_SHELL_WINDOW (action_window)); - - priv = shell->priv; - - if (priv->line_status != E_SHELL_LINE_STATUS_ONLINE) - return; - - priv->offline_handler = e_shell_offline_handler_new (shell); - - g_signal_connect (priv->offline_handler, "offline_procedure_started", - G_CALLBACK (offline_procedure_started_cb), shell); - g_signal_connect (priv->offline_handler, "offline_procedure_finished", - G_CALLBACK (offline_procedure_finished_cb), shell); - - e_shell_offline_handler_put_components_offline (priv->offline_handler, GTK_WINDOW (action_window)); -} - -/** - * e_shell_go_online: - * @shell: - * @action_window: - * - * Make the shell go into on-line mode. - **/ -void -e_shell_go_online (EShell *shell, - EShellWindow *action_window) -{ - EShellPrivate *priv; - GSList *component_infos; - GSList *p; - - g_return_if_fail (shell != NULL); - g_return_if_fail (E_IS_SHELL (shell)); - g_return_if_fail (action_window == NULL || E_IS_SHELL_WINDOW (action_window)); - - priv = shell->priv; - - component_infos = e_component_registry_peek_list (priv->component_registry); - for (p = component_infos; p != NULL; p = p->next) { - EComponentInfo *info = p->data; - CORBA_Environment ev; - GNOME_Evolution_Offline offline_interface; - - CORBA_exception_init (&ev); - - offline_interface = Bonobo_Unknown_queryInterface (info->iface, "IDL:GNOME/Evolution/Offline:1.0", &ev); - if (ev._major != CORBA_NO_EXCEPTION || offline_interface == CORBA_OBJECT_NIL) { - CORBA_exception_free (&ev); - continue; - } - - CORBA_exception_free (&ev); - - GNOME_Evolution_Offline_goOnline (offline_interface, &ev); - if (ev._major != CORBA_NO_EXCEPTION) - g_warning ("Error putting component `%s' online.", info->id); - - CORBA_exception_free (&ev); - } - - priv->line_status = E_SHELL_LINE_STATUS_ONLINE; - e_passwords_set_online (TRUE); - g_signal_emit (shell, signals[LINE_STATUS_CHANGED], 0, priv->line_status); -} - - -void -e_shell_send_receive (EShell *shell) -{ - GSList *component_list; - GSList *p; - - g_return_if_fail (E_IS_SHELL (shell)); - - component_list = e_component_registry_peek_list (shell->priv->component_registry); - - for (p = component_list; p != NULL; p = p->next) { - EComponentInfo *info = p->data; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - GNOME_Evolution_Component_sendAndReceive (info->iface, &ev); - - /* Ignore errors, the components can decide to not implement - this interface. */ - - CORBA_exception_free (&ev); - } -} - - -void -e_shell_show_settings (EShell *shell, - const char *type, - EShellWindow *shell_window) -{ - EShellPrivate *priv; - - g_return_if_fail (shell != NULL); - g_return_if_fail (E_IS_SHELL (shell)); - - priv = shell->priv; - - if (priv->settings_dialog != NULL) { - gdk_window_show (priv->settings_dialog->window); - gtk_widget_grab_focus (priv->settings_dialog); - return; - } - - priv->settings_dialog = e_shell_settings_dialog_new (); - - if (type != NULL) - e_shell_settings_dialog_show_type (E_SHELL_SETTINGS_DIALOG (priv->settings_dialog), type); - - g_object_add_weak_pointer (G_OBJECT (priv->settings_dialog), (void **) & priv->settings_dialog); - - gtk_window_set_transient_for (GTK_WINDOW (priv->settings_dialog), GTK_WINDOW (shell_window)); - gtk_widget_show (priv->settings_dialog); -} - - -const char * -e_shell_construct_result_to_string (EShellConstructResult result) -{ - switch (result) { - case E_SHELL_CONSTRUCT_RESULT_OK: - return _("OK"); - case E_SHELL_CONSTRUCT_RESULT_INVALIDARG: - return _("Invalid arguments"); - case E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER: - return _("Cannot register on OAF"); - case E_SHELL_CONSTRUCT_RESULT_NOCONFIGDB: - return _("Configuration Database not found"); - case E_SHELL_CONSTRUCT_RESULT_GENERICERROR: - return _("Generic error"); - default: - return _("Unknown error"); - } -} - -/* timeout handler, so returns TRUE if we can't quit yet */ -static gboolean -es_run_quit(EShell *shell) -{ - EShellPrivate *priv; - GSList *component_infos; - GSList *sp; - CORBA_boolean done_quit; - - g_return_val_if_fail (E_IS_SHELL (shell), FALSE); - - priv = shell->priv; - priv->preparing_to_quit = TRUE; - - component_infos = e_component_registry_peek_list (priv->component_registry); - done_quit = TRUE; - for (sp = component_infos; sp != NULL; sp = sp->next) { - EComponentInfo *info = sp->data; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - done_quit = GNOME_Evolution_Component_quit(info->iface, &ev); - if (BONOBO_EX (&ev)) { - /* The component might not implement the interface, in which case we assume we can quit. */ - done_quit = TRUE; - } - - CORBA_exception_free (&ev); - - if (!done_quit) - break; - } - - if (done_quit) { - if (priv->quit_timeout) { - g_source_remove(priv->quit_timeout); - priv->quit_timeout = 0; - } - e_shell_close_all_windows(shell); - } else if (priv->quit_timeout == 0) { - priv->quit_timeout = g_timeout_add(500, (GSourceFunc)es_run_quit, shell); - } - - return !done_quit; -} - -gboolean -e_shell_quit(EShell *shell) -{ - EShellPrivate *priv; - GSList *component_infos; - GSList *sp; - CORBA_boolean can_quit; - - g_return_val_if_fail (E_IS_SHELL (shell), FALSE); - - priv = shell->priv; - - if (priv->preparing_to_quit) - return FALSE; - - component_infos = e_component_registry_peek_list (priv->component_registry); - can_quit = TRUE; - for (sp = component_infos; sp != NULL; sp = sp->next) { - EComponentInfo *info = sp->data; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - can_quit = GNOME_Evolution_Component_requestQuit (info->iface, &ev); - if (BONOBO_EX (&ev)) { - /* The component might not implement the interface, in which case we assume we can quit. */ - can_quit = TRUE; - } - - CORBA_exception_free (&ev); - - if (! can_quit) - break; - } - - if (can_quit) { - GList *p = shell->priv->windows; - - for (; p != NULL; p = p->next) { - gtk_widget_set_sensitive (GTK_WIDGET (p->data), FALSE); - if (p == shell->priv->windows) - e_shell_window_save_defaults (p->data); - } - can_quit = !es_run_quit(shell); - } - - return can_quit; -} - -BONOBO_TYPE_FUNC_FULL (EShell, GNOME_Evolution_Shell, PARENT_TYPE, e_shell) diff --git a/shell/e-shell.h b/shell/e-shell.h deleted file mode 100644 index 62b7538089..0000000000 --- a/shell/e-shell.h +++ /dev/null @@ -1,141 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-shell.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifndef _E_SHELL_H_ -#define _E_SHELL_H_ - -#include <bonobo-activation/bonobo-activation.h> -#include <bonobo/bonobo-object.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -typedef struct _EShell EShell; -typedef struct _EShellPrivate EShellPrivate; -typedef struct _EShellClass EShellClass; - -#include "Evolution.h" - -#include "e-component-registry.h" -#include "e-shell-window.h" - - -#define E_TYPE_SHELL (e_shell_get_type ()) -#define E_SHELL(obj) (GTK_CHECK_CAST ((obj), E_TYPE_SHELL, EShell)) -#define E_SHELL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHELL, EShellClass)) -#define E_IS_SHELL(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_SHELL)) -#define E_IS_SHELL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHELL)) - - -enum _EShellLineStatus { - E_SHELL_LINE_STATUS_ONLINE, - E_SHELL_LINE_STATUS_GOING_OFFLINE, - E_SHELL_LINE_STATUS_OFFLINE -}; -typedef enum _EShellLineStatus EShellLineStatus; - -enum _EShellStartupLineMode { - E_SHELL_STARTUP_LINE_MODE_CONFIG, - E_SHELL_STARTUP_LINE_MODE_ONLINE, - E_SHELL_STARTUP_LINE_MODE_OFFLINE -}; -typedef enum _EShellStartupLineMode EShellStartupLineMode; - -struct _EShell { - BonoboObject parent; - - EShellPrivate *priv; -}; - -struct _EShellClass { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_Shell__epv epv; - - void (* no_windows_left) (EShell *shell); - void (* line_status_changed) (EShell *shell, EShellLineStatus status); - void (* new_window_created) (EShell *shell, EShellWindow *window); -}; - - -/* ID for registering the shell in the OAF name service. */ -#define E_SHELL_OAFIID "OAFIID:GNOME_Evolution_Shell:" BASE_VERSION - -enum _EShellConstructResult { - E_SHELL_CONSTRUCT_RESULT_OK, - E_SHELL_CONSTRUCT_RESULT_INVALIDARG, - E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER, - E_SHELL_CONSTRUCT_RESULT_NOCONFIGDB, - E_SHELL_CONSTRUCT_RESULT_GENERICERROR -}; -typedef enum _EShellConstructResult EShellConstructResult; - - -GtkType e_shell_get_type (void); -EShellConstructResult e_shell_construct (EShell *shell, - const char *iid, - EShellStartupLineMode startup_line_mode); -EShell *e_shell_new (EShellStartupLineMode startup_line_mode, - EShellConstructResult *construct_result_return); - -gboolean e_shell_attempt_upgrade (EShell *shell); - -EShellWindow *e_shell_create_window (EShell *shell, - const char *component_id, - EShellWindow *template_window); -gboolean e_shell_request_close_window (EShell *shell, - EShellWindow *window); - - -#if 0 -EUriSchemaRegistry *e_shell_peek_uri_schema_registry (EShell *shell); -#endif - -EComponentRegistry *e_shell_peek_component_registry (EShell *shell); - -gboolean e_shell_save_settings (EShell *shell); -void e_shell_close_all_windows (EShell *shell); - -EShellLineStatus e_shell_get_line_status (EShell *shell); -void e_shell_go_offline (EShell *shell, - EShellWindow *action_window); -void e_shell_go_online (EShell *shell, - EShellWindow *action_window); - -void e_shell_send_receive (EShell *shell); - -void e_shell_show_settings (EShell *shell, - const char *type, - EShellWindow *shell_window); - -gboolean e_shell_quit (EShell *shell); - -const char *e_shell_construct_result_to_string (EShellConstructResult result); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _E_SHELL_H_ */ diff --git a/shell/e-sidebar.c b/shell/e-sidebar.c deleted file mode 100644 index e412736b0a..0000000000 --- a/shell/e-sidebar.c +++ /dev/null @@ -1,535 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-sidebar.c - * - * Copyright (C) 2003 Ettore Perazzoli - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#include <config.h> - -#include "e-sidebar.h" - -#include "e-shell-marshal.h" - -#include <gal/util/e-util.h> - -#include <gtk/gtkhbox.h> -#include <gtk/gtkimage.h> -#include <gtk/gtklabel.h> -#include <gtk/gtktogglebutton.h> - - -#define PARENT_TYPE gtk_container_get_type () -static GtkContainerClass *parent_class = NULL; - - -typedef struct { - GtkWidget *button_widget; - GtkWidget *label; - GtkWidget *icon; - GtkWidget *hbox; - int id; -} Button; - -struct _ESidebarPrivate { - ESidebarMode mode; - - GtkWidget *selection_widget; - GSList *buttons; - - gboolean in_toggle; -}; - - -enum { - BUTTON_SELECTED, - NUM_SIGNALS -}; - -static unsigned int signals[NUM_SIGNALS] = { 0 }; - - -#define H_PADDING 6 -#define V_PADDING 6 - - -/* Utility functions. */ - -static Button * -button_new (GtkWidget *button_widget, GtkWidget *label, GtkWidget *icon, - GtkWidget *hbox, int id) -{ - Button *button = g_new (Button, 1); - - button->button_widget = button_widget; - button->label = label; - button->icon = icon; - button->hbox = hbox; - button->id = id; - - g_object_ref (button_widget); - g_object_ref (label); - g_object_ref (icon); - g_object_ref (hbox); - - return button; -} - -static void -button_free (Button *button) -{ - g_object_unref (button->button_widget); - g_object_unref (button->label); - g_object_unref (button->icon); - g_object_unref (button->hbox); - g_free (button); -} - -static void -update_buttons (ESidebar *sidebar, int new_selected_id) -{ - GSList *p; - - sidebar->priv->in_toggle = TRUE; - - for (p = sidebar->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - if (button->id == new_selected_id) - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->button_widget), TRUE); - else - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->button_widget), FALSE); - } - - sidebar->priv->in_toggle = FALSE; -} - - -/* Callbacks. */ - -static void -button_toggled_callback (GtkToggleButton *toggle_button, - ESidebar *sidebar) -{ - int id = 0; - GSList *p; - - if (sidebar->priv->in_toggle) - return; - - sidebar->priv->in_toggle = TRUE; - - for (p = sidebar->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - if (button->button_widget != GTK_WIDGET (toggle_button)) { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->button_widget), FALSE); - } else { - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->button_widget), TRUE); - id = button->id; - } - } - - sidebar->priv->in_toggle = FALSE; - - g_signal_emit (sidebar, signals[BUTTON_SELECTED], 0, id); -} - - -/* Layout. */ - -static int -layout_buttons (ESidebar *sidebar) -{ - GtkAllocation *allocation = & GTK_WIDGET (sidebar)->allocation; - gboolean icons_only = (sidebar->priv->mode == E_SIDEBAR_MODE_ICON); - int num_btns = g_slist_length (sidebar->priv->buttons), btns_per_row; - GSList **rows, *p; - Button *button; - int row_number; - int max_btn_width = 0, max_btn_height = 0; - int row_last; - int x, y; - int i; - - y = allocation->y + allocation->height - V_PADDING - 1; - - if (num_btns == 0) - return y; - - /* Figure out the max width and height */ - for (p = sidebar->priv->buttons; p != NULL; p = p->next) { - GtkRequisition requisition; - - button = p->data; - gtk_widget_size_request (GTK_WIDGET (button->button_widget), &requisition); - - max_btn_height = MAX (max_btn_height, requisition.height); - max_btn_width = MAX (max_btn_width, requisition.width); - } - - /* Figure out how many rows and columns we'll use. */ - btns_per_row = allocation->width / (max_btn_width + H_PADDING); - if (!icons_only) { - /* If using text buttons, we want to try to have a - * completely filled-in grid, but if we can't, we want - * the odd row to have just a single button. - */ - while (num_btns % btns_per_row > 1) - btns_per_row--; - } - - /* Assign buttons to rows */ - rows = g_new0 (GSList *, num_btns / btns_per_row + 1); - - if (!icons_only && num_btns % btns_per_row != 0) { - button = sidebar->priv->buttons->data; - rows [0] = g_slist_append (rows [0], button->button_widget); - - p = sidebar->priv->buttons->next; - row_number = p ? 1 : 0; - } else { - p = sidebar->priv->buttons; - row_number = 0; - } - - for (; p != NULL; p = p->next) { - button = p->data; - - if (g_slist_length (rows [row_number]) == btns_per_row) - row_number ++; - - rows [row_number] = g_slist_append (rows [row_number], button->button_widget); - } - - row_last = row_number; - - /* Layout the buttons. */ - for (i = row_last; i >= 0; i --) { - int len, extra_width; - - y -= max_btn_height; - x = H_PADDING + allocation->x; - len = g_slist_length (rows[i]); - if (sidebar->priv->mode == E_SIDEBAR_MODE_TEXT) - extra_width = (allocation->width - (len * max_btn_width ) - (len * H_PADDING)) / len; - else - extra_width = 0; - for (p = rows [i]; p != NULL; p = p->next) { - GtkAllocation child_allocation; - - child_allocation.x = x; - child_allocation.y = y; - child_allocation.width = max_btn_width + extra_width; - child_allocation.height = max_btn_height; - - gtk_widget_size_allocate (GTK_WIDGET (p->data), &child_allocation); - - x += child_allocation.width + H_PADDING; - } - - y -= V_PADDING; - } - - for (i = 0; i <= row_last; i ++) - g_slist_free (rows [i]); - g_free (rows); - - return y; -} - -static void -do_layout (ESidebar *sidebar) -{ - GtkAllocation *allocation = & GTK_WIDGET (sidebar)->allocation; - GtkAllocation child_allocation; - int y; - - y = layout_buttons (sidebar); - - /* Place the selection widget. */ - child_allocation.x = allocation->x; - child_allocation.y = allocation->y; - child_allocation.width = allocation->width; - child_allocation.height = y - allocation->y; - - gtk_widget_size_allocate (sidebar->priv->selection_widget, & child_allocation); -} - - -/* GtkContainer methods. */ - -static void -impl_forall (GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - void *callback_data) -{ - ESidebar *sidebar = E_SIDEBAR (container); - GSList *p; - - if (sidebar->priv->selection_widget != NULL) - (* callback) (sidebar->priv->selection_widget, callback_data); - - for (p = sidebar->priv->buttons; p != NULL; p = p->next) { - GtkWidget *widget = ((Button *) p->data)->button_widget; - (* callback) (widget, callback_data); - } -} - -static void -impl_remove (GtkContainer *container, - GtkWidget *widget) -{ - ESidebar *sidebar = E_SIDEBAR (container); - GSList *p; - - if (widget == sidebar->priv->selection_widget) { - e_sidebar_set_selection_widget (sidebar, NULL); - return; - } - - for (p = sidebar->priv->buttons; p != NULL; p = p->next) { - GtkWidget *button_widget = ((Button *) p->data)->button_widget; - - if (button_widget == widget) { - gtk_widget_unparent (button_widget); - sidebar->priv->buttons = g_slist_remove_link (sidebar->priv->buttons, p); - gtk_widget_queue_resize (GTK_WIDGET (sidebar)); - break; - } - } -} - - -/* GtkWidget methods. */ - -static void -impl_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - ESidebar *sidebar = E_SIDEBAR (widget); - GSList *p; - - if (sidebar->priv->selection_widget == NULL) { - requisition->width = 2 * H_PADDING; - requisition->height = 2 * V_PADDING; - } else { - gtk_widget_size_request (sidebar->priv->selection_widget, requisition); - } - - for (p = sidebar->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - GtkRequisition button_requisition; - - gtk_widget_size_request (button->button_widget, &button_requisition); - - requisition->width = MAX (requisition->width, button_requisition.width + 2 * H_PADDING); - requisition->height += button_requisition.height + V_PADDING; - } -} - -static void -impl_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - widget->allocation = *allocation; - - do_layout (E_SIDEBAR (widget)); -} - - -/* GObject methods. */ - -static void -impl_dispose (GObject *object) -{ - ESidebarPrivate *priv = E_SIDEBAR (object)->priv; - - g_slist_foreach (priv->buttons, (GFunc) button_free, NULL); - g_slist_free (priv->buttons); - priv->buttons = NULL; - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - ESidebarPrivate *priv = E_SIDEBAR (object)->priv; - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -/* Initialization. */ - -static void -class_init (ESidebarClass *class) -{ - GtkContainerClass *container_class = GTK_CONTAINER_CLASS (class); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); - GObjectClass *object_class = G_OBJECT_CLASS (class); - - container_class->forall = impl_forall; - container_class->remove = impl_remove; - - widget_class->size_request = impl_size_request; - widget_class->size_allocate = impl_size_allocate; - - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - - parent_class = g_type_class_peek_parent (class); - - - signals[BUTTON_SELECTED] - = g_signal_new ("button_selected", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (ESidebarClass, button_selected), - NULL, NULL, - e_shell_marshal_NONE__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); -} - -static void -init (ESidebar *sidebar) -{ - ESidebarPrivate *priv; - - GTK_WIDGET_SET_FLAGS (sidebar, GTK_NO_WINDOW); - - priv = g_new0 (ESidebarPrivate, 1); - sidebar->priv = priv; - - priv->mode = E_SIDEBAR_MODE_TEXT; -} - - -GtkWidget * -e_sidebar_new (void) -{ - ESidebar *sidebar = g_object_new (e_sidebar_get_type (), NULL); - - return GTK_WIDGET (sidebar); -} - - -void -e_sidebar_set_selection_widget (ESidebar *sidebar, GtkWidget *widget) -{ - if (sidebar->priv->selection_widget != NULL) - gtk_widget_unparent (sidebar->priv->selection_widget); - - sidebar->priv->selection_widget = widget; - - if (widget != NULL) - gtk_widget_set_parent (widget, GTK_WIDGET (sidebar)); - - gtk_widget_queue_resize (GTK_WIDGET (sidebar)); -} - - -void -e_sidebar_add_button (ESidebar *sidebar, - const char *label, - GdkPixbuf *icon, - int id) -{ - GtkWidget *button_widget; - GtkWidget *hbox; - GtkWidget *icon_widget; - GtkWidget *label_widget; - - button_widget = gtk_toggle_button_new (); - g_signal_connect (button_widget, "toggled", G_CALLBACK (button_toggled_callback), sidebar); - - hbox = gtk_hbox_new (FALSE, 3); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 2); - icon_widget = gtk_image_new_from_pixbuf (icon); - label_widget = gtk_label_new (label); - gtk_misc_set_alignment (GTK_MISC (label_widget), 0.0, 0.5); - gtk_box_pack_start (GTK_BOX (hbox), icon_widget, sidebar->priv->mode == E_SIDEBAR_MODE_ICON, TRUE, 0); - gtk_box_pack_start (GTK_BOX (hbox), label_widget, TRUE, TRUE, 0); - gtk_container_add (GTK_CONTAINER (button_widget), hbox); - - sidebar->priv->buttons = g_slist_append (sidebar->priv->buttons, button_new (button_widget, label_widget, icon_widget, hbox, id)); - gtk_widget_set_parent (button_widget, GTK_WIDGET (sidebar)); - - if (sidebar->priv->mode == E_SIDEBAR_MODE_ICON) - gtk_container_remove (GTK_CONTAINER (hbox), label_widget); - - gtk_widget_queue_resize (GTK_WIDGET (sidebar)); -} - - -void -e_sidebar_select_button (ESidebar *sidebar, int id) -{ - update_buttons (sidebar, id); - - g_signal_emit (sidebar, signals[BUTTON_SELECTED], 0, id); -} - -ESidebarMode -e_sidebar_get_mode (ESidebar *sidebar) -{ - return sidebar->priv->mode; -} - -void -e_sidebar_set_mode (ESidebar *sidebar, ESidebarMode mode) -{ - GSList *p; - - if (sidebar->priv->mode == mode) - return; - - for (p = sidebar->priv->buttons; p != NULL; p = p->next) { - Button *button = p->data; - - switch (mode) { - case E_SIDEBAR_MODE_TEXT: - gtk_box_pack_start (GTK_BOX (button->hbox), button->label, TRUE, TRUE, 0); - gtk_container_child_set (GTK_CONTAINER (button->hbox), button->icon, - "expand", FALSE, - NULL); - break; - case E_SIDEBAR_MODE_ICON: - gtk_container_remove (GTK_CONTAINER (button->hbox), button->label); - gtk_container_child_set (GTK_CONTAINER (button->hbox), button->icon, - "expand", TRUE, - NULL); - break; - default: - g_assert_not_reached (); - return; - } - } - - sidebar->priv->mode = mode; - - gtk_widget_queue_resize (GTK_WIDGET (sidebar)); -} - - -E_MAKE_TYPE (e_sidebar, "ESidebar", ESidebar, class_init, init, PARENT_TYPE) diff --git a/shell/e-sidebar.h b/shell/e-sidebar.h deleted file mode 100644 index fc4b782c96..0000000000 --- a/shell/e-sidebar.h +++ /dev/null @@ -1,75 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-sidebar.h - * - * Copyright (C) 2003 Ettore Perazzoli - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_SIDEBAR_H_ -#define _E_SIDEBAR_H_ - -#include <gtk/gtkcontainer.h> - -#define E_TYPE_SIDEBAR (e_sidebar_get_type ()) -#define E_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_SIDEBAR, ESidebar)) -#define E_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_SIDEBAR, ESidebarClass)) -#define E_IS_SIDEBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_SIDEBAR)) -#define E_IS_SIDEBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E_TYPE_SIDEBAR)) - - -typedef struct _ESidebar ESidebar; -typedef struct _ESidebarPrivate ESidebarPrivate; -typedef struct _ESidebarClass ESidebarClass; - -typedef enum { - E_SIDEBAR_MODE_TEXT, - E_SIDEBAR_MODE_ICON -} ESidebarMode; - -struct _ESidebar { - GtkContainer parent; - - ESidebarPrivate *priv; -}; - -struct _ESidebarClass { - GtkContainerClass parent_class; - - void (* button_selected) (ESidebar *sidebar, int id); -}; - - -GType e_sidebar_get_type (void); -GtkWidget *e_sidebar_new (void); - -void e_sidebar_set_selection_widget (ESidebar *sidebar, - GtkWidget *widget); - -void e_sidebar_add_button (ESidebar *sidebar, - const char *label, - GdkPixbuf *icon, - int id); - -void e_sidebar_select_button (ESidebar *sidebar, - int id); - -ESidebarMode e_sidebar_get_mode (ESidebar *sidebar); -void e_sidebar_set_mode (ESidebar *sidebar, ESidebarMode mode); - - -#endif /* _E_SIDEBAR_H_ */ diff --git a/shell/e-user-creatable-items-handler.c b/shell/e-user-creatable-items-handler.c deleted file mode 100644 index e635278c68..0000000000 --- a/shell/e-user-creatable-items-handler.c +++ /dev/null @@ -1,872 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-user-creatable-items-handler.c - * - * Copyright (C) 2001-2004 Novell, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-user-creatable-items-handler.h" -#include <e-util/e-icon-factory.h> -#include "e-shell-utils.h" -#include "Evolution.h" - -#include "e-util/e-corba-utils.h" -#include "widgets/misc/e-combo-button.h" - -#include <gal/util/e-util.h> - -#include <bonobo/bonobo-ui-util.h> -#include <bonobo/bonobo-exception.h> -#include <bonobo/bonobo-control.h> - -#include <libgnome/gnome-i18n.h> - -#include <gtk/gtkaccelgroup.h> -#include <gtk/gtkimage.h> -#include <gtk/gtkimagemenuitem.h> -#include <gtk/gtkmenu.h> -#include <gtk/gtkseparatormenuitem.h> -#include <gtk/gtksignal.h> -#include <gtk/gtktooltips.h> - -#include <stdlib.h> -#include <ctype.h> -#include <string.h> - - -#define PARENT_TYPE G_TYPE_OBJECT -static GObjectClass *parent_class = NULL; - - -struct _Component { - char *id, *alias; - GNOME_Evolution_Component component; - GNOME_Evolution_CreatableItemTypeList *type_list; -}; -typedef struct _Component Component; - -/* Representation of a single menu item. */ -struct _MenuItem { - const char *label; - char shortcut; - char *verb; - char *tooltip; - char *component; - GdkPixbuf *icon; -}; -typedef struct _MenuItem MenuItem; - -struct _EUserCreatableItemsHandlerPrivate { - /* This component's alias */ - char *this_component; - - /* For creating items on the view */ - EUserCreatableItemsHandlerCreate create_local; - void *create_data; - - /* The components that register user creatable items. */ - GSList *components; /* Component */ - - /* The "New ..." menu items. */ - GSList *objects; /* MenuItem */ - GSList *folders; /* MenuItem */ - - /* The default item (the mailer's "message" item). To be used when the - component in the view we are in doesn't provide a default user - creatable type. This pointer always points to one of the menu items - in ->objects. */ - const MenuItem *fallback_menu_item; - const MenuItem *default_menu_item; - - char *menu_xml; - GtkWidget *new_button, *new_menu; - BonoboControl *new_control; - GtkTooltips *tooltips; - GtkAccelGroup *accel_group; -}; - -enum { - PROP_THIS_COMPONENT = 1, - LAST_PROP -}; - - -/* Component struct handling. */ - -static Component * -component_new (const char *id, - const char *component_alias, - GNOME_Evolution_Component component) -{ - CORBA_Environment ev; - Component *new; - - CORBA_exception_init (&ev); - - new = g_new (Component, 1); - new->id = g_strdup (id); - new->alias = g_strdup (component_alias); - - new->type_list = GNOME_Evolution_Component__get_userCreatableItems (component, &ev); - if (BONOBO_EX (&ev)) - new->type_list = NULL; - - new->component = component; - Bonobo_Unknown_ref (new->component, &ev); - - if (ev._major != CORBA_NO_EXCEPTION) - new->type_list = NULL; - - CORBA_exception_free (&ev); - - return new; -} - -static void -component_free (Component *component) -{ - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - Bonobo_Unknown_unref (component->component, &ev); - - g_free (component->id); - g_free (component->alias); - - if (component->type_list != NULL) - CORBA_free (component->type_list); - - CORBA_exception_free (&ev); - - g_free (component); -} - -static const char *component_query = - "repo_ids.has ('IDL:GNOME/Evolution/Component:" BASE_VERSION "')"; - -static void -get_components_from_bonobo (EUserCreatableItemsHandler *handler) -{ - Bonobo_ServerInfoList *info_list; - Bonobo_ActivationProperty *property; - CORBA_Environment ev; - char *iid, *alias; - GNOME_Evolution_Component corba_component; - Component *component; - int i; - - CORBA_exception_init (&ev); - info_list = bonobo_activation_query (component_query, NULL, &ev); - if (BONOBO_EX (&ev)) { - char *ex_text = bonobo_exception_get_text (&ev); - g_warning ("Cannot query for components: %s\n", ex_text); - g_free (ex_text); - CORBA_exception_free (&ev); - return; - } - - for (i = 0; i < info_list->_length; i++) { - iid = info_list->_buffer[i].iid; - corba_component = bonobo_activation_activate_from_id (iid, Bonobo_ACTIVATION_FLAG_EXISTING_ONLY, NULL, &ev); - if (BONOBO_EX (&ev)) { - CORBA_exception_free (&ev); - continue; - } - - property = bonobo_server_info_prop_find (&info_list->_buffer[i], - "evolution:component_alias"); - alias = property ? property->v._u.value_string : "unknown"; - - component = component_new (iid, alias, corba_component); - handler->priv->components = g_slist_prepend (handler->priv->components, component); - } - - CORBA_free (info_list); -} - - -/* Helper functions. */ - -static gboolean -item_is_default (const MenuItem *item, - const char *component) -{ - if (component == NULL) - return FALSE; - - if (strcmp (item->component, component) == 0) - return TRUE; - else - return FALSE; -} - -static char * -create_verb (EUserCreatableItemsHandler *handler, int component_num, const char *comp, const char *type_id) -{ - return g_strdup_printf ("EUserCreatableItemsHandler-%s:%d:%s", comp, component_num, type_id); -} - -/* Setting up menu items for the "File -> New" submenu and the "New" toolbar - button. */ - -static void -ensure_menu_items (EUserCreatableItemsHandler *handler) -{ - EUserCreatableItemsHandlerPrivate *priv; - GSList *objects, *folders; - GSList *p; - int component_num; - const char *default_verb; - - priv = handler->priv; - if (priv->objects != NULL) - return; - - objects = folders = NULL; - component_num = 0; - default_verb = NULL; - for (p = priv->components; p != NULL; p = p->next) { - const Component *component; - int i; - - component = (const Component *) p->data; - if (component->type_list != NULL) { - for (i = 0; i < component->type_list->_length; i ++) { - const GNOME_Evolution_CreatableItemType *corba_item; - MenuItem *item; - - corba_item = (const GNOME_Evolution_CreatableItemType *) component->type_list->_buffer + i; - - item = g_new (MenuItem, 1); - item->label = corba_item->menuDescription; - item->shortcut = corba_item->menuShortcut; - item->verb = create_verb (handler, component_num, component->alias, corba_item->id); - item->tooltip = corba_item->tooltip; - item->component = g_strdup (component->alias); - - if (strcmp (item->component, "mail") == 0 - && strcmp (corba_item->id, "message") == 0) - default_verb = item->verb; - - if (corba_item->iconName == "") { - item->icon = NULL; - } else { - item->icon = e_icon_factory_get_icon (corba_item->iconName, E_ICON_SIZE_MENU); - } - - if (corba_item->type == GNOME_Evolution_CREATABLE_OBJECT) - objects = g_slist_prepend (objects, item); - else - folders = g_slist_prepend (folders, item); - } - } - - component_num ++; - } - - priv->objects = g_slist_reverse (objects); - priv->folders = g_slist_reverse (folders); - - priv->fallback_menu_item = NULL; - if (default_verb != NULL) { - for (p = priv->objects; p != NULL; p = p->next) { - const MenuItem *item; - - item = (const MenuItem *) p->data; - if (strcmp (item->verb, default_verb) == 0) - priv->fallback_menu_item = item; - } - } -} - -static void -free_menu_items (GSList *menu_items) -{ - GSList *p; - - if (menu_items == NULL) - return; - - for (p = menu_items; p != NULL; p = p->next) { - MenuItem *item; - - item = (MenuItem *) p->data; - g_free (item->verb); - - if (item->icon != NULL) - g_object_unref (item->icon); - - g_free (item->component); - g_free (item); - } - - g_slist_free (menu_items); -} - -static const MenuItem * -get_default_action_for_view (EUserCreatableItemsHandler *handler) -{ - EUserCreatableItemsHandlerPrivate *priv; - const GSList *p; - - priv = handler->priv; - - for (p = priv->objects; p != NULL; p = p->next) { - const MenuItem *item; - - item = (const MenuItem *) p->data; - if (item_is_default (item, priv->this_component)) - return item; - } - - return priv->fallback_menu_item; -} - - -/* Verb handling. */ - -static void -execute_verb (EUserCreatableItemsHandler *handler, - const char *verb_name) -{ - EUserCreatableItemsHandlerPrivate *priv; - const Component *component; - int component_number; - const char *p; - const char *id; - GSList *component_list_item; - int i; - - priv = handler->priv; - - p = strchr (verb_name, ':'); - g_assert (p != NULL); - component_number = atoi (p + 1); - - p = strchr (p + 1, ':'); - g_assert (p != NULL); - id = p + 1; - - component_list_item = g_slist_nth (priv->components, component_number); - g_assert (component_list_item != NULL); - - component = (const Component *) component_list_item->data; - - if (component->type_list == NULL) - return; - - /* TODO: why do we actually iterate this? Is it just to check we have it in the menu? The - search isn't used otherwise */ - for (i = 0; i < component->type_list->_length; i ++) { - if (strcmp (component->type_list->_buffer[i].id, id) == 0) { - if (priv->create_local && priv->this_component && strcmp(priv->this_component, component->alias) == 0) { - priv->create_local(handler, id, priv->create_data); - } else { - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - GNOME_Evolution_Component_requestCreateItem (component->component, id, &ev); - - if (ev._major != CORBA_NO_EXCEPTION) - g_warning ("Error in requestCreateItem -- %s", BONOBO_EX_REPOID (&ev)); - - CORBA_exception_free (&ev); - } - return; - } - } -} - -static void -verb_fn (BonoboUIComponent *ui_component, - void *data, - const char *verb_name) -{ - EUserCreatableItemsHandler *handler= - E_USER_CREATABLE_ITEMS_HANDLER (data); - - execute_verb (handler, verb_name); -} - -static void -add_verbs (EUserCreatableItemsHandler *handler, - BonoboUIComponent *ui_component) -{ - EUserCreatableItemsHandlerPrivate *priv; - int component_num; - GSList *p; - - priv = handler->priv; - - component_num = 0; - for (p = priv->components; p != NULL; p = p->next) { - const Component *component; - int i; - - component = (const Component *) p->data; - - if (component->type_list != NULL) { - for (i = 0; i < component->type_list->_length; i ++) { - char *verb_name; - - verb_name = create_verb (handler, - component_num, - component->alias, - component->type_list->_buffer[i].id); - - bonobo_ui_component_add_verb (ui_component, verb_name, verb_fn, handler); - - g_free (verb_name); - } - } - - component_num ++; - } -} - - -/* Generic menu construction code */ - -static int -item_types_sort_func (const void *a, - const void *b) -{ - const MenuItem *item_a; - const MenuItem *item_b; - const char *p1, *p2; - - item_a = (const MenuItem *) a; - item_b = (const MenuItem *) b; - - p1 = item_a->label; - p2 = item_b->label; - - while (*p1 != '\0' && *p2 != '\0') { - if (*p1 == '_') { - p1 ++; - continue; - } - - if (*p2 == '_') { - p2 ++; - continue; - } - - if (toupper ((int) *p1) < toupper ((int) *p2)) - return -1; - else if (toupper ((int) *p1) > toupper ((int) *p2)) - return +1; - - p1 ++, p2 ++; - } - - if (*p1 == '\0') { - if (*p2 == '\0') - return 0; - else - return -1; - } else { - return +1; - } -} - -typedef void (*EUserCreatableItemsHandlerMenuItemFunc) (EUserCreatableItemsHandler *, gpointer, MenuItem *, gboolean); -typedef void (*EUserCreatableItemsHandlerSeparatorFunc) (EUserCreatableItemsHandler *, gpointer, int); - -static void -construct_menu (EUserCreatableItemsHandler *handler, gpointer menu, - EUserCreatableItemsHandlerMenuItemFunc menu_item_func, - EUserCreatableItemsHandlerSeparatorFunc separator_func) -{ - EUserCreatableItemsHandlerPrivate *priv; - MenuItem *item; - GSList *p, *items; - gboolean first = TRUE; - - priv = handler->priv; - - /* First add the current component's creatable objects */ - for (p = priv->objects; p != NULL; p = p->next) { - item = p->data; - if (item_is_default (item, priv->this_component)) { - menu_item_func (handler, menu, item, first); - first = FALSE; - } - } - - /* Then its creatable folders */ - for (p = priv->folders; p != NULL; p = p->next) { - item = p->data; - if (item_is_default (item, priv->this_component)) - menu_item_func (handler, menu, item, FALSE); - } - - /* Then a separator */ - separator_func (handler, menu, 1); - - /* Then the objects from other components. */ - items = NULL; - for (p = priv->objects; p != NULL; p = p->next) { - item = p->data; - if (! item_is_default (item, priv->this_component)) - items = g_slist_prepend (items, item); - } - - items = g_slist_sort (items, item_types_sort_func); - for (p = items; p != NULL; p = p->next) - menu_item_func (handler, menu, p->data, FALSE); - g_slist_free (items); - - /* Another separator */ - separator_func (handler, menu, 2); - - /* And finally the folders from other components */ - items = NULL; - for (p = priv->folders; p != NULL; p = p->next) { - item = p->data; - if (! item_is_default (item, priv->this_component)) - items = g_slist_prepend (items, item); - } - - items = g_slist_sort (items, item_types_sort_func); - for (p = items; p != NULL; p = p->next) - menu_item_func (handler, menu, p->data, FALSE); - g_slist_free (items); -} - -/* The XML description for "File -> New". */ - -static void -xml_menu_item_func (EUserCreatableItemsHandler *handler, gpointer menu, - MenuItem *item, gboolean first) -{ - GString *xml = menu; - char *encoded_label; - char *encoded_tooltip; - - encoded_label = bonobo_ui_util_encode_str (item->label); - g_string_append_printf (xml, "<menuitem name=\"New:%s\" verb=\"%s\" label=\"%s\"", - item->verb, item->verb, encoded_label); - - if (first) - g_string_append_printf (xml, " accel=\"*Control*N\""); - else if (item->shortcut != '\0') - g_string_append_printf (xml, " accel=\"*Control**Shift*%c\"", item->shortcut); - - if (item->icon != NULL) { - char *icon_xml; - - icon_xml = bonobo_ui_util_pixbuf_to_xml (item->icon); - g_string_append_printf (xml, " pixtype=\"pixbuf\" pixname=\"%s\"", icon_xml); - g_free (icon_xml); - } - - encoded_tooltip = bonobo_ui_util_encode_str (item->tooltip); - g_string_append_printf (xml, " tip=\"%s\"", encoded_tooltip); - - g_string_append (xml, "/> "); - - g_free (encoded_label); - g_free (encoded_tooltip); -} - -static void -xml_separator_func (EUserCreatableItemsHandler *handler, gpointer menu, int nth) -{ - GString *xml = menu; - - g_string_append_printf (xml, "<separator f=\"\" name=\"EUserCreatableItemsHandlerSeparator%d\"/>", nth); -} - -static void -create_menu_xml (EUserCreatableItemsHandler *handler) -{ - GString *xml; - - xml = g_string_new ("<placeholder name=\"NewMenu\">"); - construct_menu (handler, xml, xml_menu_item_func, xml_separator_func); - g_string_append (xml, "</placeholder>"); - - handler->priv->menu_xml = xml->str; - g_string_free (xml, FALSE); -} - - -/* The GtkMenu for the toolbar button. */ - -static void -menuitem_activate (GtkMenuItem *item, gpointer data) -{ - EUserCreatableItemsHandler *handler = data; - const char *verb; - - verb = g_object_get_data (G_OBJECT (item), "EUserCreatableItemsHandler:verb"); - execute_verb (handler, verb); -} - -static void -default_activate (EComboButton *combo_button, gpointer data) -{ - EUserCreatableItemsHandler *handler = data; - - execute_verb (handler, handler->priv->default_menu_item->verb); -} - -static void -gtk_menu_item_func (EUserCreatableItemsHandler *handler, gpointer menu, - MenuItem *item, gboolean first) -{ - GtkWidget *menuitem, *icon; - - menuitem = gtk_image_menu_item_new_with_mnemonic (item->label); - - if (item->icon) { - icon = gtk_image_new_from_pixbuf (item->icon); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), - icon); - } - - if (first) { - gtk_widget_add_accelerator (menuitem, "activate", - handler->priv->accel_group, - 'n', GDK_CONTROL_MASK, - GTK_ACCEL_VISIBLE); - } else { - gtk_widget_add_accelerator (menuitem, "activate", - handler->priv->accel_group, - item->shortcut, - GDK_CONTROL_MASK | GDK_SHIFT_MASK, - GTK_ACCEL_VISIBLE); - } - - g_object_set_data (G_OBJECT (menuitem), "EUserCreatableItemsHandler:verb", item->verb); - g_signal_connect (menuitem, "activate", - G_CALLBACK (menuitem_activate), handler); - - gtk_menu_shell_append (menu, menuitem); -} - -static void -gtk_separator_func (EUserCreatableItemsHandler *handler, gpointer menu, int nth) -{ - gtk_menu_shell_append (menu, gtk_separator_menu_item_new ()); -} - -static void -setup_toolbar_button (EUserCreatableItemsHandler *handler) -{ - EUserCreatableItemsHandlerPrivate *priv; - - priv = handler->priv; - - priv->new_button = e_combo_button_new (); - priv->new_menu = gtk_menu_new (); - priv->accel_group = gtk_accel_group_new (); - construct_menu (handler, priv->new_menu, - gtk_menu_item_func, gtk_separator_func); - gtk_widget_show_all (priv->new_menu); - e_combo_button_set_menu (E_COMBO_BUTTON (priv->new_button), - GTK_MENU (priv->new_menu)); - e_combo_button_set_label (E_COMBO_BUTTON (priv->new_button), _("New")); - gtk_widget_show (priv->new_button); - - g_signal_connect (priv->new_button, "activate_default", - G_CALLBACK (default_activate), handler); - - priv->new_control = bonobo_control_new (priv->new_button); - - priv->default_menu_item = get_default_action_for_view (handler); - if (!priv->default_menu_item) { - gtk_widget_set_sensitive (priv->new_button, FALSE); - return; - } - - gtk_widget_set_sensitive (priv->new_button, TRUE); - - e_combo_button_set_icon (E_COMBO_BUTTON (priv->new_button), - priv->default_menu_item->icon); - - priv->tooltips = gtk_tooltips_new (); - gtk_object_ref (GTK_OBJECT (priv->tooltips)); - gtk_object_sink (GTK_OBJECT (priv->tooltips)); - gtk_tooltips_set_tip (priv->tooltips, priv->new_button, - priv->default_menu_item->tooltip, NULL); -} - - -/* GObject methods. */ - -static void -impl_set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) -{ - EUserCreatableItemsHandler *handler = - E_USER_CREATABLE_ITEMS_HANDLER (object); - - switch (prop_id) { - case PROP_THIS_COMPONENT: - handler->priv->this_component = g_value_dup_string (value); - - get_components_from_bonobo (handler); - ensure_menu_items (handler); - break; - default: - break; - } -} - -static void -impl_dispose (GObject *object) -{ - EUserCreatableItemsHandler *handler; - EUserCreatableItemsHandlerPrivate *priv; - GSList *p; - - handler = E_USER_CREATABLE_ITEMS_HANDLER (object); - priv = handler->priv; - - for (p = priv->components; p != NULL; p = p->next) - component_free ((Component *) p->data); - - g_slist_free (priv->components); - priv->components = NULL; - - if (priv->new_control) { - bonobo_object_unref (priv->new_control); - priv->new_control = NULL; - } - - if (priv->tooltips) { - g_object_unref (priv->tooltips); - priv->tooltips = NULL; - } - - if (priv->accel_group) { - g_object_unref (priv->accel_group); - priv->accel_group = NULL; - } - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - EUserCreatableItemsHandler *handler; - EUserCreatableItemsHandlerPrivate *priv; - - handler = E_USER_CREATABLE_ITEMS_HANDLER (object); - priv = handler->priv; - - g_free (priv->this_component); - - free_menu_items (priv->objects); - free_menu_items (priv->folders); - - g_free (priv->menu_xml); - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -static void -class_init (GObjectClass *object_class) -{ - parent_class = g_type_class_ref(PARENT_TYPE); - - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - object_class->set_property = impl_set_property; - - g_object_class_install_property ( - object_class, PROP_THIS_COMPONENT, - g_param_spec_string ("this_component", "Component alias", - "The component_alias of this component", - NULL, - G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); -} - -static void -init (EUserCreatableItemsHandler *handler) -{ - EUserCreatableItemsHandlerPrivate *priv; - - priv = g_new0 (EUserCreatableItemsHandlerPrivate, 1); - - handler->priv = priv; -} - - -EUserCreatableItemsHandler * -e_user_creatable_items_handler_new (const char *component_alias, - EUserCreatableItemsHandlerCreate create_local, void *data) -{ - EUserCreatableItemsHandler *handler; - - handler = g_object_new (e_user_creatable_items_handler_get_type (), - "this_component", component_alias, - NULL); - handler->priv->create_local = create_local; - handler->priv->create_data = data; - - return handler; -} - - -/** - * e_user_creatable_items_handler_activate: - * @handler: the #EUserCreatableItemsHandler - * @ui_component: the #BonoboUIComponent to attach to - * - * Set up the menus and toolbar items for @ui_component. - **/ -void -e_user_creatable_items_handler_activate (EUserCreatableItemsHandler *handler, - BonoboUIComponent *ui_component) -{ - EUserCreatableItemsHandlerPrivate *priv; - - g_return_if_fail (E_IS_USER_CREATABLE_ITEMS_HANDLER (handler)); - g_return_if_fail (BONOBO_IS_UI_COMPONENT (ui_component)); - - priv = handler->priv; - - if (!priv->menu_xml) { - create_menu_xml (handler); - setup_toolbar_button (handler); - add_verbs (handler, ui_component); - } - - bonobo_ui_component_set (ui_component, "/menu/File/New", - priv->menu_xml, NULL); - - bonobo_ui_component_object_set (ui_component, - "/Toolbar/NewComboButton", - BONOBO_OBJREF (priv->new_control), - NULL); -} - -E_MAKE_TYPE (e_user_creatable_items_handler, "EUserCreatableItemsHandler", EUserCreatableItemsHandler, class_init, init, PARENT_TYPE) diff --git a/shell/e-user-creatable-items-handler.h b/shell/e-user-creatable-items-handler.h deleted file mode 100644 index 146672a35c..0000000000 --- a/shell/e-user-creatable-items-handler.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* e-user-creatable-items-handler.h - * - * Copyright (C) 2001-2004 Novell, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli <ettore@ximian.com> - */ - -#ifndef _E_USER_CREATABLE_ITEMS_HANDLER_H_ -#define _E_USER_CREATABLE_ITEMS_HANDLER_H_ - -#include <glib-object.h> -#include <bonobo/bonobo-ui-component.h> -#include <bonobo/bonobo-window.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -#define E_TYPE_USER_CREATABLE_ITEMS_HANDLER (e_user_creatable_items_handler_get_type ()) -#define E_USER_CREATABLE_ITEMS_HANDLER(obj) (GTK_CHECK_CAST ((obj), E_TYPE_USER_CREATABLE_ITEMS_HANDLER, EUserCreatableItemsHandler)) -#define E_USER_CREATABLE_ITEMS_HANDLER_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_USER_CREATABLE_ITEMS_HANDLER, EUserCreatableItemsHandlerClass)) -#define E_IS_USER_CREATABLE_ITEMS_HANDLER(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_USER_CREATABLE_ITEMS_HANDLER)) -#define E_IS_USER_CREATABLE_ITEMS_HANDLER_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_USER_CREATABLE_ITEMS_HANDLER)) - - -typedef struct _EUserCreatableItemsHandler EUserCreatableItemsHandler; -typedef struct _EUserCreatableItemsHandlerPrivate EUserCreatableItemsHandlerPrivate; -typedef struct _EUserCreatableItemsHandlerClass EUserCreatableItemsHandlerClass; - -typedef void (*EUserCreatableItemsHandlerCreate)(EUserCreatableItemsHandler *handler, const char *item_type_name, void *data); - -struct _EUserCreatableItemsHandler { - GObject parent; - - EUserCreatableItemsHandlerPrivate *priv; -}; - -struct _EUserCreatableItemsHandlerClass { - GObjectClass parent_class; -}; - - -GType e_user_creatable_items_handler_get_type (void); -EUserCreatableItemsHandler *e_user_creatable_items_handler_new (const char *component_alias, - EUserCreatableItemsHandlerCreate create_local, void *data); - -void e_user_creatable_items_handler_activate (EUserCreatableItemsHandler *handler, - BonoboUIComponent *ui_component); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _E_USER_CREATABLE_ITEMS_HANDLER_H_ */ diff --git a/shell/evolution-config-control.c b/shell/evolution-config-control.c deleted file mode 100644 index b5224bdc3c..0000000000 --- a/shell/evolution-config-control.c +++ /dev/null @@ -1,179 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-config-control.c - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "evolution-config-control.h" - -#include "e-shell-marshal.h" - -#include <gal/util/e-util.h> - -#include <gtk/gtksignal.h> - -#include <bonobo/bonobo-control.h> -#include <bonobo/bonobo-event-source.h> - - -#define PARENT_TYPE BONOBO_OBJECT_TYPE -static BonoboObjectClass *parent_class = NULL; - -struct _EvolutionConfigControlPrivate { - BonoboControl *control; - BonoboEventSource *event_source; -}; - -/* GObject methods. */ - -static void -impl_dispose (GObject *object) -{ - EvolutionConfigControl *config_control; - EvolutionConfigControlPrivate *priv; - - config_control = EVOLUTION_CONFIG_CONTROL (object); - priv = config_control->priv; - - if (priv->control != NULL) { - bonobo_object_unref (BONOBO_OBJECT (priv->control)); - priv->control = NULL; - } - - if (priv->event_source != NULL) { - bonobo_object_unref (BONOBO_OBJECT (priv->event_source)); - priv->event_source = NULL; - } - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - EvolutionConfigControl *config_control; - EvolutionConfigControlPrivate *priv; - - config_control = EVOLUTION_CONFIG_CONTROL (object); - priv = config_control->priv; - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -/* Evolution::ConfigControl CORBA methods. */ - -static Bonobo_Control -impl__get_control (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EvolutionConfigControl *config_control; - EvolutionConfigControlPrivate *priv; - - config_control = EVOLUTION_CONFIG_CONTROL (bonobo_object_from_servant (servant)); - priv = config_control->priv; - - bonobo_object_ref (BONOBO_OBJECT (priv->control)); - - return CORBA_Object_duplicate (bonobo_object_corba_objref (BONOBO_OBJECT (priv->control)), ev); -} - -static Bonobo_EventSource -impl__get_eventSource (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EvolutionConfigControl *config_control; - EvolutionConfigControlPrivate *priv; - - config_control = EVOLUTION_CONFIG_CONTROL (bonobo_object_from_servant (servant)); - priv = config_control->priv; - - bonobo_object_ref (BONOBO_OBJECT (priv->event_source)); - - return CORBA_Object_duplicate (bonobo_object_corba_objref (BONOBO_OBJECT (priv->event_source)), ev); -} - - -static void -evolution_config_control_class_init (EvolutionConfigControlClass *class) -{ - POA_GNOME_Evolution_ConfigControl__epv *epv; - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (class); - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; - - epv = &class->epv; - epv->_get_control = impl__get_control; - epv->_get_eventSource = impl__get_eventSource; - - parent_class = g_type_class_ref (PARENT_TYPE); -} - -static void -evolution_config_control_init (EvolutionConfigControl *config_control) -{ - EvolutionConfigControlPrivate *priv; - - priv = g_new (EvolutionConfigControlPrivate, 1); - priv->control = NULL; - priv->event_source = bonobo_event_source_new (); - - config_control->priv = priv; -} - - -void -evolution_config_control_construct (EvolutionConfigControl *control, - GtkWidget *widget) -{ - EvolutionConfigControlPrivate *priv; - - g_return_if_fail (EVOLUTION_IS_CONFIG_CONTROL (control)); - g_return_if_fail (GTK_IS_WIDGET (widget)); - - priv = control->priv; - - priv->control = bonobo_control_new (widget); -} - -EvolutionConfigControl * -evolution_config_control_new (GtkWidget *widget) -{ - EvolutionConfigControl *new; - - g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); - - new = g_object_new (evolution_config_control_get_type (), NULL); - evolution_config_control_construct (new, widget); - - return new; -} - -BONOBO_TYPE_FUNC_FULL (EvolutionConfigControl, - GNOME_Evolution_ConfigControl, - PARENT_TYPE, - evolution_config_control) diff --git a/shell/evolution-config-control.h b/shell/evolution-config-control.h deleted file mode 100644 index d5b9d38904..0000000000 --- a/shell/evolution-config-control.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-config-control.h - * - * Copyright (C) 2002 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifndef EVOLUTION_CONFIG_CONTROL_H -#define EVOLUTION_CONFIG_CONTROL_H - -#include "Evolution.h" - -#include <bonobo/bonobo-object.h> -#include <gtk/gtkwidget.h> - -#ifdef cplusplus -extern "C" { -#pragma } -#endif /* cplusplus */ - -#define EVOLUTION_TYPE_CONFIG_CONTROL (evolution_config_control_get_type ()) -#define EVOLUTION_CONFIG_CONTROL(obj) (GTK_CHECK_CAST ((obj), EVOLUTION_TYPE_CONFIG_CONTROL, EvolutionConfigControl)) -#define EVOLUTION_CONFIG_CONTROL_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), EVOLUTION_TYPE_CONFIG_CONTROL, EvolutionConfigControlClass)) -#define EVOLUTION_IS_CONFIG_CONTROL(obj) (GTK_CHECK_TYPE ((obj), EVOLUTION_TYPE_CONFIG_CONTROL)) -#define EVOLUTION_IS_CONFIG_CONTROL_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), EVOLUTION_TYPE_CONFIG_CONTROL)) - -typedef struct _EvolutionConfigControl EvolutionConfigControl; -typedef struct _EvolutionConfigControlPrivate EvolutionConfigControlPrivate; -typedef struct _EvolutionConfigControlClass EvolutionConfigControlClass; - -struct _EvolutionConfigControl { - BonoboObject parent; - - EvolutionConfigControlPrivate *priv; -}; - -struct _EvolutionConfigControlClass { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_ConfigControl__epv epv; -}; - - -GtkType evolution_config_control_get_type (void); -EvolutionConfigControl *evolution_config_control_new (GtkWidget *widget); -void evolution_config_control_construct (EvolutionConfigControl *control, - GtkWidget *widget); - -#endif /* EVOLUTION_CONFIG_CONTROL_H */ diff --git a/shell/evolution-nognome.in b/shell/evolution-nognome.in deleted file mode 100644 index da0e941aab..0000000000 --- a/shell/evolution-nognome.in +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -prefix=@prefix@ -exec_prefix=@exec_prefix@ - -PATH=@prefix@/bin:/usr/gnome/bin:${PATH} -GNOME2_PATH=@prefix@:/usr/gnome -LD_LIBRARY_PATH=@prefix@/lib:/usr/gnome/lib:${LD_LIBRARY_PATH} - -export LD_LIBRARY_PATH GNOME2_PATH PATH - -exec @libexecdir@/evolution-@BASE_VERSION@ "$@" - diff --git a/shell/evolution-shell-component-utils.c b/shell/evolution-shell-component-utils.c deleted file mode 100644 index eceb9e01d9..0000000000 --- a/shell/evolution-shell-component-utils.c +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-shell-component-utils.c - * - * Copyright (C) 2000, 2001 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "evolution-shell-component-utils.h" -#include <e-util/e-icon-factory.h> -#include "e-util/e-dialog-utils.h" - -#include <string.h> -#include <libgnome/gnome-i18n.h> -#include <libgnome/gnome-util.h> -#include <bonobo/bonobo-ui-util.h> -#include <bonobo/bonobo-moniker-util.h> -#include <bonobo/bonobo-exception.h> -#include <bonobo-activation/bonobo-activation.h> - -static void free_pixmaps (void); -static GSList *inited_arrays = NULL; - -void e_pixmaps_update (BonoboUIComponent *uic, EPixmap *pixcache) -{ - static int done_init = 0; - int i; - - if (!done_init) { - g_atexit (free_pixmaps); - done_init = 1; - } - - if (g_slist_find (inited_arrays, pixcache) == NULL) - inited_arrays = g_slist_prepend (inited_arrays, pixcache); - - for (i = 0; pixcache [i].path; i++) { - if (!pixcache [i].pixbuf) { - GdkPixbuf *pixbuf; - - pixbuf = e_icon_factory_get_icon (pixcache [i].name, pixcache [i].size); - pixcache [i].pixbuf = bonobo_ui_util_pixbuf_to_xml (pixbuf); - g_object_unref (pixbuf); - bonobo_ui_component_set_prop (uic, - pixcache [i].path, "pixname", - pixcache [i].pixbuf, NULL); - } else { - bonobo_ui_component_set_prop (uic, pixcache [i].path, - "pixname", - pixcache [i].pixbuf, - NULL); - } - } -} - -static void -free_pixmaps (void) -{ - int i; - GSList *li; - - for (li = inited_arrays; li != NULL; li = li->next) { - EPixmap *pixcache = li->data; - for (i = 0; pixcache [i].path; i++) - g_free (pixcache [i].pixbuf); - } - - g_slist_free (inited_arrays); -} - - -/** - * e_get_activation_failure_msg: - * @ev: An exception returned by an oaf_activate call. - * - * Get a descriptive error message from @ev. - * - * Return value: A newly allocated string with the printable error message. - **/ -char * -e_get_activation_failure_msg (CORBA_Environment *ev) -{ - g_return_val_if_fail (ev != NULL, NULL); - - if (CORBA_exception_id (ev) == NULL) - return NULL; - - if (strcmp (CORBA_exception_id (ev), ex_Bonobo_GeneralError) != 0) { - return bonobo_exception_get_text (ev); - } else { - const Bonobo_GeneralError *oaf_general_error; - - oaf_general_error = CORBA_exception_value (ev); - return g_strdup (oaf_general_error->description); - } -} diff --git a/shell/evolution-shell-component-utils.h b/shell/evolution-shell-component-utils.h deleted file mode 100644 index ac0bac8f7f..0000000000 --- a/shell/evolution-shell-component-utils.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-shell-component-utils.h - * - * Copyright (C) 2000, 2001 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __EVOLUTION_SHELL_COMPONENT_UTILS_H__ -#define __EVOLUTION_SHELL_COMPONENT_UTILS_H__ - -#include <bonobo/bonobo-ui-component.h> -#include <gtk/gtkwindow.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -typedef struct _EPixmap { - const char *path; - const char *name; - gint size; - char *pixbuf; -} EPixmap; - -#define E_PIXMAP(path,name,size) { (path), (name), (size), NULL } -#define E_PIXMAP_END { NULL, NULL, 0, NULL } - -/* Takes an array of pixmaps, terminated by E_PIXMAP_END, and loads into uic */ -void e_pixmaps_update (BonoboUIComponent *uic, EPixmap *pixcache); - -char *e_get_activation_failure_msg (CORBA_Environment *ev); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __EVOLUTION_SHELL_COMPONENT_UTILS_H__ */ diff --git a/shell/evolution-startup-wizard.glade b/shell/evolution-startup-wizard.glade deleted file mode 100644 index 7b5ff163c9..0000000000 --- a/shell/evolution-startup-wizard.glade +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - -<glade-interface> -<requires lib="gnome"/> - -<widget class="GtkWindow" id="startup-wizard"> - <property name="border_width">6</property> - <property name="title" translatable="yes">Evolution Setup Assistant</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - - <child> - <widget class="GnomeDruid" id="startup-druid"> - <property name="border_width">6</property> - <property name="visible">True</property> - <property name="show_help">False</property> - - <child> - <widget class="GnomeDruidPageEdge" id="start-page"> - <property name="visible">True</property> - <property name="position">GNOME_EDGE_START</property> - <property name="title" translatable="yes">Welcome</property> - <property name="text" translatable="yes">Welcome to Evolution. The next few screens will allow -Evolution to connect to your email accounts, and to import -files from other applications. - -Please click the "Forward" button to continue. </property> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageStandard" id="timezone-page"> - <property name="visible">True</property> - <property name="title" translatable="yes">Timezone </property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="druid-vbox6"> - <property name="border_width">16</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageStandard" id="import-page"> - <property name="visible">True</property> - <property name="title" translatable="yes">Importing Files</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="druid-vbox7"> - <property name="border_width">16</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageEdge" id="done-page"> - <property name="visible">True</property> - <property name="position">GNOME_EDGE_FINISH</property> - <property name="title" translatable="yes">Done</property> - <property name="text" translatable="yes">You have successfully entered all of the information -needed to set up Evolution. - -Click the "Apply" button to save your settings. </property> - </widget> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/shell/evolution-test-component.c b/shell/evolution-test-component.c deleted file mode 100644 index 2fd140b032..0000000000 --- a/shell/evolution-test-component.c +++ /dev/null @@ -1,214 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* tasks-component.c - * - * Copyright (C) 2004 Novell, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: JP Rosevear <jpr@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <errno.h> -#include <string.h> -#include <bonobo/bonobo-shlib-factory.h> -#include <bonobo/bonobo-control.h> -#include <bonobo/bonobo-i18n.h> -#include <bonobo/bonobo-exception.h> -#include <gtk/gtklabel.h> -#include "e-task-bar.h" -#include "evolution-test-component.h" - - -#define FACTORY_ID "OAFIID:GNOME_Evolution_Test_Factory:" BASE_VERSION -#define TEST_COMPONENT_ID "OAFIID:GNOME_Evolution_Test_Component:" BASE_VERSION -#define CREATE_TEST_ID "test" - -#define PARENT_TYPE bonobo_object_get_type () - -static BonoboObjectClass *parent_class = NULL; - -struct _EvolutionTestComponentPrivate { - BonoboControl *view_control; - BonoboControl *sidebar_control; - BonoboControl *status_control; -}; - -/* GObject methods */ - -static void -impl_dispose (GObject *object) -{ - EvolutionTestComponentPrivate *priv; - - priv = EVOLUTION_TEST_COMPONENT (object)->priv; - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -impl_finalize (GObject *object) -{ - EvolutionTestComponentPrivate *priv = EVOLUTION_TEST_COMPONENT (object)->priv; - - g_free (priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - -/* Evolution::Component CORBA methods */ - -static CORBA_boolean -impl_upgradeFromVersion (PortableServer_Servant servant, - CORBA_short major, - CORBA_short minor, - CORBA_short revision, - CORBA_Environment *ev) -{ - EvolutionTestComponent *component = EVOLUTION_TEST_COMPONENT (bonobo_object_from_servant (servant)); - EvolutionTestComponentPrivate *priv; - - priv = component->priv; - - g_message ("Upgrading from %d.%d.%d", major, minor, revision); - - return CORBA_TRUE; -} - -static void -impl_createControls (PortableServer_Servant servant, - Bonobo_Control *corba_sidebar_control, - Bonobo_Control *corba_view_control, - Bonobo_Control *corba_statusbar_control, - CORBA_Environment *ev) -{ - EvolutionTestComponent *component = EVOLUTION_TEST_COMPONENT (bonobo_object_from_servant (servant)); - EvolutionTestComponentPrivate *priv; - GtkWidget *label, *bar; - - priv = component->priv; - - /* Sidebar */ - label = gtk_label_new ("Side Bar Control"); - gtk_widget_show (label); - priv->sidebar_control = bonobo_control_new (label); - - /* View */ - label = gtk_label_new ("View Control"); - gtk_widget_show (label); - priv->view_control = bonobo_control_new (label); - - /* Status bar */ - bar = e_task_bar_new (); - gtk_widget_show (bar); - priv->status_control = bonobo_control_new (bar); - - /* Return the controls */ - *corba_sidebar_control = CORBA_Object_duplicate (BONOBO_OBJREF (priv->sidebar_control), ev); - *corba_view_control = CORBA_Object_duplicate (BONOBO_OBJREF (priv->view_control), ev); - *corba_statusbar_control = CORBA_Object_duplicate (BONOBO_OBJREF (priv->status_control), ev); -} - -static GNOME_Evolution_CreatableItemTypeList * -impl__get_userCreatableItems (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - GNOME_Evolution_CreatableItemTypeList *list = GNOME_Evolution_CreatableItemTypeList__alloc (); - - list->_length = 1; - list->_maximum = list->_length; - list->_buffer = GNOME_Evolution_CreatableItemTypeList_allocbuf (list->_length); - - CORBA_sequence_set_release (list, FALSE); - - list->_buffer[0].id = CREATE_TEST_ID; - list->_buffer[0].description = _("New Test"); - list->_buffer[0].menuDescription = _("_Test"); - list->_buffer[0].tooltip = _("Create a new test item"); - list->_buffer[0].menuShortcut = 'i'; - list->_buffer[0].iconName = ""; - - return list; -} - -static void -impl_requestCreateItem (PortableServer_Servant servant, - const CORBA_char *item_type_name, - CORBA_Environment *ev) -{ - EvolutionTestComponent *evolution_test_component = EVOLUTION_TEST_COMPONENT (bonobo_object_from_servant (servant)); - EvolutionTestComponentPrivate *priv; - - priv = evolution_test_component->priv; - - if (strcmp (item_type_name, CREATE_TEST_ID) == 0) { - g_message ("Creating test item"); - } else { - bonobo_exception_set (ev, ex_GNOME_Evolution_Component_UnknownType); - return; - } -} - -/* Initialization */ - -static void -evolution_test_component_class_init (EvolutionTestComponentClass *klass) -{ - POA_GNOME_Evolution_Component__epv *epv = &klass->epv; - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - parent_class = g_type_class_peek_parent (klass); - - epv->upgradeFromVersion = impl_upgradeFromVersion; - epv->createControls = impl_createControls; - epv->_get_userCreatableItems = impl__get_userCreatableItems; - epv->requestCreateItem = impl_requestCreateItem; - - object_class->dispose = impl_dispose; - object_class->finalize = impl_finalize; -} - -static void -evolution_test_component_init (EvolutionTestComponent *component, EvolutionTestComponentClass *klass) -{ - EvolutionTestComponentPrivate *priv; - - priv = g_new0 (EvolutionTestComponentPrivate, 1); - - component->priv = priv; -} - -BONOBO_TYPE_FUNC_FULL (EvolutionTestComponent, GNOME_Evolution_Component, PARENT_TYPE, evolution_test_component) - -static BonoboObject * -factory (BonoboGenericFactory *factory, - const char *component_id, - void *closure) -{ - if (strcmp (component_id, TEST_COMPONENT_ID) == 0) { - BonoboObject *object = BONOBO_OBJECT (g_object_new (EVOLUTION_TEST_TYPE_COMPONENT, NULL)); - bonobo_object_ref (object); - return object; - } - - g_warning (FACTORY_ID ": Don't know what to do with %s", component_id); - - return NULL; -} - -BONOBO_ACTIVATION_SHLIB_FACTORY (FACTORY_ID, "Evolution Calendar component factory", factory, NULL) diff --git a/shell/evolution-test-component.h b/shell/evolution-test-component.h deleted file mode 100644 index c549f64059..0000000000 --- a/shell/evolution-test-component.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-test-component.h - * - * Copyright (C) 2004 Novell, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: JP Rosevear <jpr@ximian.com> - */ - -#ifndef _EVOLUTION_TEST_COMPONENT_H_ -#define _EVOLUTION_TEST_COMPONENT_H_ - -#include <bonobo/bonobo-object.h> -#include "Evolution.h" - - -#define EVOLUTION_TEST_TYPE_COMPONENT (evolution_test_component_get_type ()) -#define EVOLUTION_TEST_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVOLUTION_TEST_TYPE_COMPONENT, EvolutionTestComponent)) -#define EVOLUTION_TEST_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVOLUTION_TEST_TYPE_COMPONENT, EvolutionTestComponentClass)) -#define EVOLUTION_TEST_IS_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVOLUTION_TEST_TYPE_COMPONENT)) -#define EVOLUTION_TEST_IS_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EVOLUTION_TEST_TYPE_COMPONENT)) - - -typedef struct _EvolutionTestComponent EvolutionTestComponent; -typedef struct _EvolutionTestComponentPrivate EvolutionTestComponentPrivate; -typedef struct _EvolutionTestComponentClass EvolutionTestComponentClass; - -struct _EvolutionTestComponent { - BonoboObject parent; - - EvolutionTestComponentPrivate *priv; -}; - -struct _EvolutionTestComponentClass { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_Component__epv epv; -}; - - -GType evolution_test_component_get_type (void); - -#endif /* _EVOLUTION_TEST_COMPONENT_H_ */ diff --git a/shell/evolution-wizard.c b/shell/evolution-wizard.c deleted file mode 100644 index 83b3a57778..0000000000 --- a/shell/evolution-wizard.c +++ /dev/null @@ -1,409 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* - * evolution-wizard.c - * - * Copyright (C) 2000-2003 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <stdio.h> -#include <gtk/gtksignal.h> -#include <gtk/gtkmarshal.h> -#include <gtk/gtktypeutils.h> -#include <bonobo/bonobo-exception.h> -#include <bonobo/bonobo-main.h> -#include <bonobo/bonobo-event-source.h> - -#include "evolution-wizard.h" -#include "Evolution.h" - -#include "e-shell-marshal.h" -#include "e-shell-corba-icon-utils.h" - -struct _EvolutionWizardPrivate { - BonoboEventSource *event_source; - - GPtrArray *pages; -}; - -typedef struct { - char *title; - GdkPixbuf *icon; - BonoboControl *control; -} EvolutionWizardPage; - -enum { - NEXT, - PREPARE, - BACK, - FINISH, - CANCEL, - HELP, - LAST_SIGNAL -}; - -#define PARENT_TYPE BONOBO_OBJECT_TYPE - -static GtkObjectClass *parent_class; -static guint32 signals[LAST_SIGNAL] = { 0 }; - -static GNOME_Evolution_Wizard_PageList * -impl_GNOME_Evolution_Wizard__get_pages (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - BonoboObject *bonobo_object; - EvolutionWizard *wizard; - EvolutionWizardPage *page; - GNOME_Evolution_Wizard_PageList *pages; - int i; - - bonobo_object = bonobo_object_from_servant (servant); - wizard = EVOLUTION_WIZARD (bonobo_object); - - pages = GNOME_Evolution_Wizard_PageList__alloc (); - pages->_maximum = pages->_length = wizard->priv->pages->len; - pages->_buffer = GNOME_Evolution_Wizard_PageList_allocbuf (pages->_maximum); - for (i = 0; i < wizard->priv->pages->len; i++) { - page = wizard->priv->pages->pdata[i]; - - pages->_buffer[i].title = CORBA_string_dup (page->title); - e_store_corba_icon_from_pixbuf (page->icon, &pages->_buffer[i].icon); - pages->_buffer[i].control = BONOBO_OBJREF (page->control); - } - - return pages; -} - -static void -impl_GNOME_Evolution_Wizard_notifyAction (PortableServer_Servant servant, - CORBA_long pagenumber, - GNOME_Evolution_Wizard_Action action, - CORBA_Environment *ev) -{ - BonoboObject *bonobo_object; - EvolutionWizard *wizard; - EvolutionWizardPrivate *priv; - - bonobo_object = bonobo_object_from_servant (servant); - wizard = EVOLUTION_WIZARD (bonobo_object); - priv = wizard->priv; - - if (pagenumber < 0 - || pagenumber > priv->pages->len - || (action != GNOME_Evolution_Wizard_BACK && pagenumber == priv->pages->len)) { - CORBA_exception_set (ev, CORBA_USER_EXCEPTION, - ex_GNOME_Evolution_Wizard_NoPage, NULL); - return; - } - - switch (action) { - case GNOME_Evolution_Wizard_NEXT: - g_signal_emit (bonobo_object, signals[NEXT], 0, pagenumber); - break; - - case GNOME_Evolution_Wizard_PREPARE: - g_signal_emit (bonobo_object, signals[PREPARE], 0, pagenumber); - break; - - case GNOME_Evolution_Wizard_BACK: - g_signal_emit (bonobo_object, signals[BACK], 0, pagenumber); - break; - - case GNOME_Evolution_Wizard_FINISH: - g_signal_emit (bonobo_object, signals[FINISH], 0); - break; - - case GNOME_Evolution_Wizard_CANCEL: - g_signal_emit (bonobo_object, signals[CANCEL], 0); - break; - - case GNOME_Evolution_Wizard_HELP: - g_signal_emit (bonobo_object, signals[HELP], 0, pagenumber); - break; - - default: - break; - } -} - - - -static void -free_page (EvolutionWizardPage *page) -{ - g_free (page->title); - g_object_unref (page->icon); - bonobo_object_unref (page->control); - - g_free (page); -} - -static void -dispose (GObject *object) -{ - EvolutionWizard *wizard = EVOLUTION_WIZARD (object); - int i; - - if (wizard->priv->event_source) { - bonobo_object_unref (wizard->priv->event_source); - wizard->priv->event_source = NULL; - } - - if (wizard->priv->pages) { - for (i = 0; i < wizard->priv->pages->len; i++) - free_page (wizard->priv->pages->pdata[i]); - g_ptr_array_free (wizard->priv->pages, TRUE); - wizard->priv->pages = NULL; - } - - (* G_OBJECT_CLASS (parent_class)->dispose) (object); -} - -static void -finalize (GObject *object) -{ - EvolutionWizard *wizard = EVOLUTION_WIZARD (object); - - g_free (wizard->priv); - - (* G_OBJECT_CLASS (parent_class)->finalize) (object); -} - - -static void -evolution_wizard_class_init (EvolutionWizardClass *klass) -{ - GObjectClass *object_class; - POA_GNOME_Evolution_Wizard__epv *epv = &klass->epv; - - object_class = G_OBJECT_CLASS (klass); - object_class->dispose = dispose; - object_class->finalize = finalize; - - signals[NEXT] - = g_signal_new ("next", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EvolutionWizardClass, next), - NULL, NULL, - e_shell_marshal_NONE__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - signals[PREPARE] - = g_signal_new ("prepare", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EvolutionWizardClass, prepare), - NULL, NULL, - e_shell_marshal_NONE__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - signals[BACK] - = g_signal_new ("back", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EvolutionWizardClass, back), - NULL, NULL, - e_shell_marshal_NONE__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - signals[FINISH] - = g_signal_new ("finish", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EvolutionWizardClass, finish), - NULL, NULL, - e_shell_marshal_NONE__NONE, - G_TYPE_NONE, 0); - signals[CANCEL] - = g_signal_new ("cancel", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EvolutionWizardClass, cancel), - NULL, NULL, - e_shell_marshal_NONE__NONE, - G_TYPE_NONE, 0); - signals[HELP] - = g_signal_new ("help", - G_OBJECT_CLASS_TYPE (object_class), - G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (EvolutionWizardClass, help), - NULL, NULL, - e_shell_marshal_NONE__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - parent_class = g_type_class_ref(PARENT_TYPE); - - epv->_get_pages = impl_GNOME_Evolution_Wizard__get_pages; - epv->notifyAction = impl_GNOME_Evolution_Wizard_notifyAction; -} - -static void -evolution_wizard_init (EvolutionWizard *wizard) -{ - wizard->priv = g_new0 (EvolutionWizardPrivate, 1); - - wizard->priv->event_source = bonobo_event_source_new (); - bonobo_object_add_interface (BONOBO_OBJECT (wizard), - BONOBO_OBJECT (wizard->priv->event_source)); - - wizard->priv->pages = g_ptr_array_new (); -} - -BONOBO_TYPE_FUNC_FULL (EvolutionWizard, GNOME_Evolution_Wizard, - PARENT_TYPE, evolution_wizard); - -EvolutionWizard * -evolution_wizard_new (void) -{ - return g_object_new (EVOLUTION_TYPE_WIZARD, NULL); -} - -void -evolution_wizard_add_page (EvolutionWizard *wizard, - const char *title, - GdkPixbuf *icon, - GtkWidget *page) -{ - EvolutionWizardPage *new; - - new = g_new (EvolutionWizardPage, 1); - new->title = g_strdup (title); - new->icon = icon; - g_object_ref (icon); - new->control = bonobo_control_new (page); - - g_ptr_array_add (wizard->priv->pages, new); -} - - -void -evolution_wizard_set_buttons_sensitive (EvolutionWizard *wizard, - gboolean back_sensitive, - gboolean next_sensitive, - gboolean cancel_sensitive, - CORBA_Environment *opt_ev) -{ - EvolutionWizardPrivate *priv; - CORBA_Environment ev; - CORBA_any any; - CORBA_short s; - - g_return_if_fail (EVOLUTION_IS_WIZARD (wizard)); - - priv = wizard->priv; - - if (opt_ev == NULL) { - CORBA_exception_init (&ev); - } else { - ev = *opt_ev; - } - - s = back_sensitive << 2 | next_sensitive << 1 | cancel_sensitive; - any._type = (CORBA_TypeCode) TC_CORBA_short; - any._value = &s; - - bonobo_event_source_notify_listeners (priv->event_source, - EVOLUTION_WIZARD_SET_BUTTONS_SENSITIVE, - &any, &ev); - if (opt_ev == NULL && BONOBO_EX (&ev)) { - g_warning ("ERROR(evolution_wizard_set_buttons_sensitive): %s", CORBA_exception_id (&ev)); - } - - if (opt_ev == NULL) { - CORBA_exception_free (&ev); - } -} - -void -evolution_wizard_set_show_finish (EvolutionWizard *wizard, - gboolean show_finish, - CORBA_Environment *opt_ev) -{ - EvolutionWizardPrivate *priv; - CORBA_Environment ev; - CORBA_any any; - CORBA_boolean b; - - g_return_if_fail (EVOLUTION_IS_WIZARD (wizard)); - - priv = wizard->priv; - if (opt_ev == NULL) { - CORBA_exception_init (&ev); - } else { - ev = *opt_ev; - } - - b = show_finish; - any._type = (CORBA_TypeCode) TC_CORBA_boolean; - any._value = &b; - - bonobo_event_source_notify_listeners (priv->event_source, - EVOLUTION_WIZARD_SET_SHOW_FINISH, - &any, &ev); - if (opt_ev == NULL && BONOBO_EX (&ev)) { - g_warning ("ERROR(evolution_wizard_set_show_finish): %s", CORBA_exception_id (&ev)); - } - - if (opt_ev == NULL) { - CORBA_exception_free (&ev); - } -} - -void -evolution_wizard_set_page (EvolutionWizard *wizard, - int page_number, - CORBA_Environment *opt_ev) -{ - EvolutionWizardPrivate *priv; - CORBA_Environment ev; - CORBA_any any; - CORBA_short s; - - g_return_if_fail (EVOLUTION_IS_WIZARD (wizard)); - - priv = wizard->priv; - - g_return_if_fail (page_number >= 0 && page_number < priv->pages->len); - - if (opt_ev == NULL) { - CORBA_exception_init (&ev); - } else { - ev = *opt_ev; - } - - s = page_number; - any._type = (CORBA_TypeCode) TC_CORBA_short; - any._value = &s; - - bonobo_event_source_notify_listeners (priv->event_source, - EVOLUTION_WIZARD_SET_PAGE, - &any, &ev); - - if (opt_ev == NULL && BONOBO_EX (&ev)) { - g_warning ("ERROR(evolution_wizard_set_page): %s", CORBA_exception_id (&ev)); - } - - if (opt_ev == NULL) { - CORBA_exception_free (&ev); - } -} - diff --git a/shell/evolution-wizard.h b/shell/evolution-wizard.h deleted file mode 100644 index 46e4f0819a..0000000000 --- a/shell/evolution-wizard.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* - * evolution-wizard.h - * - * Copyright (C) 2000-2003 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __EVOLUTION_WIZARD_H__ -#define __EVOLUTION_WIZARD_H__ - -#include <bonobo/bonobo-object.h> -#include <bonobo/bonobo-control.h> - -#include "Evolution.h" - -typedef struct _EvolutionWizard EvolutionWizard; -typedef struct _EvolutionWizardPrivate EvolutionWizardPrivate; - -#define EVOLUTION_WIZARD_SET_PAGE "GNOME::Evolution::Wizard_setPage" -#define EVOLUTION_WIZARD_SET_SHOW_FINISH "GNOME::Evolution::Wizard_setShowFinish" -#define EVOLUTION_WIZARD_SET_BUTTONS_SENSITIVE "GNOME::Evolution::Wizard_setButtonsSensitive" - -#define EVOLUTION_TYPE_WIZARD (evolution_wizard_get_type ()) -#define EVOLUTION_WIZARD(o) (GTK_CHECK_CAST ((o), EVOLUTION_TYPE_WIZARD, EvolutionWizard)) -#define EVOLUTION_WIZARD_CLASS(k) (GTK_CHECK_CLASS_CAST((k), EVOLUTION_TYPE_WIZARD, EvolutionWizardClass)) -#define EVOLUTION_IS_WIZARD(o) (GTK_CHECK_TYPE ((o), EVOLUTION_TYPE_WIZARD)) -#define EVOLUTION_IS_WIZARD_CLASS(k) (GTK_CHECK_CLASS_TYPE ((k), EVOLUTION_TYPE_WIZARD)) - -struct _EvolutionWizard { - BonoboObject object; - - EvolutionWizardPrivate *priv; -}; - -typedef struct { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_Wizard__epv epv; - - void (* next) (EvolutionWizard *wizard, int page_number); - void (* prepare) (EvolutionWizard *wizard, int page_number); - void (* back) (EvolutionWizard *wizard, int page_number); - void (* finish) (EvolutionWizard *wizard); - void (* cancel) (EvolutionWizard *wizard); - void (* help) (EvolutionWizard *wizard, int page_number); -} EvolutionWizardClass; - -GtkType evolution_wizard_get_type (void); - -EvolutionWizard *evolution_wizard_new (void); - -void evolution_wizard_add_page (EvolutionWizard *wizard, - const char *title, - GdkPixbuf *icon, - GtkWidget *page); - -void evolution_wizard_set_buttons_sensitive (EvolutionWizard *wizard, - gboolean back_sensitive, - gboolean next_sensitive, - gboolean cancel_sensitive, - CORBA_Environment *opt_ev); -void evolution_wizard_set_show_finish (EvolutionWizard *wizard, - gboolean show_finish, - CORBA_Environment *opt_ev); -void evolution_wizard_set_page (EvolutionWizard *wizard, - int page_number, - CORBA_Environment *opt_ev); - -#endif /* __EVOLUTION_WIZARD_H__ */ diff --git a/shell/importer/.cvsignore b/shell/importer/.cvsignore deleted file mode 100644 index a1e30a4161..0000000000 --- a/shell/importer/.cvsignore +++ /dev/null @@ -1,10 +0,0 @@ -.deps -.libs -Makefile.in -Makefile -GNOME_Evolution_Importer-stubs.c -GNOME_Evolution_Importer-skels.c -GNOME_Evolution_Importer-common.c -GNOME_Evolution_Importer.h -*.lo -*.la diff --git a/shell/importer/GNOME_Evolution_Importer.idl b/shell/importer/GNOME_Evolution_Importer.idl deleted file mode 100644 index e33ca150ae..0000000000 --- a/shell/importer/GNOME_Evolution_Importer.idl +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * Interfaces for the importer framework. - * - * Authors: - * Iain Holmes <iain@ximian.com> - * - * Copyright (C) 2000 Ximian, Inc. - */ - -#include <Bonobo.idl> - -module GNOME { -module Evolution { - interface ImporterListener : Bonobo::Unknown { - enum ImporterResult { - OK, - UNSUPPORTED_OPERATION, - NOT_READY, - BUSY, - UNKNOWN_DATA, - BAD_DATA, - BAD_FILE - }; - - /** - * notifyResult: - * @result: The result of the import. - * @more_items: Are there any more items to be processed? - * - * Notifies the listener of the result and whether there are - * any more items to be imported. - */ - oneway void notifyResult (in ImporterResult result, - in boolean more_items); - }; - - interface Importer : Bonobo::Unknown { - - /** - * processItem: - * @listener: The ImporterListener that will be notified of the - * progress. - * - * Processes the next item. - * - */ - oneway void processItem (in ImporterListener listener); - - /** - * getError: - * - * Retrieve a detailed explaination of the error. - * - * Returns: A string. - */ - string getError (); - - void createControl (out Bonobo::Control control); - - /** - * supportFormat: - * @filename: The filename of the file. - * - * Checks if the importer created by this factory can - * import the file specified. - * - * Returns: A boolean, TRUE if it can import the file, - * FALSE otherwise. - */ - boolean supportFormat (in string filename); - - /** - * loadFile: - * @filename: The filename of the file. - * @folderpath: The full pathname to the folder. - * @foldertpe: The type of the folder to import to. - * - * Loads the file and prepares an Importer object that can - * process files of this type. - * - * Returns: An Importer object. - */ - boolean loadFile (in string filename); - }; - - interface IntelligentImporter : Bonobo::Unknown { - - readonly attribute string importername; - readonly attribute string message; - - boolean canImport (); - - void importData (); - }; -}; -}; diff --git a/shell/importer/Makefile.am b/shell/importer/Makefile.am deleted file mode 100644 index 094df408d1..0000000000 --- a/shell/importer/Makefile.am +++ /dev/null @@ -1,66 +0,0 @@ -INCLUDES = \ - -I$(top_srcdir) \ - -I$(top_srcdir)/shell \ - -I$(top_builddir)/shell \ - -DG_LOG_DOMAIN=\"Evolution-Importer\" \ - -DEVOLUTION_GLADEDIR="\"$(gladedir)\"" \ - $(SHELL_CFLAGS) - -privlib_LTLIBRARIES = libevolution-importer.la - - -# IDL stuff - -IDLS = GNOME_Evolution_Importer.idl - -IDL_GENERATED_H = \ - GNOME_Evolution_Importer.h - -IDL_GENERATED_C = \ - GNOME_Evolution_Importer-common.c \ - GNOME_Evolution_Importer-skels.c \ - GNOME_Evolution_Importer-stubs.c - -IDL_GENERATED = $(IDL_GENERATED_H) $(IDL_GENERATED_C) - -$(IDL_GENERATED_H): $(IDLS) - $(ORBIT_IDL) -I $(srcdir) $(IDL_INCLUDES) $(srcdir)/GNOME_Evolution_Importer.idl - -$(IDL_GENERATED_C): $(IDL_GENERATED_H) - -idl_DATA = $(IDLS) - - -# Component - -libevolution_importerincludedir = $(privincludedir)/importer -libevolution_importer_la_SOURCES = \ - $(IDL_GENERATED) \ - evolution-intelligent-importer.c \ - evolution-importer-client.c \ - evolution-importer-listener.c \ - evolution-importer.c \ - intelligent.c \ - intelligent.h - -libevolution_importerinclude_HEADERS = \ - GNOME_Evolution_Importer.h \ - evolution-intelligent-importer.h \ - evolution-importer-client.h \ - evolution-importer-listener.h \ - evolution-importer.h - -libevolution_importer_la_LIBADD = \ - $(top_builddir)/e-util/libeutil.la \ - $(SHELL_LIBS) - -glade_DATA = import.glade - -EXTRA_DIST = $(glade_DATA) $(IDLS) - -BUILT_SOURCES= $(IDL_GENERATED) -CLEANFILES = $(BUILT_SOURCES) - -dist-hook: - cd $(distdir); rm -f $(BUILT_SOURCES) - diff --git a/shell/importer/evolution-importer-client.c b/shell/importer/evolution-importer-client.c deleted file mode 100644 index 78a3e551f8..0000000000 --- a/shell/importer/evolution-importer-client.c +++ /dev/null @@ -1,272 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-importer-client.c - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - * Based on evolution-shell-component-client.c by Ettore Perazzoli - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "evolution-importer-client.h" - -#include <glib.h> -#include <bonobo/bonobo-object.h> -#include <bonobo/bonobo-main.h> -#include <bonobo/bonobo-widget.h> -#include <bonobo/bonobo-exception.h> -#include <gal/util/e-util.h> - -#include "GNOME_Evolution_Importer.h" - -#define PARENT_TYPE G_TYPE_OBJECT -static GObjectClass *parent_class = NULL; - - -static void -finalise (GObject *object) -{ - /* FIXME: should this unref the client->objref?? */ - - parent_class->finalize(object); -} - -static void -class_init (EvolutionImporterClientClass *klass) -{ - GObjectClass *object_class; - - object_class = G_OBJECT_CLASS (klass); - parent_class = g_type_class_ref(PARENT_TYPE); - - object_class->finalize = finalise; -} - -static void -init (EvolutionImporterClient *client) -{ -} - -/** - * evolution_importer_client_new: - * @objref: The CORBA_Object to make a client for. - * - * Makes a client for @objref. @objref should be an Evolution_Importer. - * - * Returns: A newly created EvolutionImporterClient. - */ -EvolutionImporterClient * -evolution_importer_client_new (const CORBA_Object objref) -{ - EvolutionImporterClient *client; - - g_return_val_if_fail (objref != CORBA_OBJECT_NIL, NULL); - - client = g_object_new (evolution_importer_client_get_type (), NULL); - client->objref = objref; - - return client; -} - -/** - * evolution_importer_client_new_from_id: - * @id: The oafiid of the component to make a client for. - * - * Makes a client for the object returned by activating @id. - * - * Returns: A newly created EvolutionImporterClient. - */ -EvolutionImporterClient * -evolution_importer_client_new_from_id (const char *id) -{ - CORBA_Environment ev; - CORBA_Object objref; - - g_return_val_if_fail (id != NULL, NULL); - - CORBA_exception_init (&ev); - objref = bonobo_activation_activate_from_id ((char *) id, 0, NULL, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - CORBA_exception_free (&ev); - g_warning ("Could not start %s.", id); - return NULL; - } - - CORBA_exception_free (&ev); - if (objref == CORBA_OBJECT_NIL) { - g_warning ("Could not activate component %s", id); - return NULL; - } - - return evolution_importer_client_new (objref); -} - -/* API */ -GtkWidget * -evolution_importer_client_create_control (EvolutionImporterClient *client) -{ - GNOME_Evolution_Importer corba_importer; - GtkWidget *widget = NULL; - Bonobo_Control control; - CORBA_Environment ev; - - g_return_val_if_fail (client != NULL, FALSE); - g_return_val_if_fail (EVOLUTION_IS_IMPORTER_CLIENT (client), FALSE); - - CORBA_exception_init (&ev); - corba_importer = client->objref; - GNOME_Evolution_Importer_createControl (corba_importer, &control, &ev); - - if (!BONOBO_EX (&ev)) { - /* FIXME Pass in container? */ - widget = bonobo_widget_new_control_from_objref (control, NULL); - gtk_widget_show (widget); - } - - CORBA_exception_free (&ev); - - return widget; -} - -/** - * evolution_importer_client_support_format: - * @client: The EvolutionImporterClient. - * @filename: Name of the file to check. - * - * Checks whether @client is able to import @filename. - * - * Returns: TRUE if @client can import @filename, FALSE otherwise. - */ -gboolean -evolution_importer_client_support_format (EvolutionImporterClient *client, - const char *filename) -{ - GNOME_Evolution_Importer corba_importer; - gboolean result; - CORBA_Environment ev; - - g_return_val_if_fail (client != NULL, FALSE); - g_return_val_if_fail (EVOLUTION_IS_IMPORTER_CLIENT (client), FALSE); - g_return_val_if_fail (filename != NULL, FALSE); - - CORBA_exception_init (&ev); - corba_importer = client->objref; - result = GNOME_Evolution_Importer_supportFormat (corba_importer, - filename, &ev); - CORBA_exception_free (&ev); - - return result; -} - -/** - * evolution_importer_client_load_file: - * @client: The EvolutionImporterClient. - * @filename: The file to load. - * @physical_uri: The physical URI of the folder to import data into. - * @folder_type: The type of the folder represented by @physical_uri. - * - * Loads and initialises the importer. - * - * Returns: TRUE on sucess, FALSE on failure. - */ -gboolean -evolution_importer_client_load_file (EvolutionImporterClient *client, const char *filename) -{ - GNOME_Evolution_Importer corba_importer; - gboolean result; - CORBA_Environment ev; - - g_return_val_if_fail (client != NULL, FALSE); - g_return_val_if_fail (EVOLUTION_IS_IMPORTER_CLIENT (client), FALSE); - g_return_val_if_fail (filename != NULL, FALSE); - - CORBA_exception_init (&ev); - corba_importer = client->objref; - result = GNOME_Evolution_Importer_loadFile (corba_importer, filename, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Oh there *WAS* an exception.\nIt was %s", - CORBA_exception_id (&ev)); - CORBA_exception_free (&ev); - return FALSE; - } - CORBA_exception_free (&ev); - - return result; -} - -/** - * evolution_importer_client_process_item: - * @client: The EvolutionImporterClient. - * @listener: The EvolutionImporterListener. - * - * Starts importing the next item in the file. @listener will be notified - * when the item has finished. - */ -void -evolution_importer_client_process_item (EvolutionImporterClient *client, - EvolutionImporterListener *listener) -{ - GNOME_Evolution_Importer corba_importer; - GNOME_Evolution_ImporterListener corba_listener; - CORBA_Environment ev; - - g_return_if_fail (client != NULL); - g_return_if_fail (EVOLUTION_IS_IMPORTER_CLIENT (client)); - g_return_if_fail (listener != NULL); - g_return_if_fail (EVOLUTION_IS_IMPORTER_LISTENER (listener)); - - CORBA_exception_init (&ev); - - corba_importer = client->objref; - corba_listener = bonobo_object_corba_objref (BONOBO_OBJECT (listener)); - GNOME_Evolution_Importer_processItem (corba_importer, - corba_listener, &ev); - CORBA_exception_free (&ev); -} - -/** - * evolution_importer_client_get_error: - * @client: The EvolutionImporterClient. - * - * Gets the error as a string. - * - * Returns: The error as a string. If there is no error NULL is returned. - * Importers need not support this method and if so, NULL is also returned. - */ -const char * -evolution_importer_client_get_error (EvolutionImporterClient *client) -{ - GNOME_Evolution_Importer corba_importer; - CORBA_char *str; - CORBA_Environment ev; - - g_return_val_if_fail (client != NULL, NULL); - g_return_val_if_fail (EVOLUTION_IS_IMPORTER_CLIENT (client), NULL); - - corba_importer = client->objref; - - CORBA_exception_init (&ev); - str = GNOME_Evolution_Importer_getError (corba_importer, &ev); - - return str; -} - -E_MAKE_TYPE (evolution_importer_client, "EvolutionImporterClient", - EvolutionImporterClient, class_init, init, PARENT_TYPE) diff --git a/shell/importer/evolution-importer-client.h b/shell/importer/evolution-importer-client.h deleted file mode 100644 index 449ab4ce4b..0000000000 --- a/shell/importer/evolution-importer-client.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-importer-client.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifndef EVOLUTION_IMPORTER_CLIENT_H -#define EVOLUTION_IMPORTER_CLIENT_H - -#include <glib.h> -#include <gtk/gtkwidget.h> -#include <importer/evolution-importer.h> -#include <importer/evolution-importer-listener.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif - -#define EVOLUTION_TYPE_IMPORTER_CLIENT (evolution_importer_client_get_type ()) -#define EVOLUTION_IMPORTER_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVOLUTION_TYPE_IMPORTER_CLIENT, EvolutionImporterClient)) -#define EVOLUTION_IMPORTER_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVOLUTION_TYPE_IMPORTER_CLIENT, EvolutionImporterClientClass)) -#define EVOLUTION_IS_IMPORTER_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVOLUTION_TYPE_IMPORTER_CLIENT)) -#define EVOLUTION_IS_IMPORTER_CLIENT_CLASS(klass) (G_TYPE_CHECK_INSTANCE_TYPE ((klass), EVOLUTION_TYPE_IMPORTER_CLIENT)) - - -typedef struct _EvolutionImporterClient EvolutionImporterClient; -typedef struct _EvolutionImporterClientClass EvolutionImporterClientClass; - -struct _EvolutionImporterClient { - GObject parent_type; - - GNOME_Evolution_Importer objref; -}; - -struct _EvolutionImporterClientClass { - GObjectClass parent_class; -}; - -GType evolution_importer_client_get_type (void); - -EvolutionImporterClient *evolution_importer_client_new (const CORBA_Object objref); -EvolutionImporterClient *evolution_importer_client_new_from_id (const char *id); - -GtkWidget *evolution_importer_client_create_control (EvolutionImporterClient *client); -gboolean evolution_importer_client_support_format (EvolutionImporterClient *client, - const char *filename); -gboolean evolution_importer_client_load_file (EvolutionImporterClient *client, - const char *filename); -void evolution_importer_client_process_item (EvolutionImporterClient *client, - EvolutionImporterListener *listener); -const char *evolution_importer_client_get_error (EvolutionImporterClient *client); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/shell/importer/evolution-importer-listener.c b/shell/importer/evolution-importer-listener.c deleted file mode 100644 index 5f99384dce..0000000000 --- a/shell/importer/evolution-importer-listener.c +++ /dev/null @@ -1,224 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-importer-client.c - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "evolution-importer-listener.h" - -#include <bonobo/bonobo-object.h> -#include <gal/util/e-util.h> - -#include "GNOME_Evolution_Importer.h" -#define PARENT_TYPE BONOBO_OBJECT_TYPE - -static BonoboObjectClass *parent_class = NULL; - -struct _EvolutionImporterListenerPrivate { - EvolutionImporterListenerCallback callback; - - void *closure; -}; - -#if 0 -static POA_GNOME_Evolution_ImporterListener__vepv Listener_vepv; - -static POA_GNOME_Evolution_ImporterListener * -create_servant (void) -{ - POA_GNOME_Evolution_ImporterListener *servant; - CORBA_Environment ev; - - servant = (POA_GNOME_Evolution_ImporterListener *) g_new0 (BonoboObjectServant, 1); - servant->vepv = &Listener_vepv; - - CORBA_exception_init (&ev); - POA_GNOME_Evolution_ImporterListener__init ((PortableServer_Servant) servant, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_free (servant); - CORBA_exception_free (&ev); - return NULL; - } - - CORBA_exception_free (&ev); - - return servant; -} -#endif - -static EvolutionImporterResult -corba_result_to_evolution (GNOME_Evolution_ImporterListener_ImporterResult corba_result) -{ - switch (corba_result) { - case GNOME_Evolution_ImporterListener_OK: - return EVOLUTION_IMPORTER_OK; - case GNOME_Evolution_ImporterListener_UNSUPPORTED_OPERATION: - return EVOLUTION_IMPORTER_UNSUPPORTED_OPERATION; - case GNOME_Evolution_ImporterListener_UNKNOWN_DATA: - return EVOLUTION_IMPORTER_UNKNOWN_DATA; - case GNOME_Evolution_ImporterListener_BAD_DATA: - return EVOLUTION_IMPORTER_BAD_DATA; - case GNOME_Evolution_ImporterListener_BAD_FILE: - return EVOLUTION_IMPORTER_BAD_FILE; - case GNOME_Evolution_ImporterListener_NOT_READY: - return EVOLUTION_IMPORTER_NOT_READY; - case GNOME_Evolution_ImporterListener_BUSY: - return EVOLUTION_IMPORTER_BUSY; - default: - return EVOLUTION_IMPORTER_UNKNOWN_ERROR; - } -} - -static inline EvolutionImporterListener * -evolution_importer_listener_from_servant (PortableServer_Servant servant) -{ - return EVOLUTION_IMPORTER_LISTENER (bonobo_object_from_servant (servant)); -} - -static void -impl_GNOME_Evolution_ImporterListener_notifyResult (PortableServer_Servant servant, - GNOME_Evolution_ImporterListener_ImporterResult result, - CORBA_boolean more_items, - CORBA_Environment *ev) -{ - EvolutionImporterListener *listener; - EvolutionImporterListenerPrivate *priv; - EvolutionImporterResult out_result; - - listener = evolution_importer_listener_from_servant (servant); - priv = listener->priv; - - out_result = corba_result_to_evolution (result); - if (priv->callback) { - (priv->callback) (listener, out_result, more_items, - priv->closure); - } - - return; -} - - -/* GObject methods */ -static void -finalise (GObject *object) -{ - EvolutionImporterListener *listener; - EvolutionImporterListenerPrivate *priv; - - listener = EVOLUTION_IMPORTER_LISTENER (object); - priv = listener->priv; - - if (priv == NULL) - return; - - g_free (priv); - listener->priv = NULL; - - G_OBJECT_CLASS (parent_class)->finalize(object); -} - -#if 0 -static void -corba_class_init (void) -{ - POA_GNOME_Evolution_ImporterListener__vepv *vepv; - POA_GNOME_Evolution_ImporterListener__epv *epv; - PortableServer_ServantBase__epv *base_epv; - - base_epv = g_new0 (PortableServer_ServantBase__epv, 1); - base_epv->_private = NULL; - base_epv->finalize = NULL; - base_epv->default_POA = NULL; - - epv = g_new0 (POA_GNOME_Evolution_ImporterListener__epv, 1); - epv->notifyResult = impl_GNOME_Evolution_ImporterListener_notifyResult; - - vepv = &Listener_vepv; - vepv->_base_epv = base_epv; - vepv->Bonobo_Unknown_epv = bonobo_object_get_epv (); - vepv->GNOME_Evolution_ImporterListener_epv = epv; -} -#endif - -static void -evolution_importer_listener_class_init (EvolutionImporterListenerClass *klass) -{ - GObjectClass *object_class; - POA_GNOME_Evolution_ImporterListener__epv *epv = &klass->epv; - - object_class = G_OBJECT_CLASS (klass); - object_class->finalize = finalise; - - parent_class = g_type_class_ref(PARENT_TYPE); - epv->notifyResult = impl_GNOME_Evolution_ImporterListener_notifyResult; -} - -static void -evolution_importer_listener_init (EvolutionImporterListener *listener) -{ - EvolutionImporterListenerPrivate *priv; - - priv = g_new0 (EvolutionImporterListenerPrivate, 1); - listener->priv = priv; -} - -static void -evolution_importer_listener_construct (EvolutionImporterListener *listener, - EvolutionImporterListenerCallback callback, - void *closure) -{ - EvolutionImporterListenerPrivate *priv; - - g_return_if_fail (listener != NULL); - g_return_if_fail (EVOLUTION_IS_IMPORTER_LISTENER (listener)); - g_return_if_fail (callback != NULL); - - priv = listener->priv; - priv->callback = callback; - priv->closure = closure; -} - -/** - * evolution_importer_listener_new - * @callback: The #EvolutionImporterListenerCallback callback. - * @closure: The data that will be passed to that callback. - * - * Creates a new #EvolutionImporterListener object which calls @callback when - * something happens. - * Returns: A newly allocated #EvolutionImporterListener. - */ -EvolutionImporterListener * -evolution_importer_listener_new (EvolutionImporterListenerCallback callback, - void *closure) -{ - EvolutionImporterListener *listener; - - listener = g_object_new (evolution_importer_listener_get_type (), NULL); - - evolution_importer_listener_construct (listener, callback, closure); - return listener; -} - -BONOBO_TYPE_FUNC_FULL (EvolutionImporterListener, - GNOME_Evolution_ImporterListener, - PARENT_TYPE, evolution_importer_listener); diff --git a/shell/importer/evolution-importer-listener.h b/shell/importer/evolution-importer-listener.h deleted file mode 100644 index 7254346fc2..0000000000 --- a/shell/importer/evolution-importer-listener.h +++ /dev/null @@ -1,71 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-importer-listener.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifndef EVOLUTION_IMPORTER_LISTENER_H -#define EVOLUTION_IMPORTER_LISTENER_H - -#include <glib.h> -#include <bonobo/bonobo-object.h> -#include <importer/GNOME_Evolution_Importer.h> -#include "evolution-importer.h" - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* cplusplus */ - -#define EVOLUTION_TYPE_IMPORTER_LISTENER (evolution_importer_listener_get_type ()) -#define EVOLUTION_IMPORTER_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVOLUTION_TYPE_IMPORTER_LISTENER, EvolutionImporterListener)) -#define EVOLUTION_IMPORTER_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVOLUTION_TYPE_IMPORTER_LISTENER, EvolutionImporterListenerClass)) -#define EVOLUTION_IS_IMPORTER_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVOLUTION_TYPE_IMPORTER_LISTENER)) -#define EVOLUTION_IS_IMPORTER_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EVOLUTION_TYPE_IMPORTER_LISTENER)) - -typedef struct _EvolutionImporterListener EvolutionImporterListener; -typedef struct _EvolutionImporterListenerPrivate EvolutionImporterListenerPrivate; -typedef struct _EvolutionImporterListenerClass EvolutionImporterListenerClass; - -typedef void (* EvolutionImporterListenerCallback) (EvolutionImporterListener *listener, - EvolutionImporterResult result, - gboolean more_items, - void *closure); -struct _EvolutionImporterListener { - BonoboObject parent; - - EvolutionImporterListenerPrivate *priv; -}; - -struct _EvolutionImporterListenerClass { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_ImporterListener__epv epv; -}; - -GType evolution_importer_listener_get_type (void); - -EvolutionImporterListener *evolution_importer_listener_new (EvolutionImporterListenerCallback callback, - void *closure); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/shell/importer/evolution-importer.c b/shell/importer/evolution-importer.c deleted file mode 100644 index 03ff54fea6..0000000000 --- a/shell/importer/evolution-importer.c +++ /dev/null @@ -1,249 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-importer.c - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "evolution-importer.h" - -#include <bonobo/bonobo-object.h> -#include <gal/util/e-util.h> - -#include "GNOME_Evolution_Importer.h" - -#define PARENT_TYPE BONOBO_OBJECT_TYPE -static BonoboObjectClass *parent_class = NULL; - -struct _EvolutionImporterPrivate { - EvolutionImporterCreateControlFn create_control_fn; - EvolutionImporterLoadFileFn load_file_fn; - EvolutionImporterSupportFormatFn support_format_fn; - EvolutionImporterProcessItemFn process_item_fn; - EvolutionImporterGetErrorFn get_error_fn; - - void *closure; -}; - - -static inline EvolutionImporter * -evolution_importer_from_servant (PortableServer_Servant servant) -{ - return EVOLUTION_IMPORTER (bonobo_object_from_servant (servant)); -} - -static void -impl_GNOME_Evolution_Importer_createControl (PortableServer_Servant servant, - Bonobo_Control *control, - CORBA_Environment *ev) -{ - EvolutionImporter *importer; - EvolutionImporterPrivate *priv; - - importer = evolution_importer_from_servant (servant); - priv = importer->priv; - - if (priv->create_control_fn != NULL) - (priv->create_control_fn) (importer, control, priv->closure); - else - CORBA_exception_set_system (ev, ex_CORBA_NO_IMPLEMENT, CORBA_COMPLETED_NO); -} - -static CORBA_boolean -impl_GNOME_Evolution_Importer_supportFormat (PortableServer_Servant servant, - const CORBA_char *filename, - CORBA_Environment *ev) -{ - EvolutionImporter *importer; - EvolutionImporterPrivate *priv; - - importer = evolution_importer_from_servant (servant); - priv = importer->priv; - - if (priv->support_format_fn != NULL) - return (priv->support_format_fn) (importer, filename, - priv->closure); - else - return FALSE; -} - -static CORBA_boolean -impl_GNOME_Evolution_Importer_loadFile (PortableServer_Servant servant, - const CORBA_char *filename, - CORBA_Environment *ev) -{ - EvolutionImporter *importer; - EvolutionImporterPrivate *priv; - - importer = evolution_importer_from_servant (servant); - priv = importer->priv; - - if (priv->load_file_fn != NULL) - return (priv->load_file_fn) (importer, filename, priv->closure); - else - return FALSE; -} - -static void -impl_GNOME_Evolution_Importer_processItem (PortableServer_Servant servant, - GNOME_Evolution_ImporterListener listener, - CORBA_Environment *ev) -{ - EvolutionImporter *importer; - EvolutionImporterPrivate *priv; - - importer = evolution_importer_from_servant (servant); - priv = importer->priv; - - if (priv->process_item_fn != NULL) - (priv->process_item_fn) (importer, listener, priv->closure, ev); - else - GNOME_Evolution_ImporterListener_notifyResult (listener, - GNOME_Evolution_ImporterListener_UNSUPPORTED_OPERATION, FALSE, ev); -} - -static CORBA_char * -impl_GNOME_Evolution_Importer_getError (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EvolutionImporter *importer; - EvolutionImporterPrivate *priv; - CORBA_char *out_str; - - importer = evolution_importer_from_servant (servant); - priv = importer->priv; - - if (priv->get_error_fn != NULL) { - out_str = (priv->get_error_fn) (importer, priv->closure); - return CORBA_string_dup (out_str ? out_str : ""); - } else - return CORBA_string_dup (""); -} - - -static void -finalise (GObject *object) -{ - EvolutionImporter *importer; - EvolutionImporterPrivate *priv; - - importer = EVOLUTION_IMPORTER (object); - priv = importer->priv; - - if (priv == NULL) - return; - - g_free (priv); - importer->priv = NULL; - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -evolution_importer_class_init (EvolutionImporterClass *klass) -{ - GObjectClass *object_class; - POA_GNOME_Evolution_Importer__epv *epv = &klass->epv; - - object_class = G_OBJECT_CLASS (klass); - object_class->finalize = finalise; - - parent_class = g_type_class_ref(PARENT_TYPE); - epv->createControl = impl_GNOME_Evolution_Importer_createControl; - epv->supportFormat = impl_GNOME_Evolution_Importer_supportFormat; - epv->loadFile = impl_GNOME_Evolution_Importer_loadFile; - epv->processItem = impl_GNOME_Evolution_Importer_processItem; - epv->getError = impl_GNOME_Evolution_Importer_getError; -} - -static void -evolution_importer_init (EvolutionImporter *importer) -{ - EvolutionImporterPrivate *priv; - - priv = g_new0 (EvolutionImporterPrivate, 1); - - importer->priv = priv; -} - - - -static void -evolution_importer_construct (EvolutionImporter *importer, - EvolutionImporterCreateControlFn create_control_fn, - EvolutionImporterSupportFormatFn support_format_fn, - EvolutionImporterLoadFileFn load_file_fn, - EvolutionImporterProcessItemFn process_item_fn, - EvolutionImporterGetErrorFn get_error_fn, - void *closure) -{ - EvolutionImporterPrivate *priv; - - g_return_if_fail (importer != NULL); - g_return_if_fail (EVOLUTION_IS_IMPORTER (importer)); - g_return_if_fail (support_format_fn != NULL); - g_return_if_fail (load_file_fn != NULL); - g_return_if_fail (process_item_fn != NULL); - - priv = importer->priv; - priv->create_control_fn = create_control_fn; - priv->support_format_fn = support_format_fn; - priv->load_file_fn = load_file_fn; - priv->process_item_fn = process_item_fn; - priv->get_error_fn = get_error_fn; - - priv->closure = closure; -} - -/** - * evolution_importer_new: - * @support_format_fn: The function to be called by the supportFormat method. - * @load_file_fn: The function to be called by the loadFile method. - * @process_item_fn: The function to be called by the processItem method. - * @get_error_fn: The function to be called by the getError method. - * @closure: The data to be passed to all of the above functions. - * - * Creates a new EvolutionImporter object. Of the parameters only - * @get_error_function and @closure may be #NULL. - * - * Returns: A newly created EvolutionImporter object. - */ -EvolutionImporter * -evolution_importer_new (EvolutionImporterCreateControlFn create_control_fn, - EvolutionImporterSupportFormatFn support_format_fn, - EvolutionImporterLoadFileFn load_file_fn, - EvolutionImporterProcessItemFn process_item_fn, - EvolutionImporterGetErrorFn get_error_fn, - void *closure) -{ - EvolutionImporter *importer; - - importer = g_object_new(evolution_importer_get_type (), NULL); - evolution_importer_construct (importer, create_control_fn, support_format_fn, load_file_fn, - process_item_fn, get_error_fn, closure); - return importer; -} - -BONOBO_TYPE_FUNC_FULL (EvolutionImporter, - GNOME_Evolution_Importer, - PARENT_TYPE, - evolution_importer); diff --git a/shell/importer/evolution-importer.h b/shell/importer/evolution-importer.h deleted file mode 100644 index 5fc5edc34d..0000000000 --- a/shell/importer/evolution-importer.h +++ /dev/null @@ -1,100 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-importer.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifndef EVOLUTION_IMPORTER_H -#define EVOLUTION_IMPORTER_H - -#include <glib.h> -#include <bonobo/bonobo-object.h> -#include <importer/GNOME_Evolution_Importer.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* cplusplus */ - -#define EVOLUTION_TYPE_IMPORTER (evolution_importer_get_type ()) -#define EVOLUTION_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVOLUTION_TYPE_IMPORTER, EvolutionImporter)) -#define EVOLUTION_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVOLUTION_TYPE_IMPORTER, EvolutionImporterClass)) -#define EVOLUTION_IS_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVOLUTION_TYPE_IMPORTER)) -#define EVOLUTION_IS_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EVOLUTION_TYPE_IMPORTER)) - -typedef struct _EvolutionImporter EvolutionImporter; -typedef struct _EvolutionImporterPrivate EvolutionImporterPrivate; -typedef struct _EvolutionImporterClass EvolutionImporterClass; - -typedef void (* EvolutionImporterCreateControlFn) (EvolutionImporter *importer, - Bonobo_Control *control, - void *closure); - -typedef gboolean (* EvolutionImporterSupportFormatFn) (EvolutionImporter *importer, - const char *filename, - void *closure); -typedef gboolean (* EvolutionImporterLoadFileFn) (EvolutionImporter *importer, - const char *filename, - void *closure); -typedef void (* EvolutionImporterProcessItemFn) (EvolutionImporter *importer, - CORBA_Object listener, - void *closure, - CORBA_Environment *ev); -typedef char *(* EvolutionImporterGetErrorFn) (EvolutionImporter *importer, - void *closure); - -typedef enum { - EVOLUTION_IMPORTER_OK, - EVOLUTION_IMPORTER_UNSUPPORTED_OPERATION, - EVOLUTION_IMPORTER_INTERRUPTED, - EVOLUTION_IMPORTER_BUSY, - EVOLUTION_IMPORTER_NOT_READY, - EVOLUTION_IMPORTER_UNKNOWN_DATA, - EVOLUTION_IMPORTER_BAD_DATA, - EVOLUTION_IMPORTER_BAD_FILE, - EVOLUTION_IMPORTER_UNKNOWN_ERROR -} EvolutionImporterResult; - -struct _EvolutionImporter { - BonoboObject parent; - - EvolutionImporterPrivate *priv; -}; - -struct _EvolutionImporterClass { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_Importer__epv epv; -}; - -GType evolution_importer_get_type (void); - -EvolutionImporter *evolution_importer_new (EvolutionImporterCreateControlFn create_control_fn, - EvolutionImporterSupportFormatFn support_format_fn, - EvolutionImporterLoadFileFn load_file_fn, - EvolutionImporterProcessItemFn process_item_fn, - EvolutionImporterGetErrorFn get_error_fn, - void *closure); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/shell/importer/evolution-intelligent-importer.c b/shell/importer/evolution-intelligent-importer.c deleted file mode 100644 index e9d40d0f6d..0000000000 --- a/shell/importer/evolution-intelligent-importer.c +++ /dev/null @@ -1,197 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-intelligent-importer.c - * - * Copyright (C) 2000, 2001 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "evolution-intelligent-importer.h" - -#include <bonobo/bonobo-object.h> - -#include "GNOME_Evolution_Importer.h" - -#define PARENT_TYPE BONOBO_OBJECT_TYPE -static BonoboObjectClass *parent_class = NULL; - -struct _EvolutionIntelligentImporterPrivate { - EvolutionIntelligentImporterCanImportFn can_import_fn; - EvolutionIntelligentImporterImportDataFn import_data_fn; - - char *importername; - char *message; - void *closure; -}; - - -static inline EvolutionIntelligentImporter * -evolution_intelligent_importer_from_servant (PortableServer_Servant servant) -{ - return EVOLUTION_INTELLIGENT_IMPORTER (bonobo_object_from_servant (servant)); -} - -static CORBA_char * -impl_GNOME_Evolution_IntelligentImporter__get_importername (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EvolutionIntelligentImporter *ii; - - ii = evolution_intelligent_importer_from_servant (servant); - - return CORBA_string_dup (ii->priv->importername ? - ii->priv->importername : ""); -} - -static CORBA_char * -impl_GNOME_Evolution_IntelligentImporter__get_message (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EvolutionIntelligentImporter *ii; - - ii = evolution_intelligent_importer_from_servant (servant); - - return CORBA_string_dup (ii->priv->message ? - ii->priv->message : ""); -} - -static CORBA_boolean -impl_GNOME_Evolution_IntelligentImporter_canImport (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EvolutionIntelligentImporter *ii; - EvolutionIntelligentImporterPrivate *priv; - - ii = evolution_intelligent_importer_from_servant (servant); - priv = ii->priv; - - if (priv->can_import_fn != NULL) - return (priv->can_import_fn) (ii, priv->closure); - else - return FALSE; -} - -static void -impl_GNOME_Evolution_IntelligentImporter_importData (PortableServer_Servant servant, - CORBA_Environment *ev) -{ - EvolutionIntelligentImporter *ii; - EvolutionIntelligentImporterPrivate *priv; - - ii = evolution_intelligent_importer_from_servant (servant); - priv = ii->priv; - - if (priv->import_data_fn) - (priv->import_data_fn) (ii, priv->closure); -} - - -static void -finalise (GObject *object) -{ - EvolutionIntelligentImporter *ii; - - ii = EVOLUTION_INTELLIGENT_IMPORTER (object); - - if (ii->priv == NULL) - return; - - g_free (ii->priv->importername); - g_free (ii->priv); - ii->priv = NULL; - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -evolution_intelligent_importer_class_init (EvolutionIntelligentImporterClass *klass) -{ - GObjectClass *object_class; - POA_GNOME_Evolution_IntelligentImporter__epv *epv = &klass->epv; - - object_class = G_OBJECT_CLASS (klass); - object_class->finalize = finalise; - - parent_class = g_type_class_ref(PARENT_TYPE); - epv->_get_importername = impl_GNOME_Evolution_IntelligentImporter__get_importername; - epv->_get_message = impl_GNOME_Evolution_IntelligentImporter__get_message; - epv->canImport = impl_GNOME_Evolution_IntelligentImporter_canImport; - epv->importData = impl_GNOME_Evolution_IntelligentImporter_importData; -} - -static void -evolution_intelligent_importer_init (EvolutionIntelligentImporter *ii) -{ - ii->priv = g_new0 (EvolutionIntelligentImporterPrivate, 1); -} - - -static void -evolution_intelligent_importer_construct (EvolutionIntelligentImporter *ii, - EvolutionIntelligentImporterCanImportFn can_import_fn, - EvolutionIntelligentImporterImportDataFn import_data_fn, - const char *importername, - const char *message, - void *closure) -{ - g_return_if_fail (ii != NULL); - ii->priv->importername = g_strdup (importername); - ii->priv->message = g_strdup (message); - - ii->priv->can_import_fn = can_import_fn; - ii->priv->import_data_fn = import_data_fn; - ii->priv->closure = closure; -} - -/** - * evolution_intelligent_importer_new: - * can_import_fn: The function that will be called to see if this importer can do - * anything. - * import_data_fn: The function that will be called when the importer should - * import the data. - * importername: The name of this importer. - * message: The message that will be displayed when the importer can import. - * closure: The data to be passed to @can_import_fn and @import_data_fn. - * - * Creates a new IntelligentImporter. - * - * Returns: A newly allocated EvolutionIntelligentImporter. - */ -EvolutionIntelligentImporter * -evolution_intelligent_importer_new (EvolutionIntelligentImporterCanImportFn can_import_fn, - EvolutionIntelligentImporterImportDataFn import_data_fn, - const char *importername, - const char *message, - void *closure) -{ - EvolutionIntelligentImporter *ii; - - ii = g_object_new (evolution_intelligent_importer_get_type (), NULL); - evolution_intelligent_importer_construct (ii, can_import_fn, - import_data_fn, importername, - message, closure); - return ii; -} - -BONOBO_TYPE_FUNC_FULL (EvolutionIntelligentImporter, - GNOME_Evolution_IntelligentImporter, - PARENT_TYPE, - evolution_intelligent_importer); diff --git a/shell/importer/evolution-intelligent-importer.h b/shell/importer/evolution-intelligent-importer.h deleted file mode 100644 index d51177f817..0000000000 --- a/shell/importer/evolution-intelligent-importer.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* evolution-intelligent-importer.h - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Iain Holmes <iain@ximian.com> - */ - -#ifndef EVOLUTION_INTELLIGENT_IMPORTER_H -#define EVOLUTION_INTELLIGENT_IMPORTER_H - -#include <glib.h> -#include <bonobo/bonobo-object.h> -#include <importer/GNOME_Evolution_Importer.h> - -#ifdef __cplusplus -extern "C" { -#pragma } -#endif /* __cplusplus */ - -#define EVOLUTION_TYPE_INTELLIGENT_IMPORTER (evolution_intelligent_importer_get_type ()) -#define EVOLUTION_INTELLIGENT_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EVOLUTION_TYPE_INTELLIGENT_IMPORTER, EvolutionIntelligentImporter)) -#define EVOLUTION_INTELLIGENT_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EVOLUTION_TYPE_INTELLIGENT_IMPORTER, EvolutionIntelligentImporterClass)) -#define EVOLUTION_IS_INTELLIGENT_IMPORTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EVOLUTION_TYPE_INTELLIGENT_IMPORTER)) -#define EVOLUTION_IS_INTELLIGENT_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), EVOLUTION_TYPE_INTELLIGENT_IMPORTER)) - -typedef struct _EvolutionIntelligentImporter EvolutionIntelligentImporter; -typedef struct _EvolutionIntelligentImporterPrivate EvolutionIntelligentImporterPrivate; -typedef struct _EvolutionIntelligentImporterClass EvolutionIntelligentImporterClass; - -typedef gboolean (* EvolutionIntelligentImporterCanImportFn) (EvolutionIntelligentImporter *ii, - void *closure); -typedef void (* EvolutionIntelligentImporterImportDataFn) (EvolutionIntelligentImporter *ii, - void *closure); - -struct _EvolutionIntelligentImporter { - BonoboObject parent; - - EvolutionIntelligentImporterPrivate *priv; -}; - -struct _EvolutionIntelligentImporterClass { - BonoboObjectClass parent_class; - - POA_GNOME_Evolution_IntelligentImporter__epv epv; -}; - -GType evolution_intelligent_importer_get_type (void); - -EvolutionIntelligentImporter *evolution_intelligent_importer_new (EvolutionIntelligentImporterCanImportFn can_import_fn, - EvolutionIntelligentImporterImportDataFn import_data_fn, - const char *importername, - const char *message, - void *closure); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/shell/importer/import.glade b/shell/importer/import.glade deleted file mode 100644 index 8af6884822..0000000000 --- a/shell/importer/import.glade +++ /dev/null @@ -1,124 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - -<glade-interface> -<requires lib="gnome"/> - -<widget class="GtkWindow" id="importwizard"> - <property name="title" translatable="yes">Evolution Import Assistant</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - - <child> - <widget class="GnomeDruid" id="druid1"> - <property name="border_width">4</property> - <property name="visible">True</property> - <property name="show_help">False</property> - - <child> - <widget class="GnomeDruidPageEdge" id="page0"> - <property name="visible">True</property> - <property name="position">GNOME_EDGE_START</property> - <property name="title" translatable="yes">Evolution Import Assistant</property> - <property name="text" translatable="yes">Welcome to the Evolution Import Assistant. -With this assistant you will be guided through the process of -importing external files into Evolution.</property> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageStandard" id="page1"> - <property name="visible">True</property> - <property name="title" translatable="yes">Importer Type</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="druid-vbox2"> - <property name="border_width">16</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageStandard" id="page2-file"> - <property name="visible">True</property> - <property name="title" translatable="yes">Select a File</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="druid-vbox1"> - <property name="border_width">16</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageStandard" id="page3-file"> - <property name="visible">True</property> - <property name="title" translatable="yes">Import Location</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="druid-vbox3"> - <property name="border_width">16</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageStandard" id="page2-intelligent"> - <property name="visible">True</property> - <property name="title" translatable="yes">Select Importers</property> - - <child internal-child="vbox"> - <widget class="GtkVBox" id="druid-vbox3"> - <property name="border_width">16</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GnomeDruidPageEdge" id="page4"> - <property name="visible">True</property> - <property name="position">GNOME_EDGE_FINISH</property> - <property name="title" translatable="yes">Import File</property> - <property name="text" translatable="yes">Click "Import" to begin importing the file into Evolution. </property> - </widget> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/shell/importer/intelligent.c b/shell/importer/intelligent.c deleted file mode 100644 index 2043abadb4..0000000000 --- a/shell/importer/intelligent.c +++ /dev/null @@ -1,489 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* intelligent.c - * - * Authors: - * Iain Holmes <iain@ximian.com> - * - * Copyright 2001 Ximian, Inc. (www.ximian.com) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "intelligent.h" - -#include <glib.h> - -#include <gtk/gtkdrawingarea.h> -#include <gtk/gtkbox.h> -#include <gtk/gtkhbox.h> -#include <gtk/gtkvbox.h> -#include <gtk/gtkcheckbutton.h> -#include <gtk/gtklabel.h> -#include <gtk/gtkmain.h> -#include <gtk/gtkobject.h> -#include <gtk/gtktogglebutton.h> -#include <gtk/gtkwidget.h> -#include <gtk/gtkwindow.h> -#include <gtk/gtkframe.h> -#include <gtk/gtkclist.h> -#include <gtk/gtknotebook.h> -#include <gtk/gtkscrolledwindow.h> -#include <gtk/gtkdialog.h> -#include <gtk/gtkstock.h> - -#include <libgnome/gnome-config.h> -/*#include <libgnome/gnome-util.h>*/ -#include <libgnome/gnome-i18n.h> - -#include <bonobo/bonobo-object.h> -#include <bonobo/bonobo-widget.h> - -#include "intelligent.h" -#include "GNOME_Evolution_Importer.h" - -/* Prototypes */ - -void intelligent_importer_init (void); - -/* End prototypes */ - -typedef struct { - CORBA_Object object; - Bonobo_Control control; - GtkWidget *widget; - - char *name; - char *blurb; - char *iid; -} IntelligentImporterData; - -typedef struct { - GtkWidget *dialog; - GtkWidget *placeholder; - GtkWidget *clist; - BonoboWidget *current; - - GList *importers; - - int running; -} IntelligentImporterDialog; - -typedef struct { - CORBA_Object importer; - char *iid; -} SelectedImporterData; - -static void -free_importer_dialog (IntelligentImporterDialog *d) -{ - GList *l; - - for (l = d->importers; l; l = l->next) { - CORBA_Environment ev; - IntelligentImporterData *data; - - data = l->data; - - CORBA_exception_init (&ev); - if (data->object != CORBA_OBJECT_NIL) - bonobo_object_release_unref (data->object, &ev); - - g_free (data->iid); - g_free (data->name); - g_free (data->blurb); - g_free (data); - } - - g_list_free (d->importers); - gtk_widget_destroy (d->dialog); - g_free (d); -} - -static void -start_importers (GList *selected) -{ - CORBA_Environment ev; - - CORBA_exception_init (&ev); - for (; selected; selected = selected->next) { - SelectedImporterData *selection = selected->data; - - GNOME_Evolution_IntelligentImporter_importData (selection->importer, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Error importing %s\n%s", selection->iid, - CORBA_exception_id (&ev)); - } - } - CORBA_exception_free (&ev); -} - -static GList * -get_intelligent_importers (void) -{ - Bonobo_ServerInfoList *info_list; - GList *iids_ret = NULL; - CORBA_Environment ev; - int i; - - CORBA_exception_init (&ev); - info_list = bonobo_activation_query ("repo_ids.has ('IDL:GNOME/Evolution/IntelligentImporter:" BASE_VERSION "')", NULL, &ev); - CORBA_exception_free (&ev); - - for (i = 0; i < info_list->_length; i++) { - const Bonobo_ServerInfo *info; - - info = info_list->_buffer + i; - iids_ret = g_list_prepend (iids_ret, g_strdup (info->iid)); - } - - return iids_ret; -} - -static void -select_row_cb (GtkCList *clist, - int row, - int column, - GdkEvent *ev, - IntelligentImporterDialog *d) -{ - gtk_notebook_set_current_page (GTK_NOTEBOOK (d->placeholder), row); -} - -static void -unselect_row_cb (GtkCList *clist, - int row, - int column, - GdkEvent *ev, - IntelligentImporterDialog *d) -{ - gtk_notebook_set_current_page (GTK_NOTEBOOK (d->placeholder), d->running); -} - -static IntelligentImporterDialog * -create_gui (GList *importers) -{ - GtkWidget *dialog, *clist, *sw, *label; - GtkWidget *hbox, *vbox, *dummy; - IntelligentImporterDialog *d; - GList *l; - int running = 0; - - d = g_new (IntelligentImporterDialog, 1); - d->dialog = dialog = gtk_dialog_new(); - gtk_dialog_set_has_separator ((GtkDialog *) dialog, FALSE); - gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)dialog)->vbox, 0); - gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)dialog)->action_area, 12); - - gtk_window_set_title((GtkWindow *)dialog, _("Importers")); - dummy = gtk_button_new_from_stock(GTK_STOCK_CONVERT); - gtk_button_set_label((GtkButton *)dummy, _("Import")); - gtk_dialog_add_action_widget((GtkDialog *)dialog, dummy, GTK_RESPONSE_ACCEPT); - - dummy = gtk_button_new_from_stock(GTK_STOCK_NO); - gtk_button_set_label((GtkButton *)dummy, _("Don't import")); - gtk_dialog_add_action_widget((GtkDialog *)dialog, dummy, GTK_RESPONSE_REJECT); - - dummy = gtk_button_new_from_stock(GTK_STOCK_CANCEL); - gtk_button_set_label((GtkButton *)dummy, _("Don't ask me again")); - gtk_dialog_add_action_widget((GtkDialog *)dialog, dummy, GTK_RESPONSE_CANCEL); - d->importers = NULL; - d->current = NULL; - - d->clist = clist = gtk_clist_new (1); - gtk_clist_set_selection_mode (GTK_CLIST (d->clist), GTK_SELECTION_MULTIPLE); - - label = gtk_label_new (_("Evolution can import data from the following files:")); - gtk_misc_set_alignment(GTK_MISC(label), 0, .5); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label, - TRUE, TRUE, 0); - - hbox = gtk_hbox_new (FALSE, 2); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 2); - - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, - TRUE, TRUE, 0); - - sw = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN); - gtk_widget_set_size_request (sw, 300, 150); - gtk_container_add (GTK_CONTAINER (sw), clist); - gtk_box_pack_start (GTK_BOX (hbox), sw, TRUE, TRUE, 0); - - vbox = gtk_vbox_new (FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 2); - gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); - - d->placeholder = gtk_notebook_new (); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (d->placeholder), FALSE); - gtk_box_pack_start (GTK_BOX (vbox), d->placeholder, TRUE, TRUE, 0); - - for (l = importers; l; l = l->next) { - IntelligentImporterData *data; - CORBA_Environment ev; - gboolean dontaskagain, can_run; - char *text[1], *prefix; - - /* Check if we want to show this one again */ - prefix = g_strdup_printf ("=%s/evolution/config/Shell=/intelligent-importers/", g_get_home_dir ()); - gnome_config_push_prefix (prefix); - g_free (prefix); - - dontaskagain = gnome_config_get_bool (l->data); - gnome_config_pop_prefix (); - - if (dontaskagain) - continue; - - data = g_new0 (IntelligentImporterData, 1); - data->iid = g_strdup (l->data); - - CORBA_exception_init (&ev); - data->object = bonobo_activation_activate_from_id ((char *) data->iid, 0, - NULL, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Could not start %s: %s", data->iid, - CORBA_exception_id (&ev)); - CORBA_exception_free (&ev); - - /* Clean up the IntelligentImporterData */ - g_free (data->iid); - g_free (data); - continue; - } - - CORBA_exception_free (&ev); - if (data->object == CORBA_OBJECT_NIL) { - g_warning ("Could not activate_component %s", data->iid); - g_free (data->iid); - g_free (data); - continue; - } - - CORBA_exception_init (&ev); - can_run = GNOME_Evolution_IntelligentImporter_canImport (data->object, - &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Could not get canImport(%s): %s", - data->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (data->object, &ev); - CORBA_exception_free (&ev); - g_free (data->iid); - g_free (data); - continue; - } - CORBA_exception_free (&ev); - - if (can_run == FALSE) { - CORBA_exception_init (&ev); - bonobo_object_release_unref (data->object, &ev); - CORBA_exception_free (&ev); - g_free (data->iid); - g_free (data); - continue; - } - - running++; - - data->name = g_strdup (GNOME_Evolution_IntelligentImporter__get_importername (data->object, &ev)); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Could not get name(%s): %s", - data->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (data->object, &ev); - CORBA_exception_free (&ev); - g_free (data->iid); - g_free (data); - continue; - } - - data->blurb = g_strdup (GNOME_Evolution_IntelligentImporter__get_message (data->object, &ev)); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Could not get message(%s): %s", - data->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (data->object, &ev); - CORBA_exception_free (&ev); - g_free (data->iid); - g_free (data->name); - g_free (data); - continue; - } - - data->control = Bonobo_Unknown_queryInterface (data->object, - "IDL:Bonobo/Control:1.0", &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Could not QI for Bonobo/Control:1.0 %s:%s", - data->iid, CORBA_exception_id (&ev)); - bonobo_object_release_unref (data->object, &ev); - CORBA_exception_free (&ev); - g_free (data->iid); - g_free (data->name); - g_free (data->blurb); - continue; - } - if (data->control != CORBA_OBJECT_NIL) { - data->widget = bonobo_widget_new_control_from_objref (data->control, CORBA_OBJECT_NIL); - /* Ref this widget so even if we remove it from the - containers it will always have an extra ref. */ - gtk_widget_show (data->widget); - gtk_widget_ref (data->widget); - } else { - data->widget = gtk_label_new (""); - } - - CORBA_exception_free (&ev); - - d->importers = g_list_prepend (d->importers, data); - gtk_notebook_prepend_page (GTK_NOTEBOOK (d->placeholder), - data->widget, NULL); - text[0] = data->name; - gtk_clist_prepend (GTK_CLIST (clist), text); - } - - d->running = running; - dummy = gtk_drawing_area_new (); - gtk_widget_show (dummy); - gtk_notebook_append_page (GTK_NOTEBOOK (d->placeholder), - dummy, NULL); - /* Set the start to the blank page */ - gtk_notebook_set_current_page (GTK_NOTEBOOK (d->placeholder), running); - - g_signal_connect((clist), "select-row", - G_CALLBACK (select_row_cb), d); - g_signal_connect((clist), "unselect-row", - G_CALLBACK (unselect_row_cb), d); - - gtk_widget_show_all (GTK_DIALOG (dialog)->vbox); - return d; -} - -void -intelligent_importer_init (void) -{ - GList *importers, *l, *selected = NULL; - IntelligentImporterDialog *d; - char *prefix; - gboolean dontaskagain; - int resp; - - prefix = g_strdup_printf ("=%s/evolution/config/Shell=/intelligent-importers/", g_get_home_dir()); - gnome_config_push_prefix (prefix); - g_free (prefix); - - dontaskagain = gnome_config_get_bool ("Dontaskagain=False"); - gnome_config_pop_prefix (); - - if (dontaskagain) { - return; - } - - importers = get_intelligent_importers (); - if (importers == NULL) - return; /* No intelligent importers. Easy :) */ - - d = create_gui (importers); - if (d->running == 0) { - free_importer_dialog (d); - return; /* No runnable intelligent importers. */ - } - - resp = gtk_dialog_run((GtkDialog *)d->dialog); - gtk_widget_destroy(d->dialog); - switch (resp) { - case GTK_RESPONSE_ACCEPT: - /* Make a list of the importers */ - - /* FIXME: Sort this list and don't do it a slow way */ - for (l = GTK_CLIST (d->clist)->selection; l; l = l->next) { - IntelligentImporterData *data; - SelectedImporterData *new_data; - CORBA_Environment ev; - char *iid; - - data = g_list_nth_data (d->importers, GPOINTER_TO_INT (l->data)); - iid = g_strdup (data->iid); - - new_data = g_new (SelectedImporterData, 1); - new_data->iid = iid; - - /* Reference the remote object, and duplicate the - local one. */ - CORBA_exception_init (&ev); - new_data->importer = bonobo_object_dup_ref (data->object, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Error duplicating %s\n%s", iid, - CORBA_exception_id (&ev)); - g_free (iid); - CORBA_exception_free (&ev); - g_free (new_data); - continue; - } - CORBA_exception_free (&ev); - - selected = g_list_prepend (selected, new_data); - } - - /* Now destroy all the importers, as we've kept references to - the ones we need */ - free_importer_dialog (d); - - if (selected != NULL) { - /* Restart the selected ones */ - start_importers (selected); - - /* Free the selected list */ - for (l = selected; l; l = l->next) { - CORBA_Environment ev; - SelectedImporterData *selection = l->data; - - CORBA_exception_init (&ev); - bonobo_object_release_unref (selection->importer, &ev); - CORBA_exception_free (&ev); - - g_free (selection->iid); - g_free (selection); - } - g_list_free (selected); - } - - break; - - case GTK_RESPONSE_CANCEL: /* Dont ask again */ - prefix = g_strdup_printf ("=%s/evolution/config/Shell=/intelligent-importers/", g_get_home_dir()); - gnome_config_push_prefix (prefix); - g_free (prefix); - - gnome_config_set_bool ("Dontaskagain", TRUE); - gnome_config_pop_prefix (); - - gnome_config_sync (); - gnome_config_drop_all (); - g_print ("Not asking again"); - free_importer_dialog (d); - break; - - default: - case GTK_RESPONSE_REJECT: /* No button */ - free_importer_dialog (d); - break; - } - - g_list_free (importers); -} diff --git a/shell/importer/intelligent.h b/shell/importer/intelligent.h deleted file mode 100644 index 1e6f3e0b1b..0000000000 --- a/shell/importer/intelligent.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* importer.c - * - * Copyright (C) 2000 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Kjartan Maraas <kmaraas@gnome.org> - */ - -#ifndef __INTELLIGENT_H__ -#define __INTELLIGENT_H__ - -void intelligent_importer_init (void); - -#endif diff --git a/shell/main.c b/shell/main.c deleted file mode 100644 index c3f9cde841..0000000000 --- a/shell/main.c +++ /dev/null @@ -1,616 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* main.c - * - * Copyright (C) 2000, 2001, 2002, 2003 Ximian, Inc. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * Author: Ettore Perazzoli - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include "e-util/e-dialog-utils.h" -#include "e-util/e-gtk-utils.h" -#include "e-util/e-bconf-map.h" -#include "e-util/e-passwords.h" - -#include <e-util/e-icon-factory.h> -#include "e-shell-constants.h" - -#include "e-shell.h" - -#include <libxml/xmlmemory.h> -#include <libxml/parser.h> -#include <libxml/tree.h> - -#include <gconf/gconf-client.h> - -#include <gtk/gtkalignment.h> -#include <gtk/gtkvbox.h> -#include <gtk/gtkframe.h> -#include <gtk/gtklabel.h> -#include <gtk/gtkmain.h> -#include <gtk/gtksignal.h> -#include <gtk/gtkwindow.h> -#include <gtk/gtkdialog.h> -#include <gtk/gtkstock.h> - -#include <gdk/gdkx.h> -#include <X11/Xlib.h> - -#include <libgnome/gnome-i18n.h> -#include <libgnome/gnome-util.h> -#include <libgnome/gnome-sound.h> -#include <libgnomeui/gnome-ui-init.h> - -#include <bonobo/bonobo-main.h> -#include <bonobo/bonobo-moniker-util.h> -#include <bonobo/bonobo-exception.h> - -#include <bonobo-activation/bonobo-activation.h> - -#include <glade/glade.h> - -#include "e-config-upgrade.h" -#include "Evolution-DataServer.h" - -#include <gal/widgets/e-cursors.h> -#include "widgets/misc/e-error.h" - -#include <fcntl.h> -#include <signal.h> -#include <string.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> - -#include <pthread.h> - -#include "e-util/e-plugin.h" -#ifdef ENABLE_MONO -#include "e-util/e-plugin-mono.h" -#endif - -#define DEVELOPMENT - - -static EShell *shell = NULL; - -/* Command-line options. */ -static gboolean start_online = FALSE; -static gboolean start_offline = FALSE; -static gboolean setup_only = FALSE; -static gboolean killev = FALSE; -#ifdef DEVELOPMENT -static gboolean force_migrate = FALSE; -#endif -#ifdef ENABLE_MONO -static gboolean disable_mono = FALSE; -#endif -static gboolean disable_eplugin = FALSE; - -static gint idle_cb (void *data); - -static char *default_component_id = NULL; -static char *evolution_debug_log = NULL; - -static void -no_windows_left_cb (EShell *shell, gpointer data) -{ - bonobo_object_unref (BONOBO_OBJECT (shell)); - bonobo_main_quit (); -} - -static void -shell_weak_notify (void *data, - GObject *where_the_object_was) -{ - bonobo_main_quit (); -} - - -#ifdef KILL_PROCESS_CMD - -static void -kill_dataserver (void) -{ - g_message ("Killing old version of evolution-data-server..."); - - system (KILL_PROCESS_CMD " -9 lt-evolution-data-server 2> /dev/null"); - system (KILL_PROCESS_CMD " -9 evolution-data-server-1.0 2> /dev/null"); - - system (KILL_PROCESS_CMD " -9 lt-evolution-alarm-notify 2> /dev/null"); - system (KILL_PROCESS_CMD " -9 evolution-alarm-notify 2> /dev/null"); -} - -static void -kill_old_dataserver (void) -{ - GNOME_Evolution_DataServer_InterfaceCheck iface; - CORBA_Environment ev; - CORBA_char *version; - - CORBA_exception_init (&ev); - - /* FIXME Should we really kill it off? We also shouldn't hard code the version */ - iface = bonobo_activation_activate_from_id ("OAFIID:GNOME_Evolution_DataServer_InterfaceCheck", 0, NULL, &ev); - if (BONOBO_EX (&ev) || iface == CORBA_OBJECT_NIL) { - kill_dataserver (); - CORBA_exception_free (&ev); - return; - } - - version = GNOME_Evolution_DataServer_InterfaceCheck__get_interfaceVersion (iface, &ev); - if (BONOBO_EX (&ev)) { - kill_dataserver (); - CORBA_Object_release (iface, &ev); - CORBA_exception_free (&ev); - return; - } - - if (strcmp (version, DATASERVER_VERSION) != 0) { - CORBA_free (version); - kill_dataserver (); - CORBA_Object_release (iface, &ev); - CORBA_exception_free (&ev); - return; - } - - CORBA_free (version); - CORBA_Object_release (iface, &ev); - CORBA_exception_free (&ev); -} -#endif - - -#ifdef DEVELOPMENT - -/* Warning dialog to scare people off a little bit. */ - -static void -warning_dialog_response_callback (GtkDialog *dialog, - int button_number, - void *data) -{ - GtkCheckButton *dont_bother_me_again_checkbox; - GConfClient *client; - - dont_bother_me_again_checkbox = GTK_CHECK_BUTTON (data); - - client = gconf_client_get_default (); - gconf_client_set_bool (client, "/apps/evolution/shell/skip_warning_dialog", - gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dont_bother_me_again_checkbox)), - NULL); - g_object_unref (client); - - gtk_widget_destroy (GTK_WIDGET (dialog)); - - idle_cb(NULL); -} - -static void -show_development_warning(void) -{ - GtkWidget *vbox; - GtkWidget *label; - GtkWidget *warning_dialog; - GtkWidget *dont_bother_me_again_checkbox; - GtkWidget *alignment; - char *text; - - warning_dialog = gtk_dialog_new (); - gtk_window_set_title (GTK_WINDOW (warning_dialog), "Evolution " VERSION); - gtk_window_set_modal (GTK_WINDOW (warning_dialog), TRUE); - gtk_dialog_add_button (GTK_DIALOG (warning_dialog), GTK_STOCK_OK, GTK_RESPONSE_OK); - - gtk_dialog_set_has_separator (GTK_DIALOG (warning_dialog), FALSE); - - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (warning_dialog)->vbox), 0); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (warning_dialog)->action_area), 12); - - vbox = gtk_vbox_new (FALSE, 12); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 12); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (warning_dialog)->vbox), vbox, - TRUE, TRUE, 0); - - text = g_strdup_printf( - /* xgettext:no-c-format */ - /* Preview/Alpha/Beta version warning message */ - _("Hi. Thanks for taking the time to download this preview release\n" - "of the Evolution groupware suite.\n" - "\n" - "This version of Evolution is not yet complete. It is getting close,\n" - "but some features are either unfinished or do not work properly.\n" - "\n" - "If you want a stable version of Evolution, we urge you to uninstall\n" - "this version, and install version %s instead.\n" - "\n" - "If you find bugs, please report them to us at bugzilla.ximian.com.\n" - "This product comes with no warranty and is not intended for\n" - "individuals prone to violent fits of anger.\n" - "\n" - "We hope that you enjoy the results of our hard work, and we\n" - "eagerly await your contributions!\n"), - "1.4"); - label = gtk_label_new (text); - g_free(text); - - gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0); - - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - - label = gtk_label_new (_("Thanks\n" - "The Evolution Team\n")); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment(GTK_MISC(label), 1, .5); - - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - - dont_bother_me_again_checkbox = gtk_check_button_new_with_label (_("Don't tell me again")); - - alignment = gtk_alignment_new (0.0, 0.0, 0.0, 0.0); - - gtk_container_add (GTK_CONTAINER (alignment), dont_bother_me_again_checkbox); - gtk_box_pack_start (GTK_BOX (vbox), alignment, TRUE, TRUE, 0); - - gtk_widget_show_all (warning_dialog); - - g_signal_connect (warning_dialog, "response", - G_CALLBACK (warning_dialog_response_callback), - dont_bother_me_again_checkbox); -} - -static void -destroy_config (void) -{ - GConfClient *gconf; - - gconf = gconf_client_get_default (); - - /* Unset the source stuff */ - gconf_client_unset (gconf, "/apps/evolution/calendar/sources", NULL); - gconf_client_unset (gconf, "/apps/evolution/tasks/sources", NULL); - gconf_client_unset (gconf, "/apps/evolution/addressbook/sources", NULL); - gconf_client_unset (gconf, "/apps/evolution/addressbook/sources", NULL); - - /* Reset the version */ - gconf_client_set_string (gconf, "/apps/evolution/version", "1.4.0", NULL); - - /* Clear the dir */ - system ("rm -Rf ~/.evolution"); - - g_object_unref (gconf); -} - -#endif /* DEVELOPMENT */ - -static void -open_uris (GNOME_Evolution_Shell corba_shell, GSList *uri_list) -{ - GSList *p; - CORBA_Environment ev; - - CORBA_exception_init (&ev); - - for (p = uri_list; p != NULL; p = p->next) { - const char *uri; - - uri = (const char *) p->data; - GNOME_Evolution_Shell_handleURI (corba_shell, uri, &ev); - if (ev._major != CORBA_NO_EXCEPTION) { - g_warning ("Invalid URI: %s", uri); - CORBA_exception_free (&ev); - } - } - - CORBA_exception_free (&ev); -} - -/* This is for doing stuff that requires the GTK+ loop to be running already. */ - -static gint -idle_cb (void *data) -{ - GSList *uri_list; - GNOME_Evolution_Shell corba_shell; - CORBA_Environment ev; - EShellConstructResult result; - EShellStartupLineMode startup_line_mode; - gboolean have_evolution_uri; - -#ifdef KILL_PROCESS_CMD - kill_old_dataserver (); -#endif - - CORBA_exception_init (&ev); - - uri_list = (GSList *) data; - - if (! start_online && ! start_offline) - startup_line_mode = E_SHELL_STARTUP_LINE_MODE_CONFIG; - else if (start_online) - startup_line_mode = E_SHELL_STARTUP_LINE_MODE_ONLINE; - else - startup_line_mode = E_SHELL_STARTUP_LINE_MODE_OFFLINE; - - shell = e_shell_new (startup_line_mode, &result); - - switch (result) { - case E_SHELL_CONSTRUCT_RESULT_OK: - g_signal_connect (shell, "no_windows_left", G_CALLBACK (no_windows_left_cb), NULL); - g_object_weak_ref (G_OBJECT (shell), shell_weak_notify, NULL); - corba_shell = bonobo_object_corba_objref (BONOBO_OBJECT (shell)); - corba_shell = CORBA_Object_duplicate (corba_shell, &ev); - break; - - case E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER: - corba_shell = bonobo_activation_activate_from_id (E_SHELL_OAFIID, 0, NULL, &ev); - if (ev._major != CORBA_NO_EXCEPTION || corba_shell == CORBA_OBJECT_NIL) { - e_error_run(NULL, "shell:noshell", NULL); - CORBA_exception_free (&ev); - bonobo_main_quit (); - return FALSE; - } - break; - - default: - e_error_run(NULL, "shell:noshell-reason", - e_shell_construct_result_to_string(result), NULL); - CORBA_exception_free (&ev); - bonobo_main_quit (); - return FALSE; - - } - - have_evolution_uri = FALSE; - - if (shell != NULL) { - e_shell_create_window (shell, default_component_id, NULL); - open_uris (corba_shell, uri_list); - } else { - CORBA_Environment ev; - - CORBA_exception_init (&ev); - if (uri_list != NULL) - open_uris (corba_shell, uri_list); - else - if (default_component_id == NULL) - GNOME_Evolution_Shell_createNewWindow (corba_shell, "", &ev); - else - GNOME_Evolution_Shell_createNewWindow (corba_shell, default_component_id, &ev); - - CORBA_exception_free (&ev); - } - - g_slist_free (uri_list); - - CORBA_Object_release (corba_shell, &ev); - - CORBA_exception_free (&ev); - - if (shell == NULL) - bonobo_main_quit (); - - return FALSE; -} - - -/* SIGSEGV handling. - - The GNOME SEGV handler will lose if it's not run from the main Gtk - thread. So if we have to redirect the signal if the crash happens in another - thread. */ - -static void (*gnome_segv_handler) (int); -static GStaticMutex segv_mutex = G_STATIC_MUTEX_INIT; -static pthread_t main_thread; - -static void -segv_redirect (int sig) -{ - if (pthread_self () == main_thread) - gnome_segv_handler (sig); - else { - pthread_kill (main_thread, sig); - - /* We can't return from the signal handler or the thread may - SEGV again. But we can't pthread_exit, because then the - thread may get cleaned up before bug-buddy can get a stack - trace. So we block by trying to lock a mutex we know is - already locked. */ - g_static_mutex_lock (&segv_mutex); - } -} - -static void -setup_segv_redirect (void) -{ - struct sigaction sa, osa; - - sigaction (SIGSEGV, NULL, &osa); - if (osa.sa_handler == SIG_DFL) - return; - - main_thread = pthread_self (); - - sa.sa_flags = 0; - sigemptyset (&sa.sa_mask); - sa.sa_handler = segv_redirect; - sigaction (SIGSEGV, &sa, NULL); - sigaction (SIGBUS, &sa, NULL); - sigaction (SIGFPE, &sa, NULL); - - sa.sa_handler = SIG_IGN; - sigaction (SIGXFSZ, &sa, NULL); - gnome_segv_handler = osa.sa_handler; - g_static_mutex_lock (&segv_mutex); -} - -int -main (int argc, char **argv) -{ - struct poptOption options[] = { - { "component", 'c', POPT_ARG_STRING, &default_component_id, 0, - N_("Start Evolution activating the specified component"), NULL }, - { "offline", '\0', POPT_ARG_NONE, &start_offline, 0, - N_("Start in offline mode"), NULL }, - { "online", '\0', POPT_ARG_NONE, &start_online, 0, - N_("Start in online mode"), NULL }, -#ifdef KILL_PROCESS_CMD - { "force-shutdown", '\0', POPT_ARG_NONE, &killev, 0, - N_("Forcibly shut down all evolution components"), NULL }, -#endif -#ifdef DEVELOPMENT - { "force-migrate", '\0', POPT_ARG_NONE, &force_migrate, 0, - N_("Forcibly re-migrate from Evolution 1.4"), NULL }, -#endif - { "debug", '\0', POPT_ARG_STRING, &evolution_debug_log, 0, - N_("Send the debugging output of all components to a file."), NULL }, -#ifdef ENABLE_MONO - { "disable-mono", '\0', POPT_ARG_NONE, &disable_mono, 0, - N_("Disable the mono plugin environment."), NULL }, -#endif - { "disable-eplugin", '\0', POPT_ARG_NONE, &disable_eplugin, 0, - N_("Disable loading of any plugins."), NULL }, - { "setup-only", '\0', POPT_ARG_NONE | POPT_ARGFLAG_DOC_HIDDEN, - &setup_only, 0, NULL, NULL }, - { NULL, '\0', 0, NULL, 0, NULL, NULL } - }; -#ifdef DEVELOPMENT - GConfClient *client; - gboolean skip_warning_dialog; -#endif - GSList *uri_list; - GValue popt_context_value = { 0, }; - GnomeProgram *program; - poptContext popt_context; - const char **args; - char *evolution_directory; - GList *icon_list; - - /* Make ElectricFence work. */ - free (malloc (10)); - - bindtextdomain (GETTEXT_PACKAGE, EVOLUTION_LOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); - - program = gnome_program_init (PACKAGE "-" BASE_VERSION, VERSION, LIBGNOMEUI_MODULE, argc, argv, - GNOME_PROGRAM_STANDARD_PROPERTIES, - GNOME_PARAM_POPT_TABLE, options, - GNOME_PARAM_HUMAN_READABLE_NAME, _("Evolution"), - NULL); - - if (start_online && start_offline) { - fprintf (stderr, _("%s: --online and --offline cannot be used together.\n Use %s --help for more information.\n"), - argv[0], argv[0]); - exit (1); - } - - if (killev) { - execl (EVOLUTION_TOOLSDIR "/killev", "killev", NULL); - /* Not reached */ - exit (0); - } - -#ifdef DEVELOPMENT - if (force_migrate) { - destroy_config (); - } -#endif - - setup_segv_redirect (); - - if (evolution_debug_log) { - int fd; - - fd = open (evolution_debug_log, O_WRONLY | O_CREAT | O_TRUNC, 0600); - if (fd) { - dup2 (fd, STDOUT_FILENO); - dup2 (fd, STDERR_FILENO); - close (fd); - } else - g_warning ("Could not set up debugging output file."); - } - - glade_init (); - e_cursors_init (); - e_icon_factory_init (); - e_passwords_init(); - - icon_list = e_icon_factory_get_icon_list ("stock_mail"); - if (icon_list) { - gtk_window_set_default_icon_list (icon_list); - g_list_foreach (icon_list, (GFunc) g_object_unref, NULL); - g_list_free (icon_list); - } - - /* FIXME We shouldn't be using the old directory at all I think */ - evolution_directory = g_build_filename (g_get_home_dir (), "evolution", NULL); - if (setup_only) - exit (0); - - g_free (evolution_directory); - - uri_list = NULL; - - g_value_init (&popt_context_value, G_TYPE_POINTER); - g_object_get_property (G_OBJECT (program), GNOME_PARAM_POPT_CONTEXT, &popt_context_value); - popt_context = g_value_get_pointer (&popt_context_value); - args = poptGetArgs (popt_context); - if (args != NULL) { - const char **p; - - for (p = args; *p != NULL; p++) - uri_list = g_slist_prepend (uri_list, (char *) *p); - } - uri_list = g_slist_reverse (uri_list); - g_value_unset (&popt_context_value); - - gnome_sound_init ("localhost"); - - if (!disable_eplugin) { -#ifdef ENABLE_MONO - if (!disable_mono && getenv("EVOLUTION_DISABLE_MONO") == NULL) - e_plugin_register_type(e_plugin_mono_get_type()); -#endif - e_plugin_register_type(e_plugin_lib_get_type()); - e_plugin_load_plugins(); - } - -#ifdef DEVELOPMENT - client = gconf_client_get_default (); - skip_warning_dialog = gconf_client_get_bool (client, "/apps/evolution/shell/skip_warning_dialog", NULL); - g_object_unref (client); - - if (!skip_warning_dialog && !getenv ("EVOLVE_ME_HARDER")) - show_development_warning(); - else -#endif - g_idle_add (idle_cb, uri_list); - - bonobo_main (); - - e_icon_factory_shutdown (); - g_object_unref (program); - gnome_sound_shutdown (); - e_cursors_shutdown (); - - return 0; -} diff --git a/shell/shell-errors.xml b/shell/shell-errors.xml deleted file mode 100644 index 8e7d8678c6..0000000000 --- a/shell/shell-errors.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<error-list domain="shell"> - - <error id="upgrade-nospace" type="error"> - <primary>Insufficient disk space for upgrade.</primary> - <secondary>Upgrading your data and settings will require upto {0} of disk space, but you only have {1} available. - -You will need to make more space available in your home directory before you can continue.</secondary> - <button stock="gtk-quit" response="GTK_RESPONSE_CANCEL"/> - </error> - - <error id="upgrade-failed" type="error"> - <primary>Upgrade from previous version failed: -{0}</primary> - <secondary>{1} - -If you choose to continue, you may not have access to some of your old data. -</secondary> - <button stock="gtk-quit" response="GTK_RESPONSE_CANCEL"/> - <button stock="gtk-ok" label="Continue" response="GTK_RESPONSE_OK"/> - </error> - - <error id="upgrade-remove-1-4" type="question" default="GTK_RESPONSE_CANCEL"> - <title>Delete old data from version {0}?</title> - <primary>Delete old data from version {0}?</primary> - <secondary>The previous version of evolution stored its data in a different location. - -If you choose to remove this data, the entire contents of the "evolution" directory will be removed permanently. If you choose to keep this data, then you may manually remove the contents of "evolution" at your convenience. -</secondary> - <button label="_Remind Me Later" response="GTK_RESPONSE_CANCEL"/> - <button label="_Keep Data" response="GTK_RESPONSE_ACCEPT"/> - <button stock="gtk-delete" response="GTK_RESPONSE_OK"/> - </error> - - <error id="upgrade-remove-1-4-confirm" type="warning" default="GTK_RESPONSE_CANCEL"> - <title>Really delete old data?</title> - <primary>Really delete old data?</primary> - <secondary>The entire contents of the "evolution" directory is about to be be permanently removed. - -It is suggested you manually verify that all of your mail, contact, and calendar data is present, and that this version of Evolution operates correctly before deleting this old data. - -Once deleted, you cannot downgrade to the previous version of Evolution without manual intervention. -</secondary> - <button stock="gtk-cancel" response="GTK_RESPONSE_CANCEL"/> - <button stock="gtk-delete" response="GTK_RESPONSE_OK"/> - </error> - - <error id="noshell" type="error"> - <title>Cannot start Evolution</title> - <primary>Evolution can not start.</primary> - <secondary>Your system configuration does not match your Evolution configuration. - -Click help for details</secondary> - <help uri="http://support.ximian.com/q?54"/> - <button stock="gtk-quit" response="GTK_RESPONSE_CANCEL"/> - </error> - - <error id="noshell-reason" type="error"> - <title>Cannot start Evolution</title> - <primary>Evolution can not start.</primary> - <secondary>Your system configuration does not match your Evolution configuration: - -{0} - -Click help for details.</secondary> - <help uri="http://support.ximian.com/q?54"/> - <button stock="gtk-quit" response="GTK_RESPONSE_CANCEL"/> - </error> - -</error-list> diff --git a/shell/shell-errors.xml.h b/shell/shell-errors.xml.h deleted file mode 100644 index 8f32940169..0000000000 --- a/shell/shell-errors.xml.h +++ /dev/null @@ -1,55 +0,0 @@ -/* shell:upgrade-nospace primary */ -char *s = N_("Insufficient disk space for upgrade."); -/* shell:upgrade-nospace secondary */ -char *s = N_("Upgrading your data and settings will require upto {0} of disk space, but you only have {1} available.\n" - "\n" - "You will need to make more space available in your home directory before you can continue."); -/* shell:upgrade-failed primary */ -char *s = N_("Upgrade from previous version failed:\n" - "{0}"); -/* shell:upgrade-failed secondary */ -char *s = N_("{1}\n" - "\n" - "If you choose to continue, you may not have access to some of your old data.\n" - ""); -char *s = N_("Continue"); -/* shell:upgrade-remove-1-4 title */ -char *s = N_("Delete old data from version {0}?"); -/* shell:upgrade-remove-1-4 primary */ -char *s = N_("Delete old data from version {0}?"); -/* shell:upgrade-remove-1-4 secondary */ -char *s = N_("The previous version of evolution stored its data in a different location.\n" - "\n" - "If you choose to remove this data, the entire contents of the \"evolution\" directory will be removed permanently. If you choose to keep this data, then you may manually remove the contents of \"evolution\" at your convenience.\n" - ""); -char *s = N_("_Remind Me Later"); -char *s = N_("_Keep Data"); -/* shell:upgrade-remove-1-4-confirm title */ -char *s = N_("Really delete old data?"); -/* shell:upgrade-remove-1-4-confirm primary */ -char *s = N_("Really delete old data?"); -/* shell:upgrade-remove-1-4-confirm secondary */ -char *s = N_("The entire contents of the \"evolution\" directory is about to be be permanently removed.\n" - "\n" - "It is suggested you manually verify that all of your mail, contact, and calendar data is present, and that this version of Evolution operates correctly before deleting this old data.\n" - "\n" - "Once deleted, you cannot downgrade to the previous version of Evolution without manual intervention.\n" - ""); -/* shell:noshell title */ -char *s = N_("Cannot start Evolution"); -/* shell:noshell primary */ -char *s = N_("Evolution can not start."); -/* shell:noshell secondary */ -char *s = N_("Your system configuration does not match your Evolution configuration.\n" - "\n" - "Click help for details"); -/* shell:noshell-reason title */ -char *s = N_("Cannot start Evolution"); -/* shell:noshell-reason primary */ -char *s = N_("Evolution can not start."); -/* shell:noshell-reason secondary */ -char *s = N_("Your system configuration does not match your Evolution configuration:\n" - "\n" - "{0}\n" - "\n" - "Click help for details."); |