EShell

EShell — the backbone of Evolution

Properties

EClientCache * client-cache Read
ECredentialsPrompter * credentials-prompter Read
gboolean express-mode Read / Write / Construct Only
gchar * geometry Write / Construct Only
gchar * module-directory Read / Write / Construct Only
gboolean network-available Read / Write
gboolean online Read / Write / Construct
ESourceRegistry * registry Read

Types and Values

enum EShellQuitReason
struct EShell

Object Hierarchy

    GObject
    ╰── GApplication
        ╰── GtkApplication
            ╰── EShell

Implemented Interfaces

EShell implements GActionGroup, GActionMap, GInitable and EExtensible.

Includes

#include <shell/e-shell.h>

Description

Functions

e_shell_get_default ()

EShell *
e_shell_get_default (void);

Returns the EShell created by <function>main()</function>.

Try to obtain the EShell from elsewhere if you can. This function is intended as a temporary workaround for when that proves difficult.

Returns

the EShell singleton


e_shell_load_modules ()

void
e_shell_load_modules (EShell *shell);

Loads all installed modules and performs some internal bookkeeping. This function should be called after creating the EShell instance but before initiating migration or starting the main loop.

Parameters

shell

an EShell

 

e_shell_get_shell_backends ()

GList *
e_shell_get_shell_backends (EShell *shell);

Returns a list of loaded EShellBackend instances. The list is owned by shell and should not be modified or freed.

Parameters

shell

an EShell

 

Returns

a list of loaded EShellBackend instances


e_shell_get_canonical_name ()

const gchar *
e_shell_get_canonical_name (EShell *shell,
                            const gchar *name);

Returns the canonical name for the EShellBackend whose name or alias is name .

Parameters

shell

an EShell

 

name

the name or alias of an EShellBackend

 

Returns

the canonical EShellBackend name


e_shell_get_backend_by_name ()

EShellBackend *
e_shell_get_backend_by_name (EShell *shell,
                             const gchar *name);

Returns the corresponding EShellBackend for the given name or alias, or NULL if name is not recognized.

Parameters

shell

an EShell

 

name

the name or alias of an EShellBackend

 

Returns

the EShellBackend named name , or NULL


e_shell_get_backend_by_scheme ()

EShellBackend *
e_shell_get_backend_by_scheme (EShell *shell,
                               const gchar *scheme);

Returns the EShellBackend that implements the given URI scheme, or NULL if scheme is not recognized.

Parameters

shell

an EShell

 

scheme

a URI scheme

 

Returns

the EShellBackend that implements scheme , or NULL


e_shell_get_client_cache ()

EClientCache *
e_shell_get_client_cache (EShell *shell);

Returns the EClientCache instance for shell .

Parameters

shell

an EShell

 

Returns

the EClientCache instance for shell


e_shell_get_registry ()

ESourceRegistry *
e_shell_get_registry (EShell *shell);

Returns the shell's ESourceRegistry which holds all ESource instances.

Parameters

shell

an EShell

 

Returns

the ESourceRegistry


e_shell_get_credentials_prompter ()

ECredentialsPrompter *
e_shell_get_credentials_prompter (EShell *shell);

Returns the shell's ECredentialsPrompter which responds to ESource instances credential requests.

Parameters

shell

an EShell

 

Returns

the ECredentialsPrompter

Since: 3.16


e_shell_allow_auth_prompt_for ()

void
e_shell_allow_auth_prompt_for (EShell *shell,
                               ESource *source);

Allows direct credentials prompt for source . That means, when the source will emit 'credentials-required' signal, then a user will be asked accordingly. When the auth prompt is disabled, aonly an EAlert is shown.

Parameters

shell

an EShell

 

source

an ESource

 

Since: 3.16


e_shell_create_shell_window ()

GtkWidget *
e_shell_create_shell_window (EShell *shell,
                             const gchar *view_name);

Creates a new EShellWindow. Use this function instead of e_shell_window_new() so that shell can properly configure the window.

Parameters

shell

an EShell

 

view_name

name of the initial shell view, or NULL

 

Returns

a new EShellWindow


e_shell_handle_uris ()

guint
e_shell_handle_uris (EShell *shell,
                     const gchar * const *uris,
                     gboolean do_import);

Emits the “handle-uri” signal for each URI.

Parameters

shell

an EShell

 

uris

NULL-terminated list of URIs

 

do_import

request an import of the URIs

 

Returns

the number of URIs successfully handled


e_shell_submit_alert ()

void
e_shell_submit_alert (EShell *shell,
                      EAlert *alert);

Broadcasts alert to all EShellWindow<!-- -->s. This should only be used for application-wide alerts such as a network outage. Submit view-specific alerts to the appropriate EShellContent instance.

