[Rawstudio-commit] r2227 - trunk/src

Anders Brander anders at brander.dk
Wed Feb 25 01:49:08 CET 2009


Author: abrander
Date: 2009-02-25 01:49:07 +0100 (Wed, 25 Feb 2009)
New Revision: 2227

Modified:
   trunk/src/filename.c
   trunk/src/gtk-helper.c
   trunk/src/gtk-interface.c
Log:
Unified batch and quick-export file-template-choosers.

Modified: trunk/src/filename.c
===================================================================
--- trunk/src/filename.c	2009-02-24 22:44:11 UTC (rev 2226)
+++ trunk/src/filename.c	2009-02-25 00:49:07 UTC (rev 2227)
@@ -204,11 +204,28 @@
 	return;
 }
 
-static void add_f(GtkMenuItem *menuitem, GtkEntry *entry) { gtk_entry_append_text(entry, "%f"); };
-static void add_c(GtkMenuItem *menuitem, GtkEntry *entry) { gtk_entry_append_text(entry, "%2c"); };
-static void add_s(GtkMenuItem *menuitem, GtkEntry *entry) { gtk_entry_append_text(entry, "%s"); };
+static void
+add_f(GtkMenuItem *menuitem, GtkBin *combo)
+{
+	GtkWidget *entry = gtk_bin_get_child(combo);
+	gtk_entry_append_text(GTK_ENTRY(entry), "%f");
+};
 
 static void
