[frogr] Move the 'Use date taken as date posted' option from Misc to picture defaults



commit 9e7c93722da08b2da32e4a0d8ef267bcf8707434
Author: Mario Sanchez Prada <msanchez gnome org>
Date:   Sat Sep 13 23:23:27 2014 +0100

    Move the 'Use date taken as date posted' option from Misc to picture defaults
    
    Make it possible to define a value by default for every picture as is
    loaded, as well as to define case by case values if needed.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=734193

 src/frogr-config.c          |   68 +++++++++++++++++++++---------------------
 src/frogr-config.h          |    8 ++--
 src/frogr-controller.c      |    4 +--
 src/frogr-details-dialog.c  |   63 +++++++++++++++++++++++++++------------
 src/frogr-file-loader.c     |    9 ++++--
 src/frogr-picture.c         |   49 +++++++++++++++++++++++++++---
 src/frogr-picture.h         |    9 ++++--
 src/frogr-settings-dialog.c |   57 +++++++++++++++++------------------
 8 files changed, 167 insertions(+), 100 deletions(-)
---
diff --git a/src/frogr-config.c b/src/frogr-config.c
index b65c43e..d7d1b83 100644
--- a/src/frogr-config.c
+++ b/src/frogr-config.c
@@ -56,6 +56,7 @@ struct _FrogrConfigPrivate
   gboolean friend;
   gboolean send_geolocation_data;
   gboolean show_in_search;
+  gboolean date_taken_as_posted;
 
   FspLicense license;
   FspSafetyLevel safety_level;
@@ -69,7 +70,6 @@ struct _FrogrConfigPrivate
   gboolean mainview_sorting_reversed;
   gboolean mainview_enable_tooltips;
   gboolean use_dark_theme;
-  gboolean date_taken_as_posted;
 
   gboolean use_proxy;
   gchar *proxy_host;
@@ -273,6 +273,12 @@ _load_settings (FrogrConfig *self)
                 }
             }
 
+          if (!xmlStrcmp (node->name, (const xmlChar*) "default-date-taken-as-posted"))
+            {
+              content = xmlNodeGetContent (node);
+              priv->date_taken_as_posted = !xmlStrcmp (content, (const xmlChar*) "1");
+            }
+
           if (!xmlStrcmp (node->name, (const xmlChar*) "http-proxy"))
             _load_proxy_data_xml (self, xml, node);
 
@@ -300,12 +306,6 @@ _load_settings (FrogrConfig *self)
               priv->keep_file_extensions = !xmlStrcmp (content, (const xmlChar*) "1");
             }
 
-          if (!xmlStrcmp (node->name, (const xmlChar*) "date-taken-as-posted"))
-            {
-              content = xmlNodeGetContent (node);
-              priv->date_taken_as_posted = !xmlStrcmp (content, (const xmlChar*) "1");
-            }
-
           if (content)
             xmlFree (content);
         }
@@ -704,13 +704,13 @@ _save_settings (FrogrConfig *self)
   /* Other defaults */
   _xml_add_bool_child (root, "default-send-geolocation-data", priv->send_geolocation_data);
   _xml_add_bool_child (root, "default-show-in-search", priv->show_in_search);
+  _xml_add_bool_child (root, "default-date-taken-as-posted", priv->date_taken_as_posted);
 
   /* Other stuff */
   _xml_add_bool_child (root, "tags-autocompletion", priv->tags_autocompletion);
   _xml_add_bool_child (root, "keep-file-extensions", priv->keep_file_extensions);
   _xml_add_bool_child (root, "import-tags-from-metadata", priv->import_tags_from_metadata);
   _xml_add_bool_child (root, "use-dark-theme", priv->use_dark_theme);
-  _xml_add_bool_child (root, "date-taken-as-posted", priv->date_taken_as_posted);
 
   /* Use proxy */
   node = xmlNewNode (NULL, (const xmlChar*) "http-proxy");
@@ -1295,6 +1295,28 @@ frogr_config_get_default_content_type (FrogrConfig *self)
 }
 
 void
