/** * ide_rename_provider_rename_finish: * @self: An #IdeRenameProvider * @result: a #GAsyncResult * @edits: (out) (transfer full) (element-type IdeTextEdit) (optional): A location * for a #GPtrArray of #IdeTextEdit instances. * @error: a location for a #GError, or %NULL. * * Completes a request to ide_rename_provider_rename_async(). * * You can use the resulting #GPtrArray of #IdeTextEdit instances to edit the * project to complete the symbol rename. * * Returns: %TRUE if successful and @edits is set. Otherwise %FALSE and @error * is set. * * Since: 3.32 */ gboolean ide_rename_provider_rename_finish (IdeRenameProvider *self, GAsyncResult *result, GPtrArray **edits, GError **error) { gboolean ret; IDE_ENTRY; g_return_val_if_fail (IDE_IS_RENAME_PROVIDER (self), FALSE); g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE); ret = IDE_RENAME_PROVIDER_GET_IFACE (self)->rename_finish (self, result, edits, error); IDE_RETURN (ret); }
static gboolean ide_git_vcs__changed_timeout_cb (gpointer user_data) { IdeGitVcs *self = user_data; IDE_ENTRY; g_assert (IDE_IS_GIT_VCS (self)); self->changed_timeout = 0; ide_git_vcs_reload_async (self, NULL, handle_reload_from_changed_timeout, NULL); IDE_RETURN (G_SOURCE_REMOVE); }
static gboolean ide_git_vcs_reload_finish (IdeGitVcs *self, GAsyncResult *result, GError **error) { GTask *task = (GTask *)result; gboolean ret; IDE_ENTRY; g_return_val_if_fail (IDE_IS_GIT_VCS (self), FALSE); self->reloading = FALSE; g_signal_emit (self, gSignals [RELOADED], 0, self->change_monitor_repository); ret = g_task_propagate_boolean (task, error); IDE_RETURN (ret); }
static gboolean ide_langserv_rename_provider_rename_finish (IdeRenameProvider *provider, GAsyncResult *result, GPtrArray **edits, GError **error) { IdeLangservRenameProvider *self = (IdeLangservRenameProvider *)provider; g_autoptr(GPtrArray) ar = NULL; gboolean ret; IDE_ENTRY; g_assert (IDE_IS_LANGSERV_RENAME_PROVIDER (self)); g_assert (G_IS_TASK (result)); ar = g_task_propagate_pointer (G_TASK (result), error); ret = (ar != NULL); if (edits != NULL) *edits = g_steal_pointer (&ar); IDE_RETURN (ret); }
IdeSettings * _ide_settings_new (IdeContext *context, const gchar *schema_id, const gchar *relative_path, gboolean ignore_project_settings) { IdeSettings *ret; IDE_ENTRY; g_assert (IDE_IS_CONTEXT (context)); g_assert (schema_id != NULL); g_assert (relative_path != NULL); ret = g_object_new (IDE_TYPE_SETTINGS, "context", context, "ignore-project-settings", ignore_project_settings, "relative-path", relative_path, "schema-id", schema_id, NULL); IDE_RETURN (ret); }
static gboolean open_after_timeout (gpointer user_data) { IdeGitCloneWidget *self; IdeWorkbench *workbench; g_autoptr(GTask) task = user_data; g_autoptr(GError) error = NULL; CloneRequest *req; IDE_ENTRY; g_assert (G_IS_TASK (task)); self = g_task_get_source_object (task); req = g_task_get_task_data (task); workbench = ide_widget_get_workbench (GTK_WIDGET (self)); g_assert (req != NULL); g_assert (IDE_IS_GIT_CLONE_WIDGET (self)); g_assert (IDE_IS_WORKBENCH (workbench)); if (error) { g_warning ("%s", error->message); gtk_label_set_label (self->clone_error_label, error->message); gtk_widget_show (GTK_WIDGET (self->clone_error_label)); } else { ide_workbench_open_project_async (workbench, req->project_file, NULL, NULL, NULL); } g_task_return_boolean (task, TRUE); IDE_RETURN (G_SOURCE_REMOVE); }
static gboolean ide_frame_pan_begin (IdeFrame *self, GdkEventSequence *sequence, GtkGesturePan *gesture) { IdeFramePrivate *priv = ide_frame_get_instance_private (self); GtkAllocation alloc; cairo_surface_t *surface = NULL; IdePage *page; GdkWindow *window; GtkWidget *grid; cairo_t *cr; gdouble x, y; gboolean enable_animations; IDE_ENTRY; g_assert (IDE_IS_FRAME (self)); g_assert (GTK_IS_GESTURE_PAN (gesture)); g_assert (priv->pan_theatric == NULL); page = ide_frame_get_visible_child (self); if (page != NULL) gtk_widget_get_allocation (GTK_WIDGET (page), &alloc); g_object_get (gtk_settings_get_default (), "gtk-enable-animations", &enable_animations, NULL); if (sequence != NULL || page == NULL || !enable_animations || is_uninitialized (&alloc) || NULL == (window = gtk_widget_get_window (GTK_WIDGET (page))) || NULL == (surface = gdk_window_create_similar_surface (window, CAIRO_CONTENT_COLOR, alloc.width, alloc.height))) { if (sequence != NULL) gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_DENIED); IDE_RETURN (FALSE); } gtk_gesture_drag_get_offset (GTK_GESTURE_DRAG (gesture), &x, &y); cr = cairo_create (surface); gtk_widget_draw (GTK_WIDGET (page), cr); cairo_destroy (cr); grid = gtk_widget_get_ancestor (GTK_WIDGET (self), IDE_TYPE_GRID); gtk_widget_translate_coordinates (GTK_WIDGET (priv->top_stack), grid, 0, 0, &alloc.x, &alloc.y); priv->pan_page = g_object_ref (page); priv->pan_theatric = g_object_new (DZL_TYPE_BOX_THEATRIC, "surface", surface, "target", grid, "x", alloc.x + (gint)x, "y", alloc.y, "width", alloc.width, "height", alloc.height, NULL); g_clear_pointer (&surface, cairo_surface_destroy); /* Hide the page while we begin the possible transition to another * layout stack. */ gtk_widget_hide (GTK_WIDGET (priv->pan_page)); /* * Hide the mouse cursor until ide_frame_pan_end() is called. * It can be distracting otherwise (and we want to warp it to the new * grid column too). */ ide_frame_set_cursor (self, "none"); IDE_RETURN (TRUE); }