View Single Post
No!No!No!Yes!'s Avatar
Posts: 700 | Thanked: 846 times | Joined on Nov 2009
#181
Originally Posted by qwerty12 View Post
No!No!No!Yes!, if http://slexy.org/view/s2TuPIskK2 looks legit to you, can you include it in 0.18? It adds two buttons to the Advanced dialog re. the buffer: Export from Buffer to File and Import from File to Buffer. I got tired of importing/exporting via Leafpad.

Best regards,
Faheem

Gah, crap, I forgot to add "g_clear_error" statements
Originally Posted by No!No!No!Yes! View Post
OK ... I be waiting for new diff file
Never mind ... I managed to stick "g_clear_error" here:

Code:
static void importFileBufferBt_clicked_cb ( HildonButton * button, QueenBeecon *self )
{
	g_warning ("(%p) %s",self, G_STRFUNC);

	GtkWidget *file_chooser = hildon_file_chooser_dialog_new (NULL, GTK_FILE_CHOOSER_ACTION_OPEN);
	//gtk_window_set_title (GTK_WINDOW (file_chooser), "Choose file to import from");
	if (gtk_dialog_run (GTK_DIALOG (file_chooser)) == GTK_RESPONSE_OK)
	{
		GtkTextIter start, end;
		GError *error = NULL;
		gchar *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));

		if (!filename)
		{
			gtk_widget_destroy (file_chooser);
			return;
		}

		gchar *contents = NULL;
		if (!g_file_get_contents (filename, &contents, NULL, &error))
		{
			hildon_banner_show_informationf (NULL, NULL, "Importing failed: %s", error->message);
			g_free (filename);
			g_clear_error (&error);
			gtk_widget_destroy (file_chooser);
			return;
		}

		gtk_text_buffer_get_bounds (self->priv->importExportBuffer, &start, &end);
		gtk_text_buffer_delete (self->priv->importExportBuffer, &start, &end);
		gtk_text_buffer_insert (self->priv->importExportBuffer, &start, contents, -1);

		g_free (filename);
		g_free (contents);
	}
	gtk_widget_destroy (file_chooser);
}

static void exportFileBufferBt_clicked_cb ( HildonButton * button, QueenBeecon *self )
{
	g_warning ("(%p) %s",self, G_STRFUNC);

	gchar *mydocsdir = g_strdup (g_getenv ("MYDOCSDIR"));
	if (!mydocsdir) mydocsdir = g_build_filename (g_get_home_dir (), "MyDocs", NULL);

	GtkWidget *file_chooser = hildon_file_chooser_dialog_new (NULL, GTK_FILE_CHOOSER_ACTION_SAVE);
	gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_chooser), mydocsdir);
	g_free (mydocsdir);

	if (gtk_dialog_run (GTK_DIALOG (file_chooser)) == GTK_RESPONSE_OK)
	{
		GtkTextIter start, end;
		GError *error = NULL;
		gchar *filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_chooser));

		if (!filename) {
			gtk_widget_destroy (file_chooser);
			return;
		}

		gtk_text_buffer_get_bounds (self->priv->importExportBuffer, &start, &end);

		gchar *contents = gtk_text_buffer_get_text (self->priv->importExportBuffer, &start, &end, FALSE);
		if (!contents) {
			hildon_banner_show_information (NULL, NULL, "Exporting failed");
			g_free (filename);
			gtk_widget_destroy (file_chooser);
			return;
		}

		if (!g_file_set_contents (filename, contents, -1, &error)) {
			hildon_banner_show_informationf (NULL, NULL, "Exporting failed: %s", error->message);
			g_clear_error (&error);
		}
		g_free (filename);
		g_free (contents);
	}
	gtk_widget_destroy (file_chooser);
}
Do you believe it's enough?
__________________
Have a look at Queen BeeCon Widget (WIKI) Customizable and flexible widget-based multi-instance monitoring, alerting and interactive tool for the N900
Please provide comments and feedback for having QBW supported and enhanced further - (DONATE) - v1.3.3devel / v1.3.3testing / v1.3.3extras