+frogr_config_set_default_show_in_search (FrogrConfig *self, gboolean value)
+{
+  FrogrConfigPrivate * priv = NULL;
+
+  g_return_if_fail (FROGR_IS_CONFIG (self));
+
+  priv = FROGR_CONFIG_GET_PRIVATE (self);
+  priv->show_in_search = value;
+}
+
+gboolean
+frogr_config_get_default_show_in_search (FrogrConfig *self)
+{
+  FrogrConfigPrivate *priv = NULL;
+
+  g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
+
+  priv = FROGR_CONFIG_GET_PRIVATE (self);
+  return priv->show_in_search;
+}
+
+void
 frogr_config_set_default_send_geolocation_data (FrogrConfig *self, gboolean value)
 {
   FrogrConfigPrivate * priv = NULL;
@@ -1317,25 +1339,25 @@ frogr_config_get_default_send_geolocation_data (FrogrConfig *self)
 }
 
 void
-frogr_config_set_default_show_in_search (FrogrConfig *self, gboolean value)
+frogr_config_set_default_date_taken_as_posted (FrogrConfig *self, gboolean value)
 {
   FrogrConfigPrivate * priv = NULL;
 
   g_return_if_fail (FROGR_IS_CONFIG (self));
 
   priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->show_in_search = value;
+  priv->date_taken_as_posted = value;
 }
 
 gboolean
-frogr_config_get_default_show_in_search (FrogrConfig *self)
+frogr_config_get_default_date_taken_as_posted (FrogrConfig *self)
 {
   FrogrConfigPrivate *priv = NULL;
 
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
 
   priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->show_in_search;
+  return priv->date_taken_as_posted;
 }
 
 void
@@ -1449,28 +1471,6 @@ frogr_config_get_use_dark_theme (FrogrConfig *self)
 }
 
 void
