static void ide_file_settings_child_notify (IdeFileSettings *self, GParamSpec *pspec, IdeFileSettings *child) { g_assert (IDE_IS_FILE_SETTINGS (self)); g_assert (pspec != NULL); g_assert (IDE_IS_FILE_SETTINGS (child)); if (pspec->owner_type == IDE_TYPE_FILE_SETTINGS) g_object_notify_by_pspec (G_OBJECT (self), pspec); }
guint ide_file_settings_get_tab_width (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), 0); return priv->tab_width; }
GtkSourceNewlineType ide_file_settings_get_newline_type (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), 0); return priv->newline_type; }
const gchar * ide_file_settings_get_encoding (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), NULL); return priv->encoding; }
gboolean ide_file_settings_get_trim_trailing_whitespace (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), FALSE); return priv->trim_trailing_whitespace; }
IdeIndentStyle ide_file_settings_get_indent_style (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), 0); return priv->indent_style; }
guint ide_file_settings_get_right_margin_position (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), 80); return priv->right_margin_position; }
/** * ide_file_settings_get_settled: * @self: An #IdeFileSettings. * * Gets the #IdeFileSettings:settled property. * * This property is %TRUE when all of the children file settings have completed loading. * * Some file setting implementations require that various I/O be performed on disk in * the background. This property will change to %TRUE when all of the settings have * been loaded. * * Normally, this is not a problem, since the editor will respond to changes and update them * accordingly. However, if you are writing a tool that prints the file settings * (such as ide-list-file-settings), you probably want to wait until the values have * settled. * * Returns: %TRUE if all the settings have loaded. * * Since: 3.32 */ gboolean ide_file_settings_get_settled (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), FALSE); return (priv->unsettled_count == 0); }
/** * ide_file_settings_get_file: * @self: An #IdeFileSettings. * * Retrieves the underlying file that @self refers to. * * This may be used by #IdeFileSettings implementations to discover additional * information about the settings. For example, a modeline parser might load * some portion of the file looking for modelines. An editorconfig * implementation might look for ".editorconfig" files. * * Returns: (transfer none): An #IdeFile. */ IdeFile * ide_file_settings_get_file (IdeFileSettings *self) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_val_if_fail (IDE_IS_FILE_SETTINGS (self), NULL); return priv->file; }
static void ide_file_settings_set_language (IdeFileSettings *self, const gchar *language) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); priv->language = g_intern_string (language); }
static void _ide_file_settings_append (IdeFileSettings *self, IdeFileSettings *child) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (IDE_IS_FILE_SETTINGS (child)); g_signal_connect_object (child, "notify", G_CALLBACK (ide_file_settings_child_notify), self, G_CONNECT_SWAPPED); if (priv->children == NULL) priv->children = g_ptr_array_new_with_free_func (g_object_unref); g_ptr_array_add (priv->children, g_object_ref (child)); }
static void ide_file_settings_set_file (IdeFileSettings *self, IdeFile *file) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (IDE_IS_FILE (file)); if (ide_set_weak_pointer (&priv->file, file)) g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_FILE]); }
static void ide_file_settings_set_file (IdeFileSettings *self, GFile *file) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (G_IS_FILE (file)); g_return_if_fail (priv->file == NULL); priv->file = g_object_ref (file); }
void ide_file_settings_set_encoding (IdeFileSettings *self, const gchar *encoding) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); if (priv->encoding != encoding) { g_free (priv->encoding); priv->encoding = g_strdup (encoding); g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_ENCODING]); } }
void ide_file_settings_set_tab_width (IdeFileSettings *self, guint tab_width) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (tab_width > 0); g_return_if_fail (tab_width < 32); if (priv->tab_width != tab_width) { priv->tab_width = tab_width; g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_TAB_WIDTH]); } }
void ide_file_settings_set_newline_type (IdeFileSettings *self, GtkSourceNewlineType newline_type) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (newline_type >= GTK_SOURCE_NEWLINE_TYPE_LF); g_return_if_fail (newline_type <= GTK_SOURCE_NEWLINE_TYPE_CR_LF); if (priv->newline_type != newline_type) { priv->newline_type = newline_type; g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_NEWLINE_TYPE]); } }
void ide_file_settings_set_indent_style (IdeFileSettings *self, IdeIndentStyle indent_style) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (indent_style >= IDE_INDENT_STYLE_SPACES); g_return_if_fail (indent_style <= IDE_INDENT_STYLE_TABS); if (priv->indent_style != indent_style) { priv->indent_style = indent_style; g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_INDENT_STYLE]); } }
void ide_file_settings_set_right_margin_position (IdeFileSettings *self, guint right_margin_position) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (right_margin_position > 0); g_return_if_fail (right_margin_position <= 1000); if (priv->right_margin_position != right_margin_position) { priv->right_margin_position = right_margin_position; g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_RIGHT_MARGIN_POSITION]); } }
void ide_file_settings_set_trim_trailing_whitespace (IdeFileSettings *self, gboolean trim_trailing_whitespace) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); trim_trailing_whitespace = !!trim_trailing_whitespace; if (priv->trim_trailing_whitespace != trim_trailing_whitespace) { priv->trim_trailing_whitespace = trim_trailing_whitespace; g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_TRIM_TRAILING_WHITESPACE]); } }
void ide_file_settings_set_indent_width (IdeFileSettings *self, gint indent_width) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); g_return_if_fail (indent_width >= -1); g_return_if_fail (indent_width < 32); if (priv->indent_width != indent_width) { priv->indent_width = indent_width; g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_INDENT_WIDTH]); } }
void ide_file_settings_set_insert_trailing_newline (IdeFileSettings *self, gboolean insert_trailing_newline) { IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_return_if_fail (IDE_IS_FILE_SETTINGS (self)); insert_trailing_newline = !!insert_trailing_newline; if (priv->insert_trailing_newline != insert_trailing_newline) { priv->insert_trailing_newline = insert_trailing_newline; g_object_notify_by_pspec (G_OBJECT (self), gParamSpecs [PROP_INSERT_TRAILING_NEWLINE]); } }
static void ide_file_settings__init_cb (GObject *object, GAsyncResult *result, gpointer user_data) { g_autoptr(IdeFileSettings) self = user_data; IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); GAsyncInitable *initable = (GAsyncInitable *)object; g_autoptr(GError) error = NULL; g_assert (IDE_IS_FILE_SETTINGS (self)); g_assert (G_IS_ASYNC_INITABLE (initable)); if (!g_async_initable_init_finish (initable, result, &error)) g_warning ("%s", error->message); if (--priv->unsettled_count == 0) g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_SETTLED]); }
static void ide_file__file_settings_settled_cb (IdeFileSettings *file_settings, GParamSpec *pspec, gpointer user_data) { g_autoptr(GTask) task = user_data; IdeFile *self; IDE_ENTRY; g_assert (IDE_IS_FILE_SETTINGS (file_settings)); g_assert (G_IS_TASK (task)); self = g_task_get_source_object (task); g_assert (IDE_IS_FILE (self)); g_signal_handlers_disconnect_by_func (file_settings, G_CALLBACK (ide_file__file_settings_settled_cb), task); g_set_object (&self->file_settings, file_settings); g_task_return_pointer (task, g_object_ref (file_settings), g_object_unref); IDE_EXIT; }