static gboolean editor_window_save(EditorWindow *ew) { gchar *dir; gchar *path; gchar *text; GtkTextIter start, end; GError *error = NULL; gboolean ret = TRUE; const gchar *name = gtk_entry_get_text(GTK_ENTRY(ew->entry)); if (!name || !name[0]) { file_util_warning_dialog(_("Can't save"), _("Please specify file name."), GTK_STOCK_DIALOG_ERROR, NULL); return FALSE; } gtk_text_buffer_get_bounds(ew->buffer, &start, &end); text = gtk_text_buffer_get_text(ew->buffer, &start, &end, FALSE); dir = g_build_filename(get_rc_dir(), "applications", NULL); path = g_build_filename(dir, name, NULL); if (!recursive_mkdir_if_not_exists(dir, 0755)) { file_util_warning_dialog(_("Can't save"), _("Could not create directory"), GTK_STOCK_DIALOG_ERROR, NULL); ret = FALSE; } if (ret && !g_file_set_contents(path, text, -1, &error)) { file_util_warning_dialog(_("Can't save"), error->message, GTK_STOCK_DIALOG_ERROR, NULL); g_error_free(error); ret = FALSE; } g_free(path); g_free(dir); g_free(text); layout_editors_reload_start(); /* idle function is not needed, everything should be cached */ layout_editors_reload_finish(); return ret; }
static void plugin_disable_cb(GtkCellRendererToggle *renderer, gchar *path_str, gpointer data) { EditorListWindow *ewl = data; GtkTreePath *tpath; GtkTreeIter iter; GtkTreeModel *model; gboolean disabled; gchar *path; GList *list; gchar *haystack; tpath = gtk_tree_path_new_from_string(path_str); model = gtk_tree_view_get_model(GTK_TREE_VIEW(ewl->view)); gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, DESKTOP_FILE_COLUMN_DISABLED, &disabled, -1); gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, DESKTOP_FILE_COLUMN_PATH, &path, -1); gtk_list_store_set(GTK_LIST_STORE(desktop_file_list), &iter, DESKTOP_FILE_COLUMN_DISABLED, !disabled, -1); if (!disabled) { options->disabled_plugins = g_list_append((options->disabled_plugins), g_strdup(path)); } else { list = options->disabled_plugins; while (list) { haystack = list->data; if (haystack && strcmp(haystack, path) == 0) { g_free(haystack); options->disabled_plugins = g_list_remove(options->disabled_plugins, haystack); } list = list->next; } } layout_editors_reload_start(); layout_editors_reload_finish(); }
static void editor_list_window_delete_dlg_ok_cb(GenericDialog *gd, gpointer data) { EditorWindowDel_Data *ewdl = data; if (!unlink_file(ewdl->path)) { gchar *text = g_strdup_printf(_("Unable to delete file:\n%s"), ewdl->path); warning_dialog(_("File deletion failed"), text, GTK_STOCK_DIALOG_WARNING, NULL); g_free(text); } else { /* refresh list */ layout_editors_reload_start(); /* idle function is not needed, everything should be cached */ layout_editors_reload_finish(); } editor_list_window_delete_dlg_cancel(gd, data); }