-frogr_config_set_date_taken_as_posted (FrogrConfig *self, gboolean value)
-{
-  FrogrConfigPrivate * priv = NULL;
-
-  g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->date_taken_as_posted = value;
-}
-
-gboolean
-frogr_config_get_date_taken_as_posted (FrogrConfig *self)
-{
-  FrogrConfigPrivate *priv = NULL;
-
-  g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->date_taken_as_posted;
-}
-
-void
 frogr_config_set_mainview_sorting_criteria (FrogrConfig *self,
                                             SortingCriteria criteria)
 {
diff --git a/src/frogr-config.h b/src/frogr-config.h
index 0e269a0..a430abd 100644
--- a/src/frogr-config.h
+++ b/src/frogr-config.h
@@ -121,6 +121,10 @@ void frogr_config_set_default_send_geolocation_data (FrogrConfig *self, gboolean
 
 gboolean frogr_config_get_default_send_geolocation_data (FrogrConfig *self);
 
+void frogr_config_set_default_date_taken_as_posted (FrogrConfig *self, gboolean value);
+
+gboolean frogr_config_get_default_date_taken_as_posted (FrogrConfig *self);
+
 void frogr_config_set_tags_autocompletion (FrogrConfig *self, gboolean value);
 
 gboolean frogr_config_get_tags_autocompletion (FrogrConfig *self);
@@ -141,10 +145,6 @@ void frogr_config_set_use_dark_theme (FrogrConfig *self, gboolean value);
 
 gboolean frogr_config_get_use_dark_theme (FrogrConfig *self);
 
-void frogr_config_set_date_taken_as_posted (FrogrConfig *self, gboolean value);
-
-gboolean frogr_config_get_date_taken_as_posted (FrogrConfig *self);
-
 void frogr_config_set_mainview_sorting_criteria (FrogrConfig *self,
                                                  SortingCriteria criteria);
 
diff --git a/src/frogr-controller.c b/src/frogr-controller.c
index 90f71ab..fa9cb50 100644
--- a/src/frogr-controller.c
+++ b/src/frogr-controller.c
@@ -1175,8 +1175,6 @@ _finish_upload_pictures_process (FrogrController *self, UploadPicturesData *up_d
 static void
 _perform_after_upload_operations (FrogrController *controller, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
-
   if (frogr_picture_get_license (uop_data->picture) != FSP_LICENSE_NONE)
     {
       uop_data->after_upload_attempts[AFTER_UPLOAD_OP_SETTING_LICENSE] = 0;
@@ -1190,7 +1188,7 @@ _perform_after_upload_operations (FrogrController *controller, UploadOnePictureD
       _set_location_for_picture (controller, uop_data);
     }
 
-  if (frogr_config_get_date_taken_as_posted (priv->config))
+  if (frogr_picture_date_taken_as_posted (uop_data->picture))
     {
       uop_data->after_upload_attempts[AFTER_UPLOAD_OP_SETTING_DATE_TAKEN_AS_POSTED] = 0;
       _set_date_taken_as_posted_for_picture (controller, uop_data);
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index 359d685..73c9202 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -57,8 +57,9 @@ typedef struct _FrogrDetailsDialogPrivate {
   GtkWidget *private_rb;
   GtkWidget *friend_cb;
   GtkWidget *family_cb;
-  GtkWidget *send_location_cb;
   GtkWidget *show_in_search_cb;
+  GtkWidget *send_location_cb;
+  GtkWidget *date_taken_as_posted_cb;
   GtkWidget *license_cb;
   GtkWidget *photo_content_rb;
   GtkWidget *sshot_content_rb;
@@ -403,13 +404,17 @@ _create_widgets (FrogrDetailsDialog *self)
   gtk_container_add (GTK_CONTAINER (align), widget);
   gtk_box_pack_start (GTK_BOX (section_vbox), align, FALSE, FALSE, 0);
 
+  widget = gtk_check_button_new_with_mnemonic (_("_Show Up in Global Search Results"));
+  gtk_box_pack_start (GTK_BOX (section_vbox), widget, FALSE, FALSE, 0);
+  priv->show_in_search_cb = widget;
+
   widget = gtk_check_button_new_with_mnemonic (_("Set Geo_location Information"));
   gtk_box_pack_start (GTK_BOX (section_vbox), widget, FALSE, FALSE, 0);
   priv->send_location_cb = widget;
 
-  widget = gtk_check_button_new_with_mnemonic (_("_Show Up in Global Search Results"));
+  widget = gtk_check_button_new_with_mnemonic (_("Set 'Taken Date' as 'Posted Date' for Pictures"));
   gtk_box_pack_start (GTK_BOX (section_vbox), widget, FALSE, FALSE, 0);
-  priv->show_in_search_cb = widget;
+  priv->date_taken_as_posted_cb = widget;
 
   gtk_box_pack_start (GTK_BOX (vbox), section_vbox, FALSE, FALSE, 6);
 
@@ -430,10 +435,13 @@ _create_widgets (FrogrDetailsDialog *self)
   g_signal_connect (G_OBJECT (priv->friend_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
+  g_signal_connect (G_OBJECT (priv->show_in_search_cb), "toggled",
+                    G_CALLBACK (_on_toggle_button_toggled), self);
+
   g_signal_connect (G_OBJECT (priv->send_location_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
-  g_signal_connect (G_OBJECT (priv->show_in_search_cb), "toggled",
+  g_signal_connect (G_OBJECT (priv->date_taken_as_posted_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
   g_signal_connect (G_OBJECT (priv->photo_content_rb), "clicked",
@@ -613,8 +621,9 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
   gboolean is_public_val = FALSE;
   gboolean is_friend_val = FALSE;
   gboolean is_family_val = FALSE;
-  gboolean send_location_val = FALSE;
   gboolean show_in_search_val = FALSE;
+  gboolean send_location_val = FALSE;
+  gboolean date_taken_as_posted_val = FALSE;
   gboolean license_inconsistent = FALSE;
   FspLicense license_val = FSP_LICENSE_NONE;
   FspSafetyLevel safety_level_val = FSP_SAFETY_LEVEL_NONE;
@@ -630,8 +639,9 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
   is_public_val = frogr_picture_is_public (picture);
   is_friend_val = frogr_picture_is_friend (picture);
   is_family_val = frogr_picture_is_family (picture);
-  send_location_val = frogr_picture_send_location (picture);
   show_in_search_val = frogr_picture_show_in_search (picture);
+  send_location_val = frogr_picture_send_location (picture);
+  date_taken_as_posted_val = frogr_picture_date_taken_as_posted (picture);
   license_val = frogr_picture_get_license (picture);
   safety_level_val = frogr_picture_get_safety_level (picture);
   content_type_val = frogr_picture_get_content_type (picture);
@@ -645,8 +655,9 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
       gboolean is_public = FALSE;
       gboolean is_friend = FALSE;
       gboolean is_family = FALSE;
-      gboolean send_location = FALSE;
       gboolean show_in_search = FALSE;
+      gboolean send_location = FALSE;
+      gboolean date_taken_as_posted = FALSE;
       FspLicense license = FSP_LICENSE_NONE;
       FspSafetyLevel safety_level = FSP_SAFETY_LEVEL_NONE;
       FspContentType content_type = FSP_CONTENT_TYPE_NONE;
@@ -666,8 +677,9 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
       is_public = frogr_picture_is_public (picture);
       is_friend = frogr_picture_is_friend (picture);
       is_family = frogr_picture_is_family (picture);
-      send_location = frogr_picture_send_location (picture);
       show_in_search = frogr_picture_show_in_search (picture);
+      send_location = frogr_picture_send_location (picture);
+      date_taken_as_posted = frogr_picture_date_taken_as_posted (picture);
 
       /* License */
       license = frogr_picture_get_license (picture);
@@ -713,15 +725,20 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
           gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->friend_cb),
                                               is_friend_val != is_friend);
         }
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb)))
+        {
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb),
+                                              show_in_search_val != show_in_search);
+        }
       if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb)))
         {
           gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb),
                                               send_location_val != send_location);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->date_taken_as_posted_cb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb),
-                                              show_in_search_val != show_in_search);
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->date_taken_as_posted_cb),
+                                              date_taken_as_posted_val != date_taken_as_posted);
         }
 
       if (!license_inconsistent && license_val != license)
