GtkSourceFileSaver

GtkSourceFileSaver — Save a GtkSourceBuffer into a file

Properties

GtkSourceBuffer * buffer Read / Write / Construct Only
GtkSourceCompressionType compression-type Read / Write / Construct
GtkSourceEncoding * encoding Read / Write / Construct
GtkSourceFile * file Read / Write / Construct Only
GtkSourceFileSaverFlags flags Read / Write / Construct
GFile * location Read / Write / Construct Only
GtkSourceNewlineType newline-type Read / Write / Construct

Object Hierarchy

    GEnum
    ╰── GtkSourceFileSaverError
    GFlags
    ╰── GtkSourceFileSaverFlags
    GObject
    ╰── GtkSourceFileSaver

Includes

#include <gtksourceview/gtksource.h>

Description

A GtkSourceFileSaver object permits to save a GtkSourceBuffer into a GFile.

A file saver should be used only for one save operation, including errors handling. If an error occurs, you can reconfigure the saver and relaunch the operation with gtk_source_file_saver_save_async().

Functions

gtk_source_file_saver_new ()

GtkSourceFileSaver *
gtk_source_file_saver_new (GtkSourceBuffer *buffer,
                           GtkSourceFile *file);

Creates a new GtkSourceFileSaver object. The buffer will be saved to the GtkSourceFile's location.

This constructor is suitable for a simple "save" operation, when the file already contains a non-NULL “location”.

Parameters

buffer

the GtkSourceBuffer to save.

 

file

the GtkSourceFile.

 

Returns

a new GtkSourceFileSaver object.

Since: 3.14


gtk_source_file_saver_new_with_target ()

GtkSourceFileSaver *
gtk_source_file_saver_new_with_target (GtkSourceBuffer *buffer,
                                       GtkSourceFile *file,
                                       GFile *target_location);

Creates a new GtkSourceFileSaver object with a target location. When the file saving is finished successfully, target_location is set to the file 's “location” property. If an error occurs, the previous valid location is still available in GtkSourceFile.

This constructor is suitable for a "save as" operation, or for saving a new buffer for the first time.

Parameters

buffer

the GtkSourceBuffer to save.

 

file

the GtkSourceFile.

 

target_location

the GFile where to save the buffer to.

 

Returns

a new GtkSourceFileSaver object.

Since: 3.14


gtk_source_file_saver_get_buffer ()

GtkSourceBuffer *
gtk_source_file_saver_get_buffer (GtkSourceFileSaver *saver);

Parameters

saver

a GtkSourceFileSaver.

 

Returns

the GtkSourceBuffer to save.

[transfer none]

Since: 3.14


gtk_source_file_saver_get_file ()

GtkSourceFile *
gtk_source_file_saver_get_file (GtkSourceFileSaver *saver);

Parameters

saver

a GtkSourceFileSaver.

 

Returns

the GtkSourceFile.

[transfer none]

Since: 3.14


gtk_source_file_saver_get_location ()

GFile *
gtk_source_file_saver_get_location (GtkSourceFileSaver *saver);

Parameters

saver

a GtkSourceFileSaver.

 

Returns

the GFile where to save the buffer to.

[transfer none]

Since: 3.14


gtk_source_file_saver_set_encoding ()

void
gtk_source_file_saver_set_encoding (GtkSourceFileSaver *saver,
                                    const GtkSourceEncoding *encoding);

Sets the encoding. If encoding is NULL, the UTF-8 encoding will be set. By default the encoding is taken from the GtkSourceFile.

Parameters

saver

a GtkSourceFileSaver.

 

encoding

the new encoding, or NULL for UTF-8.

[nullable]

Since: 3.14


gtk_source_file_saver_get_encoding ()

const GtkSourceEncoding *
gtk_source_file_saver_get_encoding (GtkSourceFileSaver *saver);

Parameters

saver

a GtkSourceFileSaver.

 

Returns

the encoding.

Since: 3.14


gtk_source_file_saver_set_newline_type ()

void
gtk_source_file_saver_set_newline_type
                               (GtkSourceFileSaver *saver,
                                GtkSourceNewlineType newline_type);

Sets the newline type. By default the newline type is taken from the GtkSourceFile.

Parameters

saver

a GtkSourceFileSaver.

 

newline_type

the new newline type.

 

Since: 3.14


gtk_source_file_saver_get_newline_type ()

GtkSourceNewlineType
gtk_source_file_saver_get_newline_type
                               (GtkSourceFileSaver *saver);

Parameters

saver

a GtkSourceFileSaver.

 

Returns

the newline type.

Since: 3.14


gtk_source_file_saver_set_compression_type ()

void
gtk_source_file_saver_set_compression_type
                               (GtkSourceFileSaver *saver,
                                GtkSourceCompressionType compression_type);

Sets the compression type. By default the compression type is taken from the GtkSourceFile.

Parameters

saver

a GtkSourceFileSaver.

 

compression_type

the new compression type.

 

Since: 3.14


gtk_source_file_saver_get_compression_type ()

GtkSourceCompressionType
gtk_source_file_saver_get_compression_type
                               (GtkSourceFileSaver *saver);

Parameters

saver

a GtkSourceFileSaver.

 

