## ide-project ide-project |

## Functions

gchar * | ide_project_create_id ()
IdeProjectItem * | ide_project_get_root ()
const gchar * | ide_project_get_name ()
const gchar * | ide_project_get_id ()
void | ide_project_reader_lock ()
void | ide_project_reader_unlock ()
void | ide_project_writer_lock ()
void | ide_project_writer_unlock ()
void | ide_project_rename_file_async ()
gboolean | ide_project_rename_file_finish ()
void | ide_project_trash_file_async ()
gboolean | ide_project_trash_file_finish ()

## Properties

gchar * | id | Read
gchar * | name | Read
IdeProjectItem * | root | Read / Write / Construct Only

## Signals

void | file-renamed | Run Last
void | file-trashed | Run Last

## Types and Values

#define | IDE_TYPE_PROJECT
| IdeProject

## Object Hierarchy

        GObject
        ╰── IdeObject
            ╰── IdeProject

## Description

## Functions

### ide_project_create_id ()

    gchar *
    ide_project_create_id (const gchar *name);

Escapes the project name into something suitable using as an id. This can be uesd to determine the directory name when the project name should be used.

#### Parameters

name | the name of the project |

#### Returns

a new string.

[transfer full]

Since: 3.28

### ide_project_get_root ()

    IdeProjectItem *
    ide_project_get_root (IdeProject *self);

Retrieves the root item of the project tree.

You must be holding the reader lock while calling and using the result of this function. Other thread may be accessing or modifying the tree without your knowledge. See `ide_project_reader_lock()` and `ide_project_reader_unlock()` for more information.

If you need to modify the tree, you must hold a writer lock that has been acquired with `ide_project_writer_lock()` and released with `ide_project_writer_unlock()` when you are no longer modifiying the tree.

#### Returns

An IdeProjectItem.

[transfer none]

### ide_project_get_name ()

    const gchar *
    ide_project_get_name (IdeProject *self);

### ide_project_get_id ()

    const gchar *
    ide_project_get_id (IdeProject *self);

### ide_project_reader_lock ()

    void
    ide_project_reader_lock (IdeProject *self);

### ide_project_reader_unlock ()

    void
    ide_project_reader_unlock (IdeProject *self);

### ide_project_writer_lock ()

    void
    ide_project_writer_lock (IdeProject *self);

### ide_project_writer_unlock ()

    void
    ide_project_writer_unlock (IdeProject *self);

### ide_project_rename_file_async ()

    void
    ide_project_rename_file_async (IdeProject *self,
                                   GFile *orig_file,
                                   GFile *new_file,
                                   GCancellable *cancellable,
                                   GAsyncReadyCallback callback,
                                   gpointer user_data);

### ide_project_rename_file_finish ()

    gboolean
    ide_project_rename_file_finish (IdeProject *self,
                                    GAsyncResult *result,
                                    GError **error);

### ide_project_trash_file_async ()

    void
    ide_project_trash_file_async (IdeProject *self,
                                  GFile *file,
                                  GCancellable *cancellable,
                                  GAsyncReadyCallback callback,
                                  gpointer user_data);

### ide_project_trash_file_finish ()

    gboolean
    ide_project_trash_file_finish (IdeProject *self,
                                   GAsyncResult *result,
                                   GError **error);

## Types and Values

### IDE_TYPE_PROJECT

    #define IDE_TYPE_PROJECT (ide_project_get_type())

### IdeProject

    typedef struct _IdeProject IdeProject;

## Property Details

### The `“id”` property

      “id”                       gchar *

The unique project identifier.

Flags: Read

Default value: NULL

### The `“name”` property

      “name”                     gchar *

The name of the project.

Flags: Read

Default value: NULL

### The `“root”` property

      “root”                     IdeProjectItem *

The root object for the project.

Flags: Read / Write / Construct Only

## Signal Details

### The `“file-renamed”` signal

    void
    user_function (IdeProject *ideproject,
                   GFile      *arg1,
                   GFile      *arg2,
                   gpointer    user_data)

Flags: Run Last

### The `“file-trashed”` signal

    void
    user_function (IdeProject *ideproject,
                   GFile      *arg1,
                   gpointer    user_data)

Flags: Run Last