@@ -769,8 +786,9 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
       is_public_val = is_public;
       is_friend_val = is_friend;
       is_family_val = is_family;
-      send_location_val = send_location;
       show_in_search_val = show_in_search;
+      send_location_val = send_location;
+      date_taken_as_posted_val = date_taken_as_posted;
       license_val = license;
       content_type_val = content_type;
       safety_level_val = safety_level;
@@ -804,10 +822,12 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
                                 is_friend_val);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->family_cb),
                                 is_family_val);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->send_location_cb),
-                                send_location_val);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->show_in_search_cb),
                                 show_in_search_val);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->send_location_cb),
+                                send_location_val);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->date_taken_as_posted_cb),
+                                date_taken_as_posted_val);
 
   if (license_inconsistent)
     gtk_combo_box_set_active (GTK_COMBO_BOX (priv->license_cb), FSP_LICENSE_LAST + 1);
@@ -894,8 +914,9 @@ _save_data (FrogrDetailsDialog *self)
   gboolean is_public;
   gboolean is_friend;
   gboolean is_family;
-  gboolean send_location;
   gboolean show_in_search;
+  gboolean send_location;
+  gboolean date_taken_as_posted;
   FspLicense license;
   FspSafetyLevel safety_level;
   FspContentType content_type;
@@ -931,10 +952,12 @@ _save_data (FrogrDetailsDialog *self)
       is_family = FALSE;
     }
 
-  send_location =
-    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->send_location_cb));
   show_in_search =
     gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->show_in_search_cb));
+  send_location =
+    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->send_location_cb));
+  date_taken_as_posted =
+    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->date_taken_as_posted_cb));
 
   /* License type (values in the combo are shifted +1) */
   license = gtk_combo_box_get_active (GTK_COMBO_BOX (priv->license_cb)) - 1;
@@ -986,10 +1009,12 @@ _save_data (FrogrDetailsDialog *self)
             frogr_picture_set_friend (picture, is_friend);
           if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->family_cb)))
             frogr_picture_set_family (picture, is_family);
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb)))
-            frogr_picture_set_send_location (picture, send_location);
           if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb)))
             frogr_picture_set_show_in_search (picture, show_in_search);
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb)))
+            frogr_picture_set_send_location (picture, send_location);
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->date_taken_as_posted_cb)))
+            frogr_picture_set_date_taken_as_posted (picture, date_taken_as_posted);
 
           if (license >= FSP_LICENSE_NONE && license < FSP_LICENSE_LAST)
             frogr_picture_set_license (picture, license);
diff --git a/src/frogr-file-loader.c b/src/frogr-file-loader.c
index c8dfddd..fda22ae 100644
--- a/src/frogr-file-loader.c
+++ b/src/frogr-file-loader.c
@@ -81,8 +81,9 @@ struct _FrogrFileLoaderPrivate
   gboolean public_visibility;
   gboolean family_visibility;
   gboolean friend_visibility;
-  gboolean send_location;
   gboolean show_in_search;
+  gboolean send_location;
+  gboolean date_taken_as_posted;
   FspLicense license;
   FspSafetyLevel safety_level;
   FspContentType content_type;
@@ -549,8 +550,9 @@ _create_new_picture (FrogrFileLoader *self, GFile *file, GdkPixbuf *pixbuf, gboo
                                 priv->friend_visibility,
                                 is_video);
 