+add_c(GtkMenuItem *menuitem, GtkBin *combo)
+{
+	GtkWidget *entry = gtk_bin_get_child(combo);
+	gtk_entry_append_text(GTK_ENTRY(entry), "%2c");
+};
+
+static void
+add_s(GtkMenuItem *menuitem, GtkBin *combo)
+{
+	GtkWidget *entry = gtk_bin_get_child(combo);
+	gtk_entry_append_text(GTK_ENTRY(entry), "%s");
+};
+
+static void
 filename_add_clicked(GtkButton *button, gpointer user_data)
 {
 	gui_menu_popup(GTK_WIDGET(button), user_data,
@@ -222,13 +239,28 @@
 GtkWidget *
 rs_filename_chooser_button_new(gchar **filename, const gchar *conf_key)
 {
+	gint i;
+	const static gchar *filenames[] = {
+		DEFAULT_CONF_EXPORT_FILENAME,
+		"%f",
+		"%f_%c",
+		"%f_output_%4c",
+		NULL };
 	GtkWidget *addbutton;
 	GtkWidget *hbox = gtk_hbox_new(FALSE, 2);
+	GtkWidget *combo;
 	GtkWidget *entry;
 
+	combo = gtk_combo_box_entry_new_text();
+	entry = gtk_bin_get_child(GTK_BIN(combo));
 	addbutton = gtk_button_new_with_label("+");
 
-	entry = gtk_entry_new();
+	g_object_set_data(G_OBJECT(hbox), "entry", entry);
+
+	for(i=0; filenames[i] != NULL; i++)
+		gtk_combo_box_append_text(GTK_COMBO_BOX(combo), filenames[i]);	
+	gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
+
 	if (filename)
 	{
 		gtk_entry_set_text(GTK_ENTRY(entry), *filename);
@@ -238,10 +270,11 @@
 	if (conf_key)
 		g_signal_connect (G_OBJECT(entry), "changed",
 			G_CALLBACK(filename_entry_changed_writeconf), (gpointer) conf_key);
+
 	g_signal_connect (G_OBJECT(addbutton), "clicked",
-		G_CALLBACK(filename_add_clicked), (gpointer) entry);
+		G_CALLBACK(filename_add_clicked), combo);
 
-	gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (hbox), combo, TRUE, TRUE, 0);
 	gtk_box_pack_start (GTK_BOX (hbox), addbutton, FALSE, FALSE, 0);
 
 	return(hbox);

Modified: trunk/src/gtk-helper.c
===================================================================
--- trunk/src/gtk-helper.c	2009-02-24 22:44:11 UTC (rev 2226)
+++ trunk/src/gtk-helper.c	2009-02-25 00:49:07 UTC (rev 2227)
@@ -324,12 +324,12 @@
 	gchar *parsed = NULL;
 	gchar *directory;
 	gchar *filename;
+	RSOutput *output;
+	gchar *output_identifier;
 	GString *final;
-	RS_FILETYPE *filetype;
 
 	directory = rs_conf_get_string(CONF_EXPORT_DIRECTORY);
 	filename = rs_conf_get_string(CONF_EXPORT_FILENAME);
-	rs_conf_get_filetype(CONF_EXPORT_FILETYPE, &filetype);
 
 	parsed = filename_parse(filename, "filename", 0);
 
@@ -341,7 +341,14 @@
 	}
 	g_string_append(final, parsed);
 	g_free(parsed);
-	g_string_append(final, filetype->ext);
+	output_identifier = rs_conf_get_string(CONF_EXPORT_FILETYPE);
+	output = rs_output_new(output_identifier);
+	if (output)
+	{
+		g_string_append(final, ".");
+		g_string_append(final, rs_output_get_extension(output));
+		g_object_unref(output);
+	}
 	g_string_append(final, "</small>");
 
 	gtk_label_set_markup(label, final->str);
@@ -366,7 +373,6 @@
 gui_export_filename_entry_changed(GtkComboBox *combobox, gpointer user_data)
 {
 	GtkLabel *label = GTK_LABEL(user_data);
-	rs_conf_set_string(CONF_EXPORT_FILENAME, gtk_combo_box_get_active_text(combobox));
 
 	gui_export_changed_helper(label);
 

Modified: trunk/src/gtk-interface.c
===================================================================
--- trunk/src/gtk-interface.c	2009-02-24 22:44:11 UTC (rev 2226)
+++ trunk/src/gtk-interface.c	2009-02-25 00:49:07 UTC (rev 2227)
@@ -45,7 +45,6 @@
 #include "rs-actions.h"
 #include "rs-dir-selector.h"
 
-static gchar *filenames[] = {DEFAULT_CONF_EXPORT_FILENAME, "%f", "%f_%c", "%f_output_%4c", NULL};
 static GtkStatusbar *statusbar;
 static gboolean fullscreen;
 GtkWindow *rawstudio_window;
@@ -430,7 +429,7 @@
 	GtkWidget *export_directory_entry;
 	GtkWidget *export_filename_hbox;
 	GtkWidget *export_filename_label;
-	GtkWidget *export_filename_entry;
+	GtkWidget *export_filename_combo;
 	GtkWidget *export_filename_example_hbox;
 	GtkWidget *export_filename_example_label1;
 	GtkWidget *export_filename_example_label2;
@@ -445,7 +444,6 @@
 	GtkWidget *cms_page;
 
 	gchar *conf_temp = NULL;
-	gint n;
 
 	dialog = gtk_dialog_new();
 	gtk_window_set_title(GTK_WINDOW(dialog), _("Preferences"));
@@ -594,7 +592,6 @@
 	export_filename_hbox = gtk_hbox_new(FALSE, 0);
 	export_filename_label = gtk_label_new(_("Filename:"));
 	gtk_misc_set_alignment(GTK_MISC(export_filename_label), 0.0, 0.5);
-	export_filename_entry = gtk_combo_box_entry_new_text();
 	conf_temp = rs_conf_get_string(CONF_EXPORT_FILENAME);
 
 	if (!conf_temp)
@@ -603,18 +600,13 @@
 		conf_temp = rs_conf_get_string(CONF_EXPORT_FILENAME);
 	}
 
-	gtk_combo_box_append_text(GTK_COMBO_BOX(export_filename_entry), conf_temp);
+	export_filename_combo = rs_filename_chooser_button_new(NULL, CONF_EXPORT_FILENAME);
+	GtkWidget *export_filename_entry = g_object_get_data(G_OBJECT(export_filename_combo), "entry");
+	gtk_entry_set_text(GTK_ENTRY(export_filename_entry), conf_temp);
 
-	n=0;
-	while(filenames[n])
-	{
-		gtk_combo_box_append_text(GTK_COMBO_BOX(export_filename_entry), filenames[n]);	
-		n++;
-	}
-	gtk_combo_box_set_active(GTK_COMBO_BOX(export_filename_entry), 0);
 	g_free(conf_temp);
 	gtk_box_pack_start (GTK_BOX (export_filename_hbox), export_filename_label, TRUE, TRUE, 0);
-	gtk_box_pack_start (GTK_BOX (export_filename_hbox), export_filename_entry, FALSE, TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (export_filename_hbox), export_filename_combo, FALSE, TRUE, 0);
 	gtk_box_pack_start (GTK_BOX (export_page), export_filename_hbox, FALSE, TRUE, 0);
 
 	export_filetype_hbox = gtk_hbox_new(FALSE, 0);




More information about the Rawstudio-commit mailing list