[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