Esempio n. 1
0
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;
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
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);
}