Author: post
Date: 2010-12-28 21:16:22 +0100 (Tue, 28 Dec 2010)
New Revision: 3699

Modified:
   trunk/src/rs-save-dialog.c
   trunk/src/rs-save-dialog.h
Log:
Export As Dialog:Make sure percentages and sizes are updated along with each 
other, and allow scale up to 1000% (up from 200).

Modified: trunk/src/rs-save-dialog.c
===================================================================
--- trunk/src/rs-save-dialog.c  2010-12-21 20:51:52 UTC (rev 3698)
+++ trunk/src/rs-save-dialog.c  2010-12-28 20:16:22 UTC (rev 3699)
@@ -420,8 +420,11 @@
        if (dialog->keep_aspect)
        {
                g_signal_handler_block(dialog->h_spin, dialog->h_signal);
+               g_signal_handler_block(dialog->p_spin, dialog->p_signal);
                ratio = 
gtk_spin_button_get_value(spinbutton)/dialog->w_original;
                gtk_spin_button_set_value(dialog->h_spin, 
dialog->h_original*ratio);
+               gtk_spin_button_set_value(dialog->p_spin, 100.0*ratio);
+               g_signal_handler_unblock(dialog->p_spin, dialog->p_signal);
                g_signal_handler_unblock(dialog->h_spin, dialog->h_signal);
        }
        return;
@@ -435,8 +438,11 @@
        if (dialog->keep_aspect)
        {
                g_signal_handler_block(dialog->w_spin, dialog->w_signal);
+               g_signal_handler_block(dialog->p_spin, dialog->p_signal);
                ratio = 
gtk_spin_button_get_value(spinbutton)/dialog->h_original;
                gtk_spin_button_set_value(dialog->w_spin, 
dialog->w_original*ratio);
+               gtk_spin_button_set_value(dialog->p_spin, 100.0*ratio);
+               g_signal_handler_unblock(dialog->p_spin, dialog->p_signal);
                g_signal_handler_unblock(dialog->w_spin, dialog->w_signal);
        }
        return;
@@ -481,17 +487,17 @@
 
        dialog->w_spin = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(1.0, 
65535.0, 1.0));
        dialog->h_spin = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(1.0, 
65535.0, 1.0));
-       dialog->p_spin = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(1.0, 
200.0, 1.0));
+       dialog->p_spin = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(1.0, 
1000.0, 1.0));
        gtk_spin_button_set_value(dialog->w_spin, (gdouble) dialog->save_width);
        gtk_spin_button_set_value(dialog->h_spin, (gdouble) 
dialog->save_height);
        gtk_spin_button_set_value(dialog->p_spin, percent);
        dialog->w_signal = g_signal_connect(G_OBJECT(dialog->w_spin), 
"value_changed", G_CALLBACK(size_pref_w_changed), dialog);
        dialog->h_signal = g_signal_connect(G_OBJECT(dialog->h_spin), 
"value_changed", G_CALLBACK(size_pref_h_changed), dialog);
-       g_signal_connect(G_OBJECT(dialog->p_spin), "value_changed", 
G_CALLBACK(size_pref_p_changed), dialog);
+       dialog->p_signal = g_signal_connect(G_OBJECT(dialog->p_spin), 
"value_changed", G_CALLBACK(size_pref_p_changed), dialog);
 
        g_signal_connect(G_OBJECT(dialog->w_spin), "value_changed", 
G_CALLBACK(spin_set_value), &dialog->save_width);
        g_signal_connect(G_OBJECT(dialog->h_spin), "value_changed", 
G_CALLBACK(spin_set_value), &dialog->save_height);
-
+       
        hbox = gtk_hbox_new(FALSE, 3);
        gtk_box_pack_start (GTK_BOX (hbox), 
gtk_label_new_with_mnemonic(_("Width:")), FALSE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET(dialog->w_spin), FALSE, 
TRUE, 0);

Modified: trunk/src/rs-save-dialog.h
===================================================================
--- trunk/src/rs-save-dialog.h  2010-12-21 20:51:52 UTC (rev 3698)
+++ trunk/src/rs-save-dialog.h  2010-12-28 20:16:22 UTC (rev 3699)
@@ -49,6 +49,7 @@
        GtkSpinButton *p_spin;
        gulong w_signal;
        gulong h_signal;
+       gulong p_signal;
        gint save_width;
        gint save_height;
 


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to