void iofunctions_real_load_file (GObject* hook, const gchar* filename) { GError* err = NULL; gchar* text = NULL; gchar* decoded = NULL; gboolean result; GuEditor* ec = NULL; ec = gummi_get_active_editor(); /* get the file contents */ if (FALSE == (result = g_file_get_contents (filename, &text, NULL, &err))) { slog (L_G_ERROR, "g_file_get_contents (): %s\n", err->message); g_error_free (err); iofunctions_load_default_text (FALSE); return; } if (NULL == (decoded = iofunctions_decode_text (text))) goto cleanup; editor_fill_buffer (ec, decoded); gtk_text_buffer_set_modified (GTK_TEXT_BUFFER(ec->buffer), FALSE); cleanup: g_free (decoded); g_free (text); }
void snippets_accel_cb (GtkAccelGroup* accel_group, GObject* obj, guint keyval, GdkModifierType mods, Tuple2* udata) { GuSnippets* sc = GU_SNIPPETS (udata->first); gchar* key = (gchar*)udata->second; /* XXX: Don't know how to avoid using gummi_get_active_editor () here. Since * gtk_accel_group must be connect when load, we can not specify the * editor in user_data, because snippets should only have effect on * active tab */ snippets_activate (sc, gummi_get_active_editor (), key); }
void iofunctions_save_file (GuIOFunc* io, gchar* filename, gchar *text) { gchar* status = NULL; status = g_strdup_printf (_("Saving %s..."), filename); statusbar_set_message (status); g_free (status); GObject *savecontext = g_object_new(G_TYPE_OBJECT, NULL); g_object_set_data (savecontext, "filename", filename); g_object_set_data (savecontext, "text", text); g_signal_emit_by_name (io->sig_hook, "document-write", savecontext); gtk_text_buffer_set_modified (GTK_TEXT_BUFFER(gummi_get_active_editor()->buffer), FALSE); }
void iofunctions_load_default_text (gboolean loopedonce) { GError* readerr = NULL; GError* copyerr = NULL; gchar* text = NULL; GuEditor* ec = gummi_get_active_editor(); if (!g_file_get_contents (C_WELCOMETEXT, &text, NULL, &readerr)) { slog (L_WARNING, "Could not find default welcome text, resetting..\n"); utils_copy_file (C_DEFAULTTEXT, C_WELCOMETEXT, ©err); if (!loopedonce) return iofunctions_load_default_text (TRUE); } if (text) editor_fill_buffer (ec, text); gtk_text_buffer_set_modified (GTK_TEXT_BUFFER (ec->buffer), FALSE); g_free (text); }