-  frogr_picture_set_send_location (picture, priv->send_location);
   frogr_picture_set_show_in_search (picture, priv->show_in_search);
+  frogr_picture_set_send_location (picture, priv->send_location);
+  frogr_picture_set_date_taken_as_posted (picture, priv->date_taken_as_posted);
   frogr_picture_set_license (picture, priv->license);
   frogr_picture_set_content_type (picture, priv->content_type);
   frogr_picture_set_safety_level (picture, priv->safety_level);
@@ -828,8 +830,9 @@ frogr_file_loader_init (FrogrFileLoader *self)
   priv->public_visibility = frogr_config_get_default_public (config);
   priv->family_visibility = frogr_config_get_default_family (config);
   priv->friend_visibility = frogr_config_get_default_friend (config);
-  priv->send_location = frogr_config_get_default_send_geolocation_data (config);
   priv->show_in_search = frogr_config_get_default_show_in_search (config);
+  priv->send_location = frogr_config_get_default_send_geolocation_data (config);
+  priv->date_taken_as_posted = frogr_config_get_default_date_taken_as_posted (config);
   priv->license = frogr_config_get_default_license (config);
   priv->safety_level = frogr_config_get_default_safety_level (config);
   priv->content_type = frogr_config_get_default_content_type (config);
diff --git a/src/frogr-picture.c b/src/frogr-picture.c
index ffbb66f..8327f7b 100644
--- a/src/frogr-picture.c
+++ b/src/frogr-picture.c
@@ -59,6 +59,7 @@ struct _FrogrPicturePrivate
   FrogrLocation *location;
   gboolean show_in_search;
   gboolean send_location;
+  gboolean date_taken_as_posted;
 
   gboolean is_video;
 