Returns

the compression type.

Since: 3.14


gtk_source_file_saver_set_flags ()

void
gtk_source_file_saver_set_flags (GtkSourceFileSaver *saver,
                                 GtkSourceFileSaverFlags flags);

Parameters

saver

a GtkSourceFileSaver.

 

flags

the new flags.

 

Since: 3.14


gtk_source_file_saver_get_flags ()

GtkSourceFileSaverFlags
gtk_source_file_saver_get_flags (GtkSourceFileSaver *saver);

Parameters

saver

a GtkSourceFileSaver.

 

Returns

the flags.

Since: 3.14


gtk_source_file_saver_save_async ()

void
gtk_source_file_saver_save_async (GtkSourceFileSaver *saver,
                                  gint io_priority,
                                  GCancellable *cancellable,
                                  GFileProgressCallback progress_callback,
                                  gpointer progress_callback_data,
                                  GDestroyNotify progress_callback_notify,
                                  GAsyncReadyCallback callback,
                                  gpointer user_data);

Saves asynchronously the buffer into the file. See the GAsyncResult documentation to know how to use this function.

Parameters

saver

a GtkSourceFileSaver.

 

io_priority

the I/O priority of the request. E.g. G_PRIORITY_LOW, G_PRIORITY_DEFAULT or G_PRIORITY_HIGH.

 

cancellable

optional GCancellable object, NULL to ignore.

[nullable]

progress_callback

function to call back with progress information, or NULL if progress information is not needed.

[scope notified][nullable]

progress_callback_data

user data to pass to progress_callback .

[closure]

progress_callback_notify

function to call on progress_callback_data when the progress_callback is no longer needed, or NULL.

[nullable]

callback

a GAsyncReadyCallback to call when the request is satisfied.

[scope async]

user_data

user data to pass to callback .

 

Since: 3.14


gtk_source_file_saver_save_finish ()

gboolean
gtk_source_file_saver_save_finish (GtkSourceFileSaver *saver,
                                   GAsyncResult *result,
                                   GError **error);

Finishes a file saving started with gtk_source_file_saver_save_async().

If the file has been saved successfully, the following GtkSourceFile properties will be updated: the location, the encoding, the newline type and the compression type.

Since the 3.20 version, gtk_text_buffer_set_modified() is called with FALSE if the file has been saved successfully.

Parameters

saver

a GtkSourceFileSaver.

 

result

a GAsyncResult.

 

error

a GError, or NULL.

 

Returns

whether the file was saved successfully.

Since: 3.14

Types and Values

GtkSourceFileSaver

typedef struct _GtkSourceFileSaver GtkSourceFileSaver;

GTK_SOURCE_FILE_SAVER_ERROR

#define GTK_SOURCE_FILE_SAVER_ERROR gtk_source_file_saver_error_quark ()

enum GtkSourceFileSaverError

An error code used with the GTK_SOURCE_FILE_SAVER_ERROR domain.

Members

GTK_SOURCE_FILE_SAVER_ERROR_INVALID_CHARS

The buffer contains invalid characters.

 

GTK_SOURCE_FILE_SAVER_ERROR_EXTERNALLY_MODIFIED

The file is externally modified.

 

Since: 3.14


enum GtkSourceFileSaverFlags

Flags to define the behavior of a GtkSourceFileSaver.

Members

GTK_SOURCE_FILE_SAVER_FLAGS_NONE

No flags.

 

GTK_SOURCE_FILE_SAVER_FLAGS_IGNORE_INVALID_CHARS

Ignore invalid characters.

 

GTK_SOURCE_FILE_SAVER_FLAGS_IGNORE_MODIFICATION_TIME

Save file despite external modifications.

 

GTK_SOURCE_FILE_SAVER_FLAGS_CREATE_BACKUP

Create a backup before saving the file.

 

Since: 3.14

Property Details

The “buffer” property

  “buffer”                   GtkSourceBuffer *

The GtkSourceBuffer to save. The GtkSourceFileSaver object has a weak reference to the buffer.

Flags: Read / Write / Construct Only

Since: 3.14


The “compression-type” property

  “compression-type”         GtkSourceCompressionType

The compression type.

Flags: Read / Write / Construct

Default value: GTK_SOURCE_COMPRESSION_TYPE_NONE

Since: 3.14


The “encoding” property

  “encoding”                 GtkSourceEncoding *

The file's encoding.

Flags: Read / Write / Construct

Since: 3.14


The “file” property

  “file”                     GtkSourceFile *

The GtkSourceFile. The GtkSourceFileSaver object has a weak reference to the file.

Flags: Read / Write / Construct Only

Since: 3.14


The “flags” property

  “flags”                    GtkSourceFileSaverFlags

File saving flags.

Flags: Read / Write / Construct

Since: 3.14


The “location” property

  “location”                 GFile *

The GFile where to save the buffer. By default the location is taken from the GtkSourceFile at construction time.

Flags: Read / Write / Construct Only

Since: 3.14


The “newline-type” property

  “newline-type”             GtkSourceNewlineType

The newline type.

Flags: Read / Write / Construct

Default value: GTK_SOURCE_NEWLINE_TYPE_LF

Since: 3.14