Author: akv
Date: 2013-06-25 22:26:20 +0200 (Tue, 25 Jun 2013)
New Revision: 4417

Modified:
   trunk/librawstudio/rs-settings.h
   trunk/src/application.h
   trunk/src/rs-actions.c
Log:
Added copy of coordinates.

Modified: trunk/librawstudio/rs-settings.h
===================================================================
--- trunk/librawstudio/rs-settings.h    2013-06-23 16:10:50 UTC (rev 4416)
+++ trunk/librawstudio/rs-settings.h    2013-06-25 20:26:20 UTC (rev 4417)
@@ -60,6 +60,7 @@
        MASK_VIGNETTING  = (1<<15),
        MASK_PROFILE  = (1<<16),
        MASK_TIME_OFFSET     = (1<<17),
+       MASK_COORDINATES     = (1<<18),
        MASK_TRANSFORM     = (1<<30),
        MASK_ALL            = 0x00ffffff,
 } RSSettingsMask;

Modified: trunk/src/application.h
===================================================================
--- trunk/src/application.h     2013-06-23 16:10:50 UTC (rev 4416)
+++ trunk/src/application.h     2013-06-25 20:26:20 UTC (rev 4417)
@@ -80,6 +80,8 @@
        gdouble angle_buffer;
        guint orientation_buffer;
        gint time_offset_buffer;
+       gdouble coord_lon_buffer;
+       gdouble coord_lat_buffer;
        gint current_setting;
        RS_QUEUE *queue;
        RSStore *store;

Modified: trunk/src/rs-actions.c
===================================================================
--- trunk/src/rs-actions.c      2013-06-23 16:10:50 UTC (rev 4416)
+++ trunk/src/rs-actions.c      2013-06-25 20:26:20 UTC (rev 4417)
@@ -480,10 +480,10 @@
 
 static const gint COPY_MASK_ALL = 
MASK_PROFILE|MASK_EXPOSURE|MASK_SATURATION|MASK_HUE|
        
MASK_CONTRAST|MASK_WB|MASK_SHARPEN|MASK_DENOISE_LUMA|MASK_DENOISE_CHROMA|
-       MASK_CHANNELMIXER|MASK_TCA|MASK_VIGNETTING|MASK_CURVE|MASK_TIME_OFFSET;
+       
MASK_CHANNELMIXER|MASK_TCA|MASK_VIGNETTING|MASK_CURVE|MASK_TIME_OFFSET|MASK_COORDINATES;
 
 /* Widgets for copy dialog */
-static GtkWidget *cb_profile, *cb_exposure, *cb_saturation, *cb_hue, 
*cb_contrast, *cb_whitebalance, *cb_curve, *cb_sharpen, *cb_denoise_luma, 
*cb_denoise_chroma, *cb_channelmixer, *cb_tca, *cb_vignetting,*cb_transform, 
*cb_time_offset, *b_all_none;
+static GtkWidget *cb_profile, *cb_exposure, *cb_saturation, *cb_hue, 
*cb_contrast, *cb_whitebalance, *cb_curve, *cb_sharpen, *cb_denoise_luma, 
*cb_denoise_chroma, *cb_channelmixer, *cb_tca, *cb_vignetting,*cb_transform, 
*cb_time_offset, *cb_coordinates, *b_all_none;
 
 static void
 all_none_clicked(GtkButton *button, gpointer user_data)
@@ -518,6 +518,7 @@
        cb_curve = gtk_check_button_new_with_label (_("Curve"));
        cb_transform = gtk_check_button_new_with_label (_("Transform"));
        cb_time_offset = gtk_check_button_new_with_label (_("Time offset 
(GPS)"));
+       cb_coordinates = gtk_check_button_new_with_label (_("Coordinates"));
        b_all_none = gtk_button_new_with_label (_("Select All/None"));
 
        g_signal_connect(b_all_none, "clicked", G_CALLBACK(all_none_clicked), 
NULL);
@@ -540,6 +541,7 @@
        gtk_box_pack_start (GTK_BOX (cb_box), cb_curve, FALSE, TRUE, 0);
        gtk_box_pack_start (GTK_BOX (cb_box), cb_transform, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (cb_box), cb_time_offset, FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (cb_box), cb_coordinates, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (cb_box), b_all_none, FALSE, TRUE, 0);
 
        dialog = gui_dialog_make_from_widget(GTK_STOCK_DIALOG_QUESTION, 
_("Select Settings to Copy"), cb_box);
@@ -567,6 +569,7 @@
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_curve), !!(mask & 
MASK_CURVE));
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_transform), !!(mask & 
MASK_TRANSFORM));
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_time_offset), !!(mask 
& MASK_TIME_OFFSET));
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb_coordinates), !!(mask 
& MASK_COORDINATES));
 }
 
 static gint
@@ -603,6 +606,8 @@
                mask |= MASK_TRANSFORM;
        if (GTK_TOGGLE_BUTTON(cb_time_offset)->active)
                mask |= MASK_TIME_OFFSET;
+       if (GTK_TOGGLE_BUTTON(cb_coordinates)->active)
+               mask |= MASK_COORDINATES;
        return mask;
 }
 
@@ -639,6 +644,8 @@
                rs->angle_buffer = rs->photo->angle;
                rs->orientation_buffer = rs->photo->orientation;
                rs->time_offset_buffer = rs->photo->time_offset;
+               rs->coord_lon_buffer = rs->photo->lon;
+               rs->coord_lat_buffer = rs->photo->lat;
 
                gui_status_notify(_("Copied settings"));
        }
@@ -711,6 +718,14 @@
                                {
                                        RSGeoDb *geodb = 
rs_geo_db_get_singleton();
                                        rs_geo_db_set_offset(geodb, photo, 
rs->time_offset_buffer);
+                                       /* reset lon and lat if offset is 
pasted */
+                                       rs_geo_db_set_coordinates_manual(geodb, 
photo, 0.0, 0.0);
+                               }
+                               if (mask & MASK_COORDINATES)
+                               {
+                                       RSGeoDb *geodb = 
rs_geo_db_get_singleton();
+                                       rs_geo_db_set_coordinates_manual(geodb, 
photo, rs->coord_lon_buffer, rs->coord_lat_buffer);
+
                                }       
                                rs_cache_save(photo, (new_mask | mask) & 
MASK_ALL);
                                g_object_unref(photo);
@@ -736,8 +751,13 @@
                                if (mask & MASK_TIME_OFFSET)
                                {
                                        RSGeoDb *geodb = 
rs_geo_db_get_singleton();
-                                       rs_geo_db_set_offset(geodb, photo, 
rs->time_offset_buffer);
+                                       rs_geo_db_set_offset(geodb, rs->photo, 
rs->time_offset_buffer);
                                }
+                               if (mask & MASK_COORDINATES)
+                               {
+                                       RSGeoDb *geodb = 
rs_geo_db_get_singleton();
+                                       rs_geo_db_set_coordinates_manual(geodb, 
rs->photo, rs->coord_lon_buffer, rs->coord_lat_buffer);
+                               }
                        }
 
                        if (rs->photo)


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

Reply via email to