@@ -88,6 +89,7 @@ enum  {
   PROP_LOCATION,
   PROP_SHOW_IN_SEARCH,
   PROP_SEND_LOCATION,
+  PROP_DATE_TAKEN_AS_POSTED,
   PROP_IS_VIDEO,
   PROP_FILESIZE,
   PROP_DATETIME,
@@ -455,6 +457,9 @@ _frogr_picture_set_property (GObject *object,
     case PROP_SEND_LOCATION:
       frogr_picture_set_send_location (self, g_value_get_boolean (value));
       break;
+    case PROP_DATE_TAKEN_AS_POSTED:
+      frogr_picture_set_date_taken_as_posted (self, g_value_get_boolean (value));
+      break;
     case PROP_IS_VIDEO:
       priv->is_video = g_value_get_boolean (value);
       break;
@@ -528,6 +533,9 @@ _frogr_picture_get_property (GObject *object,
     case PROP_SEND_LOCATION:
       g_value_set_boolean (value, priv->send_location);
       break;
+    case PROP_DATE_TAKEN_AS_POSTED:
+      g_value_set_boolean (value, priv->date_taken_as_posted);
+      break;
     case PROP_IS_VIDEO:
       g_value_set_boolean (value, priv->is_video);
       break;
@@ -726,6 +734,14 @@ frogr_picture_class_init(FrogrPictureClass *klass)
                                                          FALSE,
                                                          G_PARAM_READWRITE));
   g_object_class_install_property (obj_class,
+                                   PROP_DATE_TAKEN_AS_POSTED,
+                                   g_param_spec_boolean ("date-taken-as-posted",
+                                                         "date-taken-as-posted",
+                                                         "Whether to set the 'taken data' as"
+                                                         "'posted date', after uploading",
+                                                         FALSE,
+                                                         G_PARAM_READWRITE));
+  g_object_class_install_property (obj_class,
                                    PROP_FILESIZE,
                                    g_param_spec_uint ("filesize",
                                                       "filesize",
@@ -788,6 +804,7 @@ frogr_picture_init (FrogrPicture *self)
 
   priv->show_in_search = TRUE;
   priv->send_location = FALSE;
+  priv->date_taken_as_posted = FALSE;
 
   priv->is_video = FALSE;
 
@@ -1130,6 +1147,29 @@ frogr_picture_set_location (FrogrPicture *self, FrogrLocation *location)
 }
 
 gboolean
+frogr_picture_show_in_search (FrogrPicture *self)
+{
+  FrogrPicturePrivate *priv = NULL;
+
+  g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
+
+  priv = FROGR_PICTURE_GET_PRIVATE (self);
+  return priv->show_in_search;
+}
+
+void
+frogr_picture_set_show_in_search (FrogrPicture *self,
+                                  gboolean show_in_search)
+{
+  FrogrPicturePrivate *priv = NULL;
+
+  g_return_if_fail(FROGR_IS_PICTURE(self));
+
+  priv = FROGR_PICTURE_GET_PRIVATE (self);
+  priv->show_in_search = show_in_search;
+}
+
+gboolean
 frogr_picture_send_location (FrogrPicture *self)
 {
   FrogrPicturePrivate *priv = NULL;
@@ -1152,26 +1192,25 @@ frogr_picture_set_send_location (FrogrPicture *self, gboolean send_location)
 }
 
 gboolean
-frogr_picture_show_in_search (FrogrPicture *self)
+frogr_picture_date_taken_as_posted (FrogrPicture *self)
 {
   FrogrPicturePrivate *priv = NULL;
 
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
 
   priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->show_in_search;
+  return priv->date_taken_as_posted;
 }
 
 void
-frogr_picture_set_show_in_search (FrogrPicture *self,
-                                  gboolean show_in_search)
+frogr_picture_set_date_taken_as_posted (FrogrPicture *self, gboolean date_taken_as_posted)
 {
   FrogrPicturePrivate *priv = NULL;
 
   g_return_if_fail(FROGR_IS_PICTURE(self));
 
   priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->show_in_search = show_in_search;
+  priv->date_taken_as_posted = date_taken_as_posted;
 }
 
 GdkPixbuf *
diff --git a/src/frogr-picture.h b/src/frogr-picture.h
index c5104ed..a5f4162 100644
--- a/src/frogr-picture.h
+++ b/src/frogr-picture.h
@@ -109,13 +109,16 @@ void frogr_picture_set_license (FrogrPicture *self, FspLicense license);
 FrogrLocation *frogr_picture_get_location (FrogrPicture *self);
 void frogr_picture_set_location (FrogrPicture *self, FrogrLocation *location);
 
-gboolean frogr_picture_send_location (FrogrPicture *self);
-void frogr_picture_set_send_location (FrogrPicture *self, gboolean send_location);
-
 gboolean frogr_picture_show_in_search (FrogrPicture *self);
 void frogr_picture_set_show_in_search (FrogrPicture *self,
                                        gboolean show_in_search);
 
+gboolean frogr_picture_send_location (FrogrPicture *self);
+void frogr_picture_set_send_location (FrogrPicture *self, gboolean send_location);
+
+gboolean frogr_picture_date_taken_as_posted (FrogrPicture *self);
+void frogr_picture_set_date_taken_as_posted (FrogrPicture *self, gboolean date_taken_as_posted);
+
 GdkPixbuf *frogr_picture_get_pixbuf (FrogrPicture *self);
 void frogr_picture_set_pixbuf (FrogrPicture *self,
                                GdkPixbuf *pixbuf);
diff --git a/src/frogr-settings-dialog.c b/src/frogr-settings-dialog.c
index b5a16c8..003acb7 100644
--- a/src/frogr-settings-dialog.c
+++ b/src/frogr-settings-dialog.c
@@ -46,6 +46,7 @@ typedef struct _FrogrSettingsDialogPrivate {
   GtkWidget *family_cb;
   GtkWidget *show_in_search_cb;
   GtkWidget *send_geolocation_data_cb;
+  GtkWidget *date_taken_as_posted_cb;
   GtkWidget *license_cb;
   GtkWidget *photo_content_rb;
   GtkWidget *sshot_content_rb;
@@ -68,17 +69,16 @@ typedef struct _FrogrSettingsDialogPrivate {
   GtkWidget *keep_file_extensions_cb;
   GtkWidget *import_tags_cb;
   GtkWidget *use_dark_theme_cb;
-  GtkWidget *date_taken_as_posted_cb;
 
   gboolean public_visibility;
   gboolean family_visibility;
   gboolean friend_visibility;
   gboolean show_in_search;
   gboolean send_geolocation_data;
+  gboolean date_taken_as_posted;
   gboolean enable_tags_autocompletion;
   gboolean keep_file_extensions;
   gboolean import_tags;
-  gboolean date_taken_as_posted;
   gboolean use_dark_theme;
 
   FspLicense license;
@@ -318,11 +318,14 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   gtk_box_set_homogeneous (GTK_BOX (box1), FALSE);
 
   _add_toggleable_item (self, GTK_BOX (box1), NULL, FALSE,
+                        _("_Show Pictures in Global Search Results"),
+                        &priv->show_in_search_cb);
+  _add_toggleable_item (self, GTK_BOX (box1), NULL, FALSE,
                         _("Set Geo_location Information for Pictures"),
                         &priv->send_geolocation_data_cb);
   _add_toggleable_item (self, GTK_BOX (box1), NULL, FALSE,
-                        _("_Show Pictures in Global Search Results"),
-                        &priv->show_in_search_cb);
+                        _("Set 'Taken Date' as 'Posted Date' for Pictures"),
+                        &priv->date_taken_as_posted_cb);
 
   gtk_box_pack_start (GTK_BOX (vbox), box1, FALSE, FALSE, 0);
 
@@ -486,10 +489,6 @@ _add_misc_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
                         _("_Keep File Extensions in Titles when Loading"),
                         &priv->keep_file_extensions_cb);
 
-  _add_toggleable_item (self, GTK_BOX (box), NULL, FALSE,
-                        _("Set '_Taken Date' as 'Posted Date' when Uploading"),
-                        &priv->date_taken_as_posted_cb);
-
   gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0);
 
   gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
@@ -506,8 +505,9 @@ _fill_dialog_with_data (FrogrSettingsDialog *self)
   priv->public_visibility = frogr_config_get_default_public (priv->config);
   priv->family_visibility = frogr_config_get_default_family (priv->config);
   priv->friend_visibility = frogr_config_get_default_friend (priv->config);
-  priv->send_geolocation_data = frogr_config_get_default_send_geolocation_data (priv->config);
   priv->show_in_search = frogr_config_get_default_show_in_search (priv->config);
+  priv->send_geolocation_data = frogr_config_get_default_send_geolocation_data (priv->config);
+  priv->date_taken_as_posted = frogr_config_get_default_date_taken_as_posted (priv->config);
   priv->license = frogr_config_get_default_license (priv->config);
   priv->content_type = frogr_config_get_default_content_type (priv->config);
   priv->safety_level = frogr_config_get_default_safety_level (priv->config);
@@ -515,7 +515,6 @@ _fill_dialog_with_data (FrogrSettingsDialog *self)
   priv->keep_file_extensions = frogr_config_get_keep_file_extensions (priv->config);
   priv->import_tags = frogr_config_get_import_tags_from_metadata (priv->config);
   priv->use_dark_theme = frogr_config_get_use_dark_theme (priv->config);
-  priv->date_taken_as_posted = frogr_config_get_date_taken_as_posted (priv->config);
   priv->use_proxy = frogr_config_get_use_proxy (priv->config);
 
   g_free (priv->proxy_host);
@@ -548,10 +547,12 @@ _fill_dialog_with_data (FrogrSettingsDialog *self)
                                 priv->family_visibility);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->friend_cb),
                                 priv->friend_visibility);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->send_geolocation_data_cb),
-                                priv->send_geolocation_data);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->show_in_search_cb),
                                 priv->show_in_search);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->send_geolocation_data_cb),
+                                priv->send_geolocation_data);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->date_taken_as_posted_cb),
+                                priv->date_taken_as_posted);
 
   if (priv->license >= FSP_LICENSE_NONE && priv->license < FSP_LICENSE_LAST)
     gtk_combo_box_set_active (GTK_COMBO_BOX (priv->license_cb), priv->license + 1);
@@ -580,8 +581,6 @@ _fill_dialog_with_data (FrogrSettingsDialog *self)
                                 priv->import_tags);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_dark_theme_cb),
                                 priv->use_dark_theme);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->date_taken_as_posted_cb),
-                                priv->date_taken_as_posted);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_proxy_cb),
                                 priv->use_proxy);
 
@@ -611,8 +610,9 @@ _save_data (FrogrSettingsDialog *self)
   frogr_config_set_default_public (priv->config, priv->public_visibility);
   frogr_config_set_default_family (priv->config, priv->family_visibility);
   frogr_config_set_default_friend (priv->config, priv->friend_visibility);
-  frogr_config_set_default_send_geolocation_data (priv->config, priv->send_geolocation_data);
   frogr_config_set_default_show_in_search (priv->config, priv->show_in_search);
+  frogr_config_set_default_send_geolocation_data (priv->config, priv->send_geolocation_data);
+  frogr_config_set_default_date_taken_as_posted (priv->config, priv->date_taken_as_posted);
 
   frogr_config_set_default_license (priv->config, priv->license);
   frogr_config_set_default_content_type (priv->config, priv->content_type);
@@ -622,7 +622,6 @@ _save_data (FrogrSettingsDialog *self)
   frogr_config_set_keep_file_extensions (priv->config, priv->keep_file_extensions);
   frogr_config_set_import_tags_from_metadata (priv->config, priv->import_tags);
   frogr_config_set_use_dark_theme (priv->config, priv->use_dark_theme);
-  frogr_config_set_date_taken_as_posted (priv->config, priv->date_taken_as_posted);
 
   frogr_config_set_use_proxy (priv->config, priv->use_proxy);
 
@@ -710,16 +709,22 @@ _on_button_toggled (GtkToggleButton *button, gpointer data)
       DEBUG ("friend visibility set to %s", active ? "TRUE" : "FALSE");
     }
 
+  if (GTK_WIDGET (button) == priv->show_in_search_cb)
+    {
+      priv->show_in_search = active;
+      DEBUG ("Show up in global search results set to %s", active ? "TRUE" : "FALSE");
+    }
+
   if (GTK_WIDGET (button) == priv->send_geolocation_data_cb)
     {
       priv->send_geolocation_data = active;
       DEBUG ("Send geolocation data set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->show_in_search_cb)
+  if (GTK_WIDGET (button) == priv->date_taken_as_posted_cb)
     {
-      priv->show_in_search = active;
-      DEBUG ("Show up in global search results set to %s", active ? "TRUE" : "FALSE");
+      priv->date_taken_as_posted = active;
+      DEBUG ("Set '_Taken Date' as 'Posted Date' set to %s", active ? "TRUE" : "FALSE");
     }
 
   if (active && GTK_WIDGET (button) == priv->photo_content_rb)
@@ -782,12 +787,6 @@ _on_button_toggled (GtkToggleButton *button, gpointer data)
       DEBUG ("Use Dark Theme set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->date_taken_as_posted_cb)
-    {
-      priv->date_taken_as_posted = active;
-      DEBUG ("Set '_Taken Date' as 'Posted Date' set to %s", active ? "TRUE" : "FALSE");
-    }
-
   if (GTK_WIDGET (button) == priv->use_proxy_cb)
     {
       priv->use_proxy = active;
@@ -928,8 +927,9 @@ frogr_settings_dialog_init (FrogrSettingsDialog *self)
   priv->private_rb = NULL;
   priv->friend_cb = NULL;
   priv->family_cb = NULL;
-  priv->send_geolocation_data_cb = NULL;
   priv->show_in_search_cb = NULL;
+  priv->send_geolocation_data_cb = NULL;
+  priv->date_taken_as_posted_cb = NULL;
   priv->license_cb = NULL;
   priv->photo_content_rb = NULL;
   priv->sshot_content_rb = NULL;
@@ -941,7 +941,6 @@ frogr_settings_dialog_init (FrogrSettingsDialog *self)
   priv->keep_file_extensions_cb = NULL;
   priv->import_tags_cb = NULL;
   priv->use_dark_theme_cb = NULL;
-  priv->date_taken_as_posted_cb = NULL;
   priv->use_proxy_cb = NULL;
   priv->proxy_host_label = NULL;
   priv->proxy_host_entry = NULL;
@@ -954,8 +953,9 @@ frogr_settings_dialog_init (FrogrSettingsDialog *self)
   priv->public_visibility = FALSE;
   priv->family_visibility = FALSE;
   priv->friend_visibility = FALSE;
-  priv->send_geolocation_data = FALSE;
   priv->show_in_search = FALSE;
+  priv->send_geolocation_data = FALSE;
+  priv->date_taken_as_posted = TRUE;
   priv->license = FSP_LICENSE_NONE;
   priv->safety_level = FSP_SAFETY_LEVEL_NONE;
   priv->content_type = FSP_CONTENT_TYPE_NONE;
@@ -963,7 +963,6 @@ frogr_settings_dialog_init (FrogrSettingsDialog *self)
   priv->keep_file_extensions = FALSE;
   priv->import_tags = TRUE;
   priv->use_dark_theme = TRUE;
-  priv->date_taken_as_posted = TRUE;
   priv->use_proxy = FALSE;
   priv->proxy_host = NULL;
   priv->proxy_port = NULL;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]