Commit Graph

376 Commits

Author SHA1 Message Date
13fb16f279 Demonstrate extending the EExtension API.
Introduce e_extensible_list_extensions(), which provides extensible
objects access to their own extensions, or a subset of them.

Convert EShellBackend to an abstract EExtension subtype.  EShell will
load its extensions with e_extensible_load_extensions(), and then obtain
a list of EShellBackend extensions as follows:

    shell_backends = e_extensible_list_extensions (
            E_EXTENSIBLE (shell), E_TYPE_SHELL_BACKEND);

Because EShellBackend is abstract, its GType is skipped while traversing
the GType hierarchy to find EShell extensions.
2010-04-07 12:13:36 +01:00
84ba2f958f Move "section" documentation out of header files. 2010-04-07 12:13:28 +01:00
b674497bcc Convert NetworkManager integration to an EShell extension.
This demonstrates how to extend EShell without having to modify and
recompile e-shell.c.  If NetworkManager integration is enabled, the
extension is loaded automatically when the EShell is created.

The same pattern can be applied to integrate other network monitoring
software like ConnMan or Microsoft's Wireless Zero Configuration.
2010-04-07 12:13:02 +01:00
a718e57b25 Make EShell and related classes extensible. 2010-04-07 12:12:57 +01:00
7472c99b19 Disabling Gnome schemas for windows 2010-03-15 14:41:56 +01:00
d7494c8f16 Shell and UI manager cleanups.
Replace the EVO_EXPRESS environment variable with an --express command
line option.  (Note, this adds a new translatable string for --help.)

Add an EUIManager class with an "express-mode" property and custom load
functions that use our new "express" preprocessor.  This replaces the UI
manager functions in e-utils.c.

(Also going to see if I can get GTK+ to add an "add_ui_from_string"
method to GtkUIManagerClass that we can override.  Then we could just
call gtk_ui_manager_add_ui_from_string() and the preprocessor would
automatically do its thing and chain up.)

Add an "express-mode" read-only GObject property to EShell.

Add e_shell_configure_ui_manager() to e-shell-utils.c.  For now this
just creates a one-way property binding:

    EShell:express-mode -> EUIManager:express-mode

Call this immediately after e_ui_manager_new().  (EUIManager can't do
this itself because it lives too low in the dependency hierarchy and
doesn't know about EShell.)
2010-03-13 20:53:17 -05:00
d9be66b527 Removed obsolete method signatures in em-account-editor.h
Added em_account_editor_get_widget, and cleaned up the widget listing.
Cleaned the startup wizard code to find it's label by name
Added disabling of power-user 'indentity' frame in the first page express capplet.
2010-03-13 20:52:51 -05:00
78224aff38 Fix a typo 2010-03-13 20:49:50 -05:00
2166e7f4c7 Add 'express mode' gconf setting 2010-03-13 20:49:49 -05:00
c69e242109 More relocation cleanup EVOLUTION_ICONSDIR -> EVOLUTION_ICONDIR 2010-03-11 15:57:20 +01:00
f7e0850ff2 Remove some unnecessary terminal messages.
Don't need to see status messages on the terminal when going online,
offline or quitting.
2010-03-09 13:35:22 -05:00
baea9882fc Move icon theme path setup from main() to EShell.
So Anjal picks it up.
2009-12-14 15:37:17 -05:00
40ff31b2af Bug 603592 - X11 window roles should be set 2009-12-03 11:31:21 -05:00
ba05eccc8d Revise the EShell ref-leak check to not upset Valgrind. 2009-12-02 16:50:53 -05:00
38a616e8b7 Add an EShell:module-directory constructor property.
This tells EShell where to look for EModules.  Best practice is to
define the directory in your CPPFLAGS and then pass it to EShell at
instantiation time, like so:

Makefile.am:

    evolution_CPPFLAGS = \
            -DMODULEDIR=\""$(moduledir)"\"
            ...

main.c:

    shell = g_object_new (
            E_TYPE_SHELL, "module-directory", MODULEDIR, ...);
2009-12-02 00:57:44 -05:00
04aac07030 Make EShell more subclassable.
Add method pointers to EShellClass for all the EShell signals.

Also rework my previous --quit corner case workaround: we'll want to do
the full shutdown procedure after all, since the backends have already
spun up.
2009-11-26 13:32:00 -05:00
de85b6fbec Handle a missed corner case with --quit.
If --quit is given and no other Evolution process is running, bypass our
usual shutdown procedure and terminate the main loop immediately.
2009-11-26 10:41:53 -05:00
aa3152a2ec Add a --quit command-line option.
This -asks- an existing Evolution process to quit.  It is equivalent to
selecting File->Quit in the main window.  It does not kill the process.

My plan is to use this as part of a new --force-shutdown implementation.
2009-11-26 10:28:31 -05:00
20efbd7c8b Add a --geometry command-line option.
Applies the user's window geometry string to the first main window.
Suggested in bug #529565.
2009-11-25 13:37:13 -05:00
13d07fdb63 Bug #588093 - Allow import of local files from command line 2009-11-12 12:32:06 +01:00
86ecfc5053 Convert some "Save As" actions to run asynchronously.
This introduces e-shell-utils for miscellaneous utility functions
that integrate with the shell or shell settings.  First function
is e_shell_run_save_dialog(), which automatically remembers the
selected folder in the file chooser dialog.

Also, kill some redundant save dialog functions, as well as some
write-this-string-to-disk functions that block.
2009-11-07 14:01:46 -05:00
c15a8e695a Clean up e_shell_get_active_window()
Clarify the documentation and simplify the logic.
2009-10-21 00:02:08 -04:00
e06b88c4fd Bug #594471 - Shouldn't call e_error_new/run with NULL 'parent' 2009-10-13 16:24:10 +02:00
fa9051e040 Finish killing Bonobo. 2009-09-08 14:53:45 -04:00
8f0093b0d8 Start migration -after- loading all modules and plugins. 2009-09-01 16:52:04 -04:00
06d9b59770 Fix for few compiler warnings 2009-08-31 11:47:12 +02:00
2b8c7c62aa Exit if no command-line URIs are handled. 2009-08-24 23:08:13 -04:00
672adf12a0 Fix compiler warnings and deprecated GTK+ API usage. 2009-08-16 11:42:26 -04:00
59c73e97a6 Update GConf when the online/offline button is clicked. 2009-08-13 13:24:44 -04:00
fac731e735 Simplify binding EShellSettings properties to GConf keys. 2009-07-31 14:02:14 -04:00
e5b7a6d28c Finish EggSMClient shell integration. 2009-07-15 16:40:04 -04:00
0d6061a4eb Add a "quit-requested" signal to the shutdown protocol.
The contact and contact-list editors now demonstrate this part of the
shutdown protocol.  They listen for the "quit-requested" signal from the
shell and prompt to save changes, discard changes or cancel.  If the user
cancels, the editor calls e_shell_cancel_quit() to do just that.
2009-07-12 16:00:54 -04:00
c4d1d29eaa Fix a problem with EShell initialization. 2009-07-12 08:59:41 -04:00
10eab23500 Implement the shutdown protocol and stub in session management.
The shutdown protocol is modelled after online/offline preparation.
Session management code is copied from libegg.  Not yet used.
2009-07-10 18:47:29 -04:00
8dc6bbd250 Get the "startup-wizard" plugin working again. 2009-06-30 10:47:59 -04:00
f4d748a85c Fix similar weak pointer issues throughout. 2009-06-19 18:43:29 -04:00
cc3a98fc1a Merge branch 'master' into kill-bonobo
Conflicts:
	a11y/widgets/ea-combo-button.c
	a11y/widgets/ea-combo-button.h
	addressbook/gui/component/addressbook-component.c
	addressbook/gui/component/addressbook-component.h
	addressbook/gui/component/addressbook-view.c
	addressbook/gui/component/addressbook-view.h
	addressbook/gui/component/component-factory.c
	addressbook/gui/widgets/e-addressbook-view.c
	addressbook/gui/widgets/eab-contact-display.c
	addressbook/gui/widgets/eab-gui-util.h
	addressbook/gui/widgets/eab-menu.c
	addressbook/gui/widgets/eab-menu.h
	addressbook/gui/widgets/eab-popup-control.c
	addressbook/gui/widgets/eab-popup-control.h
	addressbook/gui/widgets/eab-popup.c
	addressbook/gui/widgets/eab-popup.h
	calendar/gui/cal-search-bar.c
	calendar/gui/calendar-commands.c
	calendar/gui/calendar-component.c
	calendar/gui/comp-editor-factory.c
	calendar/gui/comp-editor-factory.h
	calendar/gui/control-factory.c
	calendar/gui/dialogs/comp-editor.c
	calendar/gui/e-cal-component-memo-preview.c
	calendar/gui/e-cal-component-memo-preview.h
	calendar/gui/e-calendar-table.c
	calendar/gui/e-memo-table.c
	calendar/gui/e-memos.c
	calendar/gui/e-tasks.c
	calendar/gui/gnome-cal.c
	calendar/gui/gnome-cal.h
	calendar/gui/itip-bonobo-control.c
	calendar/gui/itip-bonobo-control.h
	calendar/gui/main.c
	calendar/gui/memos-component.c
	calendar/gui/memos-control.c
	calendar/gui/memos-control.h
	calendar/gui/migration.c
	calendar/gui/migration.h
	calendar/gui/tasks-component.c
	calendar/gui/tasks-control.c
	calendar/importers/main.c
	composer/Makefile.am
	composer/e-composer-header-table.c
	composer/e-composer-header.c
	composer/e-composer-header.h
	composer/e-composer-name-header.c
	composer/e-composer-private.c
	composer/e-composer-text-header.c
	composer/e-msg-composer.c
	composer/e-msg-composer.h
	e-util/e-corba-utils.h
	e-util/e-logger.c
	e-util/e-logger.h
	e-util/e-util-labels.c
	e-util/e-util-labels.h
	em-format/em-format.c
	mail/Makefile.am
	mail/e-mail-shell-migrate.c
	mail/em-account-editor.c
	mail/em-account-editor.h
	mail/em-composer-prefs.c
	mail/em-composer-utils.c
	mail/em-composer-utils.h
	mail/em-folder-browser.c
	mail/em-folder-tree-model.c
	mail/em-folder-tree.c
	mail/em-folder-tree.h
	mail/em-folder-utils.c
	mail/em-folder-utils.h
	mail/em-folder-view.c
	mail/em-format-html-display.c
	mail/em-format-html.c
	mail/em-mailer-prefs.c
	mail/em-mailer-prefs.h
	mail/em-message-browser.c
	mail/em-message-browser.h
	mail/em-network-prefs.h
	mail/em-popup.c
	mail/em-utils.c
	mail/importers/Makefile.am
	mail/mail-component-factory.c
	mail/mail-component.c
	mail/mail-config-factory.c
	mail/mail-config-factory.h
	mail/mail-config.c
	mail/mail-dialogs.glade
	mail/mail-types.h
	plugins/calendar-weather/calendar-weather.c
	plugins/mail-account-disable/mail-account-disable.c
	plugins/select-one-source/select-one-source.c
	po/POTFILES.in
	shell/e-component-registry.c
	shell/e-component-registry.h
	shell/e-component-view.c
	shell/e-component-view.h
	shell/e-corba-config-page.c
	shell/e-corba-config-page.h
	shell/e-shell-constants.h
	shell/e-shell-settings-dialog.c
	shell/e-shell-settings-dialog.h
	shell/e-shell-window-commands.c
	shell/e-shell-window.c
	shell/e-shell.h
	shell/e-sidebar.c
	shell/e-sidebar.h
	shell/e-user-creatable-items-handler.c
	shell/e-user-creatable-items-handler.h
	shell/es-menu.c
	shell/es-menu.h
	shell/evolution-component.h
	shell/evolution-config-control.c
	shell/evolution-config-control.h
	shell/evolution-listener.c
	shell/evolution-listener.h
	shell/evolution-shell-component-utils.c
	shell/evolution-shell-component-utils.h
	shell/importer/evolution-importer-client.c
	shell/importer/evolution-importer-client.h
	shell/importer/evolution-importer-listener.c
	shell/importer/evolution-importer-listener.h
	shell/importer/evolution-importer.c
	shell/importer/evolution-importer.h
	shell/importer/evolution-intelligent-importer.c
	shell/importer/evolution-intelligent-importer.h
	shell/importer/intelligent.c
	shell/main.c
	shell/test/evolution-test-component.c
	shell/test/evolution-test-component.h
	widgets/menus/gal-view-instance.c
	widgets/menus/gal-view-menus.c
	widgets/menus/gal-view-menus.h
	widgets/misc/Makefile.am
	widgets/misc/e-activity-handler.c
	widgets/misc/e-activity-handler.h
	widgets/misc/e-charset-picker.c
	widgets/misc/e-combo-button.c
	widgets/misc/e-combo-button.h
	widgets/misc/e-config-page.h
	widgets/misc/e-dropdown-button.c
	widgets/misc/e-dropdown-button.h
	widgets/misc/e-filter-bar.c
	widgets/misc/e-info-label.c
	widgets/misc/e-info-label.h
	widgets/misc/e-multi-config-dialog.c
	widgets/misc/e-multi-config-dialog.h
	widgets/misc/e-search-bar.c
	widgets/misc/e-search-bar.h
	widgets/misc/e-task-bar.c
	widgets/misc/e-task-bar.h
	widgets/misc/e-task-widget.c
	widgets/misc/e-task-widget.h
	widgets/misc/test-dropdown-button.c
	widgets/misc/test-error.c
	widgets/misc/test-info-label.c
	widgets/table/e-table-example-1.c
2009-05-27 08:37:17 -04:00
e4afd3f9fb Remove trailing whitespace, again. 2009-05-26 23:21:02 -04:00
caa8621351 Convert EShellModule to EShellBackend
Split the GTypeModule loader out of EShellModule as EModule, and rename
EShellModule to EShellBackend.  Backends (formerly modules) should now
subclass EShellBackend.

This commit converts EShell but breaks all the shell backends.
2009-05-07 07:21:57 -04:00
e42f276527 Bug 577929 – Consolidate marshallers
Consolidate all marshalling specifications to e-util/e-marshal.list.
This reduces code duplication and makes it slightly easier to locate
unused marshallers.
2009-04-23 10:02:07 -04:00
582ec45a59 Make the selected attachment view and file chooser folder persistent.
svn path=/branches/kill-bonobo/; revision=37523
2009-04-14 19:03:37 +00:00
8a1f639a67 Saving progress again on the attachment rewrite.
svn path=/branches/kill-bonobo/; revision=37482
2009-03-30 03:38:36 +00:00
4cec9fc716 Saving progress on a massive attachment handling rewrite.
svn path=/branches/kill-bonobo/; revision=37465
2009-03-20 19:06:59 +00:00
567453082a Fix crash on exit.
svn path=/branches/kill-bonobo/; revision=37297
2009-02-19 16:30:25 +00:00
1a40acf554 Documentation tweaks.
Have e_shell_get_preferences_window() take an EShell argument.

svn path=/branches/kill-bonobo/; revision=37294
2009-02-19 06:22:32 +00:00
0110c94c6a Rename EShell:online-mode to EShell:online and update docs.
Use EBindings instead of a notify callback to keep other widgets and
actions synchronized with EShell:online.  Cleaner and less error prone.

svn path=/branches/kill-bonobo/; revision=37293
2009-02-19 05:52:33 +00:00
fd564be320 Clean up the EMFormat stack. Add some GObject properties to bind to.
Add some handy color conversion functions to e-util.

svn path=/branches/kill-bonobo/; revision=37290
2009-02-19 01:36:04 +00:00
70fce0bbb0 When invoking Evolution with URIs on the command-line (e.g. mailto:),
terminate after all the windows for those URIs have been closed.

svn path=/branches/kill-bonobo/; revision=37157
2009-01-28 22:28:57 +00:00
533d59e2cd Add unique-1.0 requirement (blessed external dependency).
Make EShell a subclass of UniqueApp and handle single-instance negotiation.

When another Evolution process is running:

  - Running "evolution" will simply present the existing windows.

  - Running "evolution -c <view>" will open a shell window set to <view>.

  - Running "evolution <uri>" will open an appropriate window for <uri>.

The second process will then terminate immediately.


svn path=/branches/kill-bonobo/; revision=37147
2009-01-28 17:19:34 +00:00
4b140a897f Make action group management in shell windows more elegant.
svn path=/branches/kill-bonobo/; revision=37137
2009-01-27 05:22:57 +00:00