Parameters

shell

an EShell

 

alert

an EAlert

 

e_shell_get_active_window ()

GtkWindow *
e_shell_get_active_window (EShell *shell);

Returns the most recently focused watched window, according to gtk_application_get_windows(). Convenient for finding a parent for a transient window.

Note the returned window is not necessarily an EShellWindow.

Parameters

shell

an EShell or NULL to use the default shell

 

Returns

the most recently focused watched window


e_shell_get_express_mode ()

gboolean
e_shell_get_express_mode (EShell *shell);

Returns TRUE if Evolution is in express mode.

Parameters

shell

an EShell

 

Returns

TRUE if Evolution is in express mode


e_shell_get_module_directory ()

const gchar *
e_shell_get_module_directory (EShell *shell);

Returns the directory from which EModule<!-- -->s were loaded.

Parameters

shell

an EShell

 

Returns

the EModule directory


e_shell_get_network_available ()

gboolean
e_shell_get_network_available (EShell *shell);

Returns TRUE if a network is available.

Parameters

shell

an EShell

 

Returns

TRUE if a network is available


e_shell_set_network_available ()

void
e_shell_set_network_available (EShell *shell,
                               gboolean network_available);

Sets whether a network is available. This is usually called in response to a status change signal from NetworkManager. If the network becomes unavailable while “online” is TRUE, the shell will force “online” to FALSE until the network becomes available again.

Parameters

shell

an EShell

 

network_available

whether a network is available

 

e_shell_lock_network_available ()

void
e_shell_lock_network_available (EShell *shell);

Locks the value of “network-available” to TRUE. Further attempts to set the property will be ignored.

This is used for the --force-online command-line option, which is intended to override the network availability status as reported by NetworkManager or other network monitoring software.

Parameters

shell

an EShell

 

e_shell_get_online ()

gboolean
e_shell_get_online (EShell *shell);

Returns TRUE if Evolution is online, FALSE if Evolution is offline. Evolution may be offline because the user elected to work offline, or because the network has become unavailable.

Parameters

shell

an EShell

 

Returns

TRUE if Evolution is online


e_shell_set_online ()

void
e_shell_set_online (EShell *shell,
                    gboolean online);

Asynchronously places Evolution in online or offline mode.

Parameters

shell

an EShell

 

online

TRUE to go online, FALSE to go offline

 

e_shell_get_preferences_window ()

GtkWidget *
e_shell_get_preferences_window (EShell *shell);

Returns the Evolution Preferences window.

Parameters

shell

an EShell

 

Returns

the preferences window


e_shell_event ()

void
e_shell_event (EShell *shell,
               const gchar *event_name,
               gpointer event_data);

The “event” signal acts as a cheap mechanism for broadcasting events to the rest of the application, such as new mail arriving. The event_name is used as the signal detail, and event_data may point to an object or data structure associated with the event.

Parameters

shell

an EShell

 

event_name

the name of the event

 

event_data

data associated with the event

 

e_shell_quit ()

gboolean
e_shell_quit (EShell *shell,
              EShellQuitReason reason);

Requests an application shutdown. This happens in two phases: the first is synchronous, the second is asynchronous.

In the first phase, the shell emits a “quit-requested” signal to potentially give the user a chance to cancel shutdown. If the user cancels shutdown, the function returns FALSE. Otherwise it proceeds into the second phase.

In the second phase, the shell emits a “prepare-for-quit” signal and immediately returns TRUE. Signal handlers may delay the actual application shutdown while they clean up resources, but there is no way to cancel shutdown at this point.

Consult the documentation for these two signals for details on how to handle them.

Parameters

shell

an EShell

 

reason

the reason for quitting

 

Returns

TRUE if shutdown is underway, FALSE if it was cancelled


e_shell_cancel_quit ()

void
e_shell_cancel_quit (EShell *shell);

This function may only be called from “quit-requested” signal handlers to prevent Evolution from quitting. Calling this will stop further emission of the “quit-requested” signal.

Note: This function has no effect during a “prepare-for-quit” signal emission.

Parameters

shell

an EShell

 

e_shell_requires_shutdown ()

gboolean
e_shell_requires_shutdown (EShell *shell);

Types and Values

enum EShellQuitReason

These values are passed in the “quit-requested” signal to indicate why the shell is requesting to shut down.

Members

E_SHELL_QUIT_ACTION

E_SHELL_WINDOW_ACTION_QUIT was activated.

 

E_SHELL_QUIT_LAST_WINDOW

The last watched window has been destroyed.

 

E_SHELL_QUIT_OPTION

The program was invoked with --quit. Extensions will never see this value because they are not loaded when --quit is given.

 

E_SHELL_QUIT_REMOTE_REQUEST

Another Evolution process requested we quit.

 

E_SHELL_QUIT_SESSION_REQUEST

The desktop session requested we quit.

 

struct EShell

struct EShell;

Contains only private data that should be read and manipulated using the functions below.

Property Details

The “client-cache” property

  “client-cache”             EClientCache *

Shared EClient instances.

Flags: Read


The “credentials-prompter” property

  “credentials-prompter”     ECredentialsPrompter *

The ECredentialsPrompter managing ESource credential requests.

Flags: Read

Since: 3.16


The “express-mode” property

  “express-mode”             gboolean

Express mode alters Evolution's user interface to be mode usable on devices with small screens.

Flags: Read / Write / Construct Only

Default value: FALSE


The “geometry” property

  “geometry”                 gchar *

User-specified initial window geometry string to apply to the first EShellWindow created.

Flags: Write / Construct Only

Default value: NULL


The “module-directory” property

  “module-directory”         gchar *

The directory from which to load EModule<!-- -->s.

Flags: Read / Write / Construct Only

Default value: NULL


The “network-available” property

  “network-available”        gboolean

Whether the network is available.

Flags: Read / Write

Default value: TRUE


The “online” property

  “online”                   gboolean

Whether the shell is online.

Flags: Read / Write / Construct

Default value: FALSE


The “registry” property

  “registry”                 ESourceRegistry *

The ESourceRegistry manages ESource instances.

Flags: Read

Signal Details

The “event” signal

void
user_function (EShell  *shell,
               gpointer event_data,
               gpointer user_data)

This signal is used to broadcast custom events to the entire application. The nature of event_data depends on the event being broadcast. The signal's detail denotes the event.

Parameters

shell

the EShell which emitted the signal

 

event_data

data associated with the event

 

user_data

user data set when the signal handler was connected.

 

Flags: Action


The “handle-uri” signal

gboolean
user_function (EShell  *shell,
               gchar   *uri,
               gpointer user_data)

Emitted when shell receives a URI to be handled, usually by way of a command-line argument. An EShellBackend should listen for this signal and try to handle the URI, usually by opening an editor window for the identified resource.

Parameters

shell

the EShell which emitted the signal

 

uri

the URI to be handled

 

user_data

user data set when the signal handler was connected.

 

Returns

TRUE if the URI could be handled, FALSE otherwise

Flags: Action


The “prepare-for-offline” signal

void
user_function (EShell    *shell,
               EActivity *activity,
               gpointer   user_data)

Emitted when the user elects to work offline. An EShellBackend should listen for this signal and make preparations for working in offline mode.

If preparations for working offline cannot immediately be completed (such as when synchronizing with a remote server), the EShellBackend should reference the activity until preparations are complete, and then unreference the activity . This will delay Evolution from actually going to offline mode until all backends have unreferenced activity .

Parameters

shell

the EShell which emitted the signal

 

activity

the EActivity for offline preparations

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “prepare-for-online” signal

void
user_function (EShell    *shell,
               EActivity *activity,
               gpointer   user_data)

Emitted when the user elects to work online. An EShellBackend should listen for this signal and make preparations for working in online mode.

If preparations for working online cannot immediately be completed (such as when re-connecting to a remote server), the EShellBackend should reference the activity until preparations are complete, and then unreference the activity . This will delay Evolution from actually going to online mode until all backends have unreferenced activity .

Parameters

shell

the EShell which emitted the signal

 

activity

the EActivity for offline preparations

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “prepare-for-quit” signal

void
user_function (EShell    *shell,
               EActivity *activity,
               gpointer   user_data)

Emitted when the user elects to quit the application, after “quit-requested”. An EShellBackend should listen for this signal and make preparations for shutting down.

If preparations for shutting down cannot immediately be completed (such as when there are uncompleted network operations), the EShellBackend should reference the activity until preparations are complete, and then unreference the activity . This will delay Evolution from actually shutting down until all backends have unreferenced activity .

Parameters

shell

the EShell which emitted the signal

 

activity

the EActivity for quit preparations

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “quit-requested” signal

void
user_function (EShell          *shell,
               EShellQuitReason reason,
               gpointer         user_data)

Emitted when the user elects to quit the application, before “prepare-for-quit”.

EShellBackend<!-- -->s and editor windows can listen for this signal to prompt the user to save changes or finish scheduled operations immediately (such as sending mail in Outbox). If the user elects to cancel, the signal handler should call e_shell_cancel_quit() to abort the quit.

Parameters

shell

the EShell which emitted the signal

 

reason

the reason for quitting

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First