Commit Graph

129 Commits

Author SHA1 Message Date
14f82dde34 Move EAlert* and e-xml-utils references from other part of the code to libevolution-utils. 2012-03-03 09:02:33 -05:00
dff45d6cd8 Remove some unnecessary GConf crud. 2011-11-27 20:28:53 -06:00
ad1581d50c Remove e_shell_get_gconf_client().
No longer needed.
2011-11-24 12:29:35 -05:00
224f26b84d GtkApplication has some new EShell-like features.
I pushed a few EShell features up to GtkApplication for GTK+ 3.2,
so we can now trim off the redundancies in EShell.

1) GtkApplication has a new "window-added" signal which replaces
   EShell's own "window-created" signal.

2) GtkApplication has a new "window-removed" signal which replaces
   EShell's own "window-destroyed" signal.

3) gtk_application_get_windows() now returns a list of windows sorted
   by most recently focused, replacing e_shell_get_watched_windows().

4) GtkApplication now provides enough hooks to subclasses that we can
   remove e_shell_watch_window() and call gtk_application_add_window()
   directly.
2011-10-06 08:16:21 -04:00
cec324e80a Bug 650491 - Shell handles forwarding uris to existing process wrong
This adds a "handle-uris" GAction which takes a string array argument,
so the URIs can be passed to the primary process verbatim.
2011-05-22 12:40:31 -04:00
5399f35bbc Port EShell to GtkApplication. 2011-03-24 14:55:24 -04:00
59928e69ed Add e_shell_submit_alert().
An easy way to broadcast application-wide alerts to shell windows.
These alerts will persist in all current and future shell windows
until responded to (either programmatically or by the user).
2010-12-26 23:31:55 -05:00
e39dd931bc Bug #207580 - Allow new mail check on individual accounts 2010-11-25 18:10:14 +01:00
b4f97aea9b Bug 461769 - Add a --force-online command line option
Use it to override network availability detection as reported by
NetworkManager or other network monitoring software.
2010-10-13 16:55:07 -04:00
51d0fc6863 Bug 603468 - Improve handling of --quit option 2010-06-12 14:28:07 -04:00
9653887891 Coding style and whitespace cleanup. 2010-05-25 10:15:32 -04:00
a650f15f00 Store the initial view request and use that to decide whether to show
startup wizard or not. Show only for mail and not calendar.
2010-04-22 17:27:20 +05:30
2593383aec Detect MeeGo, and propagate settings variously.
Adapt widget naming on MeeGo for theming etc.
2010-04-12 14:50:44 +01:00
84ba2f958f Move "section" documentation out of header files. 2010-04-07 12:13:28 +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
2166e7f4c7 Add 'express mode' gconf setting 2010-03-13 20:49:49 -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
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
13d07fdb63 Bug #588093 - Allow import of local files from command line 2009-11-12 12:32:06 +01:00
e06b88c4fd Bug #594471 - Shouldn't call e_error_new/run with NULL 'parent' 2009-10-13 16:24:10 +02: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
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
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
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
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
8d8e4ac1c2 Tweak the EShell API.
Disable File -> Close Window when there's only one window.
Replace EMMessageBrowser with EMailBrowser.

svn path=/branches/kill-bonobo/; revision=37009
2009-01-07 18:23:46 +00:00
b7333387e8 - Fix NetworkManager connection tracking.
- Implement offline preparation as an EActivity that gets broadcast in
  a signal to shell modules.  Offline preparations are complete when the
  last EActivity reference is dropped.

- Bind some of the composer preferences to EShellSettings properties.

svn path=/branches/kill-bonobo/; revision=36875
2008-12-14 02:14:41 +00:00
b06cdfab92 Progress update:
- Tighter integration of GalViewInstance and EShellView.

  - EBinding.  Stolen from ExoBinding.  Lets you bind GObject properties
    together to automatically keep their values in sync.  This is a godsend.
    Added to e-util, but might even deserve a place in libedataserver.

  - EShellSettings.  This is the concept I blogged about.  Already
    started ripping apart em-mailer-prefs.c.  Others to follow.  Any
    place where we're monitoring GConf keys is a target.

  - Incremental progress on the calender and mailer.  Got EMFolderView
    somewhat working, but I think I'll be killing off EMFolderBrowser.



svn path=/branches/kill-bonobo/; revision=36795
2008-11-19 01:39:19 +00:00
8c0bd86d5f Rearranged some of the addressbook code to try and eliminate some circular
dependencies in our libraries.  The circular dependency between the composer
and the mail module is still causing me headaches.  And it doesn't help that
the addressbook and calendar also want to link to the composer.

svn path=/branches/kill-bonobo/; revision=36782
2008-11-14 03:56:01 +00:00
5ce1bbbbc8 Matthew Barnes <mbarnes@redhat.com> ** Fix for bug #548469 (Drop support for deprecated libnm-glib).
svn path=/trunk/; revision=36631
2008-10-17 05:18:16 +00:00
54b80a7271 Get the mail folder tree compiling, though I'm not yet sure why it's not
showing anything.  Probably something stupid.  Also enabled the composer.

svn path=/branches/kill-bonobo/; revision=36623
2008-10-17 03:48:03 +00:00
6d1aea1b23 Support migration in the new shell design.
Some code got duplicated for calendars and tasks.  Made a note to revisit.

svn path=/branches/kill-bonobo/; revision=36560
2008-10-05 04:12:09 +00:00
791c982c45 Update the headers on files I've created or completely rewritten to match
Sankar's LGPLv3 template.

svn path=/branches/kill-bonobo/; revision=36535
2008-10-01 21:51:10 +00:00
c6795be3a8 Continue documenting the new shell API.
svn path=/branches/kill-bonobo/; revision=36511
2008-10-01 03:48:51 +00:00
9515b98403 Saving progress. Experimenting with directory layout.
Saving progress.
Experimenting with directory layout.

svn path=/branches/kill-bonobo/; revision=36446
2008-09-24 22:53:30 +00:00
7d2c28c02c Begin documenting the new shell design.
svn path=/branches/kill-bonobo/; revision=36337
2008-09-15 14:55:41 +00:00
c0a255eb90 Merge revisions 36016:36303 from trunk.
svn path=/branches/kill-bonobo/; revision=36307
2008-09-11 15:34:29 +00:00
14fa5c8a8c Change License from GPL to LGPL. 2nd batch.
More changes to come.

svn path=/trunk/; revision=36247
2008-09-02 16:25:53 +00:00
cf3b010171 Progress update:
- Further refinements of the shell API.
  - Kill ESMenu and EUserCreatableItemsHandler.
  - Start ripping apart the addressbook component.


svn path=/branches/kill-bonobo/; revision=36093
2008-08-26 20:22:32 +00:00
2ef1b5bf42 Progress update:
- Get the "New" button and menu working.

  - Add a GtkMenuToolButton subclass called EMenuToolButton, which does
    some behind-the-scenes stuff to make the "New" button work properly.

  - Kill EComboButton and its associated a11y widget.


svn path=/branches/kill-bonobo/; revision=36045
2008-08-24 13:17:11 +00:00
fd6cd9e3a6 Progress update:
- Discard libnm-glib method of monitoring network connectivity.
  - Decided to make EShell a singleton GObject after all.  Makes the
    design cleaner, despite having to pass a singleton instance around.
  - Make the switcher button style persistent.


svn path=/branches/kill-bonobo/; revision=36043
2008-08-23 15:36:32 +00:00
f19618ac7f ** Fixes bug #508732
2008-08-18  Matthew Barnes  <mbarnes@redhat.com>

	** Fixes bug #508732

	* shell/e-shell.c:
	Add a "crash_recovery" flag, with accessor functions for it.

	* shell/e-shell-window (init_view):
	Check and reset the "crash_recovery" flag before creating a
	new shell view.  The components can use this flag to take
	steps to recover from the previous crash.

	* shell/apps_evolution_shell.schemas.in:
	Remove the "skip_recovery_dialog" and "recovery" keys.

	* shell/Evolution-Component.idl (createView):
	Add a "select_item" boolean parameter.

	* shell/main.c:
	Kill the crash recovery dialog.  Instead just set the crash
	recovery flag in e-shell appropriately.

	* mail/mail-component.c (impl_createView):
	Add a "select_item" argument for crash recovery, which we forward
	to EMFolderBrowser as a "suppress_message_selection" flag.

	* mail/em-folder-browser.c (emfb_set_folder):
	Suppress automatic message selection if we are recovering from a
	crash.

	* addressbook/gui/component/addressbook-component.c (impl_createView):
	* calendar/gui/calendar-component.c (impl_createView):
	* calendar/gui/memos-component.c (impl_createView):
	* calendar/gui/tasks-component.c (impl_createView):
	Add a "select_item" argument for crash recovery, which these
	components do not use.

	* help/C/evolution.xml:
	Remove the bit about crash recovery.


svn path=/trunk/; revision=36009
2008-08-18 04:37:15 +00:00
ed9c8cc740 Treat the Preferences window as a singleton.
Kill a bunch of Bonobo crud, which breaks compilation again.

svn path=/branches/kill-bonobo/; revision=35947
2008-08-09 12:05:51 +00:00