Author: post
Date: 2010-06-14 22:24:23 +0200 (Mon, 14 Jun 2010)
New Revision: 3423

Modified:
   trunk/plugins/output-picasa/output-picasa.c
Log:
Picasa: Store album as a property.

Modified: trunk/plugins/output-picasa/output-picasa.c
===================================================================
--- trunk/plugins/output-picasa/output-picasa.c 2010-06-14 19:14:13 UTC (rev 
3422)
+++ trunk/plugins/output-picasa/output-picasa.c 2010-06-14 20:24:23 UTC (rev 
3423)
@@ -67,7 +67,9 @@
        PROP_0,
        PROP_LOGO,
        PROP_JPEG_QUALITY,
-        PROP_ALBUM_SELECTOR
+       PROP_ALBUM_SELECTOR,
+       PROP_ALBUM_ID,
+       PROP_FILENAME /* Required for a output plugin - not in use */
 };
 
 static void get_property (GObject * object, guint property_id, GValue * value, 
GParamSpec * pspec);
@@ -111,6 +113,11 @@
                                                                                
    "Album selector",
                                                                                
    GTK_TYPE_WIDGET,
                                                                                
    G_PARAM_READABLE));
+        g_object_class_install_property (object_class,
+                                         PROP_ALBUM_ID, g_param_spec_string 
("album id",
+                                                                               
    "album id",
+                                                                               
    "Album id","",
+                                                                               
    G_PARAM_READWRITE));
 
        output_class->execute = execute;
        output_class->display_name = _("Upload photo to Picasa");
@@ -120,6 +127,7 @@
 rs_picasa_init (RSPicasa * picasa)
 {
        picasa->quality = 90;
+       picasa->album_id = rs_conf_get_string(CONF_PICASA_CLIENT_ALBUM_ID);
 }
 
 static void
@@ -135,9 +143,12 @@
        case PROP_LOGO:
                g_value_set_object(value, get_logo_widget(picasa));
                break;
-        case PROP_ALBUM_SELECTOR:
-                g_value_set_object(value, get_album_selector_widget(picasa));
-                break;
+       case PROP_ALBUM_SELECTOR:
+               g_value_set_object(value, get_album_selector_widget(picasa));
+               break;
+       case PROP_ALBUM_ID:
+               g_value_set_string(value, picasa->album_id);
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
        }
@@ -153,6 +164,9 @@
        case PROP_JPEG_QUALITY:
                picasa->quality = g_value_get_int (value);
                break;
+       case PROP_ALBUM_ID:
+               picasa->album_id = g_strdup(g_value_get_string(value));
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
        }
@@ -170,7 +184,7 @@
 deal_with_error(GError **error)
 {
        if (!*error)
-               return FALSE;
+               return TRUE;
        
        g_warning("Error from Picasa: '%s'", (*error)->message);
 
@@ -189,7 +203,7 @@
 
        g_clear_error(error);
 
-       return TRUE;
+       return FALSE;
 }
 
 static void
@@ -328,7 +342,7 @@
 get_album_selector_widget(RSPicasa *picasa)
 {
         GError *error = NULL;
-        gchar *album_id = rs_conf_get_string(CONF_PICASA_CLIENT_ALBUM_ID);
+        gchar *album_id = picasa->album_id;
 
        PicasaClient *picasa_client = rs_picasa_client_init();
        if (NULL == picasa_client)
@@ -394,6 +408,9 @@
        if (NULL == picasa_client)
                return FALSE;
 
+       if (!picasa_client->auth_token);
+               return FALSE;
+
        gchar *temp_file = g_strdup_printf ("%s%s.rawstudio-tmp-%d.jpg", 
g_get_tmp_dir (), G_DIR_SEPARATOR_S, (gint) (g_random_double () * 10000.0));
 
        g_object_set (jpegsave, "filename", temp_file, "quality", 
picasa->quality, NULL);


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

Reply via email to