EShellBackend

EShellBackend — dynamically loaded capabilities

Properties

gboolean busy Read
gchar * prefer-new-item Read / Write

Signals

Types and Values

Object Hierarchy

    GObject
    ╰── EExtension
        ╰── EShellBackend

Includes

#include <shell/e-shell-backend.h>

Description

Functions

e_shell_backend_compare ()

gint
e_shell_backend_compare (EShellBackend *shell_backend_a,
                         EShellBackend *shell_backend_b);

Using the <structfield>sort_order</structfield> field from both backends' EShellBackendClass, compares shell_backend_a with shell_mobule_b and returns -1, 0 or +1 if shell_backend_a is found to be less than, equal to or greater than shell_backend_b , respectively.

Parameters

shell_backend_a

an EShellBackend

 

shell_backend_b

an EShellBackend

 

Returns

-1, 0 or +1, for a less than, equal to or greater than result


e_shell_backend_get_config_dir ()

const gchar *
e_shell_backend_get_config_dir (EShellBackend *shell_backend);

Returns the absolute path to the configuration directory for shell_backend . The string is owned by shell_backend and should not be modified or freed.

Parameters

shell_backend

an EShellBackend

 

Returns

the backend's configuration directory


e_shell_backend_get_data_dir ()

const gchar *
e_shell_backend_get_data_dir (EShellBackend *shell_backend);

Returns the absolute path to the data directory for shell_backend . The string is owned by shell_backend and should not be modified or freed.

Parameters

shell_backend

an EShellBackend

 

Returns

the backend's data directory


e_shell_backend_get_shell ()

struct _EShell *
e_shell_backend_get_shell (EShellBackend *shell_backend);

Returns the EShell singleton.

Parameters

shell_backend

an EShellBackend

 

Returns

the EShell


e_shell_backend_add_activity ()

void
e_shell_backend_add_activity (EShellBackend *shell_backend,
                              EActivity *activity);

Emits an “activity-added” signal and tracks the activity until it is finalized.

Parameters

shell_backend

an EShellBackend

 

activity

an EActivity

 

e_shell_backend_is_busy ()

gboolean
e_shell_backend_is_busy (EShellBackend *shell_backend);

Returns TRUE if any activities passed to e_shell_backend_add_activity() are still in progress, FALSE if the shell_backend is currently idle.

Parameters

shell_backend

an EShellBackend

 

Returns

TRUE if activities are still in progress


e_shell_backend_set_prefer_new_item ()

void
e_shell_backend_set_prefer_new_item (EShellBackend *shell_backend,
                                     const gchar *prefer_new_item);

Sets name of a preferred item in New toolbar button. Use NULL or an empty string for no preference.

Parameters

shell_backend

an EShellBackend

 

prefer_new_item

name of an item

 

Since: 3.4


e_shell_backend_get_prefer_new_item ()

const gchar *
e_shell_backend_get_prefer_new_item (EShellBackend *shell_backend);

Parameters

shell_backend

an EShellBackend

 

Returns

Name of a preferred item in New toolbar button, NULL or an empty string for no preference.

Since: 3.4


e_shell_backend_cancel_all ()

void
e_shell_backend_cancel_all (EShellBackend *shell_backend);

Cancels all activities passed to e_shell_backend_add_activity() that have not already been finalized. Note that an EActivity can only be cancelled if it was given a GCancellable object.

Also, assuming all activities are cancellable, there may still be a delay before e_shell_backend_is_busy() returns FALSE, because some activities may not be able to respond to the cancellation request immediately. Connect to the "notify::busy" signal if you need notification of shell_backend becoming idle.

Parameters

shell_backend

an EShellBackend

 

e_shell_backend_start ()

void
e_shell_backend_start (EShellBackend *shell_backend);

Tells the shell_backend to begin loading data or running background tasks which may consume significant resources. This gets called in reponse to the user switching to the corresponding EShellView for the first time. The function is idempotent for each shell_backend .

Parameters

shell_backend

an EShellBackend

 

e_shell_backend_is_started ()

gboolean
e_shell_backend_is_started (EShellBackend *shell_backend);

Returns whether e_shell_backend_start() was called for shell_backend .

Parameters

shell_backend

an EShellBackend

 

Returns

whether shell_backend is started


e_shell_backend_migrate ()

gboolean
e_shell_backend_migrate (EShellBackend *shell_backend,
                         gint major,
                         gint minor,
                         gint micro,
                         GError **error);

Attempts to migrate data and settings from version major.minor.micro. Returns TRUE if the migration was successful or if no action was necessary. Returns FALSE and sets error if the migration failed.

Parameters

shell_backend

an EShellBackend

 

major

major part of version to migrate from

 

minor

minor part of version to migrate from

 

micro

micro part of version to migrate from

 

error

return location for a GError, or NULL

 

Returns

TRUE if successful, FALSE otherwise

Types and Values

struct EShellBackend

struct EShellBackend;

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


struct EShellBackendClass

struct EShellBackendClass {
	EExtensionClass parent_class;

	GType shell_view_type;

	const gchar *name;
	const gchar *aliases;
	const gchar *schemes;
	gint sort_order;
	const gchar *preferences_page;

	/* Methods */
	void		(*start)		(EShellBackend *shell_backend);
	gboolean (*migrate)		(EShellBackend *shell_backend,
						 gint major,
						 gint minor,
						 gint micro,
						 GError **error);
	const gchar * (*get_config_dir) (EShellBackend *shell_backend);
	const gchar * (*get_data_dir)		(EShellBackend *shell_backend);
};

EShellBackendClass contains a number of important settings for subclasses.

Members

GType shell_view_type;

GType for the corresponding EShellView subclass.

 

const gchar *name;

The name of the backend. Also becomes the name of the corresponding EShellView subclass that the backend will register.

 

const gchar *aliases;

Colon-separated list of aliases that can be used when referring to a backend by name.

 

const gchar *schemes;

Colon-separated list of URI schemes. The EShell will forward command-line URIs to the appropriate backend based on this list.

 

gint sort_order;

Used to determine the order of backends listed in the main menu and in the switcher. See e_shell_backend_compare().

 

const gchar *preferences_page;

   

start ()

Method for notifying the backend to begin loading data and running background tasks. This is called just before the first instantiation of the corresponding EShellView subclass. It allows the backend to delay initialization steps that consume significant resources until they are actually needed.

 

migrate ()

Method for notifying the backend to migrate data and settings from the given version. Returns TRUE if the migration was successful or if no action was necessary. Returns FALSE and sets a GError if the migration failed.

 

get_config_dir ()

   

get_data_dir ()

   

Property Details

The “busy” property

  “busy”                     gboolean

Whether any activities are still in progress.

Flags: Read

Default value: FALSE


The “prefer-new-item” property

  “prefer-new-item”          gchar *

Name of an item to prefer in New toolbar button; can be NULL

Flags: Read / Write

Default value: NULL

Signal Details

The “activity-added” signal

void
user_function (EShellBackend *shell_backend,
               EActivity     *activity,
               gpointer       user_data)

Broadcasts a newly added activity.

Parameters

shell_backend

the EShellBackend that emitted the signal

 

activity

an EActivity

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last