AnjutaProfileManager

AnjutaProfileManager — Managers a stack of plugins profiles

Stability Level

Unstable, unless otherwise indicated

Properties

AnjutaPluginManager * plugin-manager Read / Write / Construct

Signals

void profile-popped Run First
void profile-pushed Run First

Types and Values

Object Hierarchy

    GObject
    ╰── AnjutaProfileManager

Includes

#include <libanjuta/anjuta-profile-manager.h>

Description

Anjuta uses up to three profiles. A system profile which contains mandatory plugins which are never unloaded. A user profile is used when no project is loaded and a project profile when one is loaded. If a second project is loaded, it is loaded in another instance of Anjuta. When a project is closed, Anjuta goes back to the user profile.

The profile manager can be in a frozen state where you can push or pop a profile from the stack without triggering a change of the profile.

Functions

anjuta_profile_manager_new ()

AnjutaProfileManager *
anjuta_profile_manager_new (AnjutaPluginManager *plugin_manager);

Create a new profile manager.

Parameters

plugin_manager

the AnjutaPluginManager used by all profiles.

 

Returns

the new AnjutaProfileManager object.


anjuta_profile_manager_push ()

gboolean
anjuta_profile_manager_push (AnjutaProfileManager *profile_manager,
                             AnjutaProfile *profile,
                             GError **error);

Add a new profile at the top of the profile manager stack. If the profile manager is not frozen, this new profile will be loaded immediatly and become the current profile.

Parameters

profile_manager

the AnjutaProfileManager object.

 

profile

the new AnjutaProfile.

 

error

error propagation and reporting.

 

Returns

TRUE on success, FALSE otherwise.


anjuta_profile_manager_pop ()

gboolean
anjuta_profile_manager_pop (AnjutaProfileManager *profile_manager,
                            AnjutaProfile *profile,
                            GError **error);

Remove a profile from the profile manager stack. If the manager is not frozen, only the current profile can be removed. It will be unloaded and the previous profile will be loaded. If the manager is frozen, the current profile or the last pushed profile can be removed.

Parameters

profile_manager

the AnjutaProfileManager object.

 

profile

the AnjutaProfile to remove.

 

error

error propagation and reporting.

 

Returns

TRUE on success, FALSE otherwise.


anjuta_profile_manager_freeze ()

void
anjuta_profile_manager_freeze (AnjutaProfileManager *profile_manager);

Freeze the plugin manager. In this state, plugins can be added and removed from the stack without triggering any change in the current profile. It is possible to freeze the manager several times but it will be back in its normal state only after as much call of anjuta_profile_manager_thaw().

Parameters

profile_manager

the AnjutaProfileManager object.

 

anjuta_profile_manager_thaw ()

gboolean
anjuta_profile_manager_thaw (AnjutaProfileManager *profile_manager,
                             GError **error);

Put back the plugin manager in its normal mode after calling anjuta_profile_manager_freeze(). It will load a new profile if one has been added while the manager was frozen.

Parameters

profile_manager

the AnjutaProfileManager object.

 

error

error propagation and reporting.

 

Returns

TRUE on success, FALSE otherwise.


anjuta_profile_manager_get_current ()

AnjutaProfile *
anjuta_profile_manager_get_current (AnjutaProfileManager *profile_manager);

Return the current profile.

Parameters

profile_manager

A AnjutaProfileManager object.

 

Returns

a AnjutaProfile object or NULL if the profile stack is empty.

[transfer none][allow-none]


anjuta_profile_manager_close ()

void
anjuta_profile_manager_close (AnjutaProfileManager *profile_manager);

Close the AnjutaProfileManager causing "descoped" to be emitted and all queued and previous profiles to be released. This function is to be used when destroying an Anjuta instance.

Parameters

profile_manager

A AnjutaProfileManager object.

 

Types and Values

struct AnjutaProfileManager

struct AnjutaProfileManager;

Stores stack of AnjutaProfile.


AnjutaProfileManagerPriv

typedef struct _AnjutaProfileManagerPriv AnjutaProfileManagerPriv;

Property Details

The “plugin-manager” property

  “plugin-manager”           AnjutaPluginManager *

The plugin manager to use for profile plugins.

Flags: Read / Write / Construct

Signal Details

The “profile-popped” signal

void
user_function (AnjutaProfileManager *profile_manager,
               AnjutaProfile        *profile,
               gpointer              user_data)

Emitted when a profile is removed from the stack. If the profile manager is not frozen, the current profile will be unloaded and the previous one will be loaded.

Parameters

profile_manager

a AnjutaProfileManager object.

 

profile

the current removed AnjutaProfile.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First


The “profile-pushed” signal

void
user_function (AnjutaProfileManager *profile_manager,
               AnjutaProfile        *profile,
               gpointer              user_data)

Emitted when a profile is added in the stack. If the profile manager is not frozen, the current profile will be unloaded and the new one will be loaded.

Parameters

profile_manager

a AnjutaProfileManager object.

 

profile

the new AnjutaProfile added.

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First