~ubuntu-branches/ubuntu/saucy/darktable/saucy

« back to all changes in this revision

Viewing changes to src/imageio/storage/flickr.c

  • Committer: Package Import Robot
  • Author(s): David Bremner
  • Date: 2011-11-13 10:46:00 UTC
  • mfrom: (8.1.1 sid)
  • Revision ID: package-import@ubuntu.com-20111113104600-56c59agrs615gjim
New upstream version

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
    This file is part of darktable,
3
 
    copyright (c) 2010 Jose Carlos Garcia Sogo
 
3
    copyright (c) 2010-2011 Jose Carlos Garcia Sogo
4
4
 
5
5
    darktable is free software: you can redistribute it and/or modify
6
6
    it under the terms of the GNU General Public License as published by
62
62
typedef struct dt_storage_flickr_gui_data_t
63
63
{
64
64
 
65
 
  GtkLabel *label1,*label2,*label3, *label4,*label5,*label6,*label7;                           // username, password, albums, status, albumtitle, albumsummary, albumrights
66
 
  GtkEntry *entry1,*entry2,*entry3,*entry4;                          // username, password, albumtitle,albumsummary
67
 
  GtkComboBox *comboBox1;                                 // album box
68
 
  GtkCheckButton *checkButton1,*checkButton2;                         // public album, export tags
69
 
  GtkDarktableButton *dtbutton1;                        // refresh albums
70
 
  GtkBox *hbox1;                                                    // Create album options...
 
65
  GtkLabel *label1,*label2,*label3, *label4,*label5,*label6,*label7; // username, password, albums, status, albumtitle, albumsummary, albumrights
 
66
  GtkEntry *entry1,*entry2,*entry3,*entry4;        // username, password, albumtitle,albumsummary
 
67
  GtkComboBox *comboBox1;                          // album box
 
68
  GtkCheckButton *checkButton1,*checkButton2;      // public album, export tags
 
69
  GtkDarktableButton *dtbutton1;                   // refresh albums
 
70
  GtkButton *button;                               // login button. These buttons call the same functions
 
71
  GtkBox *hbox1;                                   // Create album options...
71
72
 
72
73
  char *user_token;
73
74
 
277
278
    int i, length;
278
279
 
279
280
    length = g_list_length(tags);
280
 
    if (length > 1)
 
281
    if (length > 0)
281
282
    {
282
283
      array = g_malloc(sizeof(gchar*)*(length+1));
283
284
 
284
 
      array[0] = "";
285
 
 
286
 
      for (i=1; i<length; i++)
 
285
      for (i=0; i<length; i++)
287
286
      {
288
287
        dt_tag_t *t = g_list_nth_data(tags,i);
 
288
 
289
289
        if (t)
290
 
        {
291
 
          array[i] = g_strconcat ("\"", t->tag, "\"", NULL);
 
290
        {
 
291
          if (!g_ascii_strncasecmp(t->tag, "darktable|", 10))
 
292
          {
 
293
            array[i] = g_strdup("darktable");
 
294
          } else
 
295
            array[i] = g_strconcat ("\"", t->tag, "\"", NULL);
292
296
        }
293
297
 
294
298
      }
295
299
      array[length] = NULL;
296
300
      params->tags = g_strjoinv(" ",array);
297
 
//TODO      g_strfreev(array);
 
301
      g_strfreev(array);
298
302
    }
299
303
  }
300
304
  params->photo_file = fname; //fname should be the URI of temp file
486
490
  self->gui_data = (dt_storage_flickr_gui_data_t *)g_malloc(sizeof(dt_storage_flickr_gui_data_t));
487
491
  memset(self->gui_data,0,sizeof(dt_storage_flickr_gui_data_t));
488
492
  dt_storage_flickr_gui_data_t *ui= self->gui_data;
489
 
  self->widget = gtk_vbox_new(TRUE, 0);
 
493
  self->widget = gtk_vbox_new(FALSE, 0);
490
494
 
491
495
  GtkWidget *hbox1=gtk_hbox_new(FALSE,5);
 
496
  GtkWidget *hbox0=gtk_hbox_new(FALSE,5);
492
497
  GtkWidget *vbox1=gtk_vbox_new(FALSE,0);
493
498
  GtkWidget *vbox2=gtk_vbox_new(FALSE,0);
494
499
 
495
500
  ui->label1 = GTK_LABEL(  gtk_label_new( _("flickr user") ) );
496
 
//  ui->label2 = GTK_LABEL(  gtk_label_new( _("F_password") ) );
497
501
  ui->label3 = GTK_LABEL(  gtk_label_new( _("photosets") ) );
498
502
  ui->label4 = GTK_LABEL(  gtk_label_new( NULL ) );
 
503
 
 
504
  set_status(ui,_("click login button to start"), "#ffffff");
 
505
  
499
506
  ui->label5 = GTK_LABEL(  gtk_label_new( _("title") ) );
500
507
  ui->label6 = GTK_LABEL(  gtk_label_new( _("summary") ) );
501
 
//  ui->label7 = GTK_LABEL(  gtk_label_new( _("F_rights") ) );
502
508
  gtk_misc_set_alignment(GTK_MISC(ui->label1), 0.0, 0.5);
503
 
//  gtk_misc_set_alignment(GTK_MISC(ui->label2), 0.0, 0.5);
504
509
  gtk_misc_set_alignment(GTK_MISC(ui->label3), 0.0, 0.5);
505
510
  gtk_misc_set_alignment(GTK_MISC(ui->label5), 0.0, 0.5);
506
511
  gtk_misc_set_alignment(GTK_MISC(ui->label6), 0.0, 0.5);
507
 
//  gtk_misc_set_alignment(GTK_MISC(ui->label7), 0.0, 0.5);
508
512
 
509
513
  ui->entry1 = GTK_ENTRY( gtk_entry_new() );
510
 
//  ui->entry2 = GTK_ENTRY( gtk_entry_new() );
511
514
  ui->entry3 = GTK_ENTRY( gtk_entry_new() );  // Album title
512
515
  ui->entry4 = GTK_ENTRY( gtk_entry_new() );  // Album summary
513
516
 
514
517
  dt_gui_key_accel_block_on_focus (GTK_WIDGET (ui->entry1));
515
 
//  dt_gui_key_accel_block_on_focus (GTK_WIDGET (ui->entry2));
516
518
  dt_gui_key_accel_block_on_focus (GTK_WIDGET (ui->entry3));
517
519
  dt_gui_key_accel_block_on_focus (GTK_WIDGET (ui->entry4));
518
520
 
533
535
  */
534
536
  GHashTable* table = dt_pwstorage_get("flickr");
535
537
  gchar* _username = g_strdup( g_hash_table_lookup(table, "username"));
536
 
  //gchar* _password = g_strdup( g_hash_table_lookup(table, "token"));
537
538
  g_hash_table_destroy(table);
538
539
  gtk_entry_set_text( ui->entry1,  _username == NULL?"":_username );
539
 
//  gtk_entry_set_text( ui->entry2,  _password == NULL?"":_password );
540
540
  gtk_entry_set_text( ui->entry3, _("my new photoset") );
541
541
  gtk_entry_set_text( ui->entry4, _("exported from darktable") );
542
542
 
543
 
//  gtk_entry_set_visibility(ui->entry2, FALSE);
544
 
 
545
543
  GtkWidget *albumlist=gtk_hbox_new(FALSE,0);
546
544
  ui->comboBox1=GTK_COMBO_BOX( gtk_combo_box_new_text()); // Available albums
547
545
 
557
555
 
558
556
  ui->dtbutton1 = DTGTK_BUTTON( dtgtk_button_new(dtgtk_cairo_paint_refresh,0) );
559
557
  g_object_set(G_OBJECT(ui->dtbutton1), "tooltip-text", _("refresh album list"), (char *)NULL);
 
558
  
 
559
  ui->button = GTK_BUTTON(gtk_button_new_with_label(_("login")));
 
560
  g_object_set(G_OBJECT(ui->button), "tooltip-text", _("Flickr login"), (char *)NULL);
 
561
 
560
562
  gtk_widget_set_sensitive( GTK_WIDGET(ui->comboBox1), FALSE);
561
563
  gtk_combo_box_set_row_separator_func(ui->comboBox1,combobox_separator,ui->comboBox1,NULL);
562
564
  gtk_box_pack_start(GTK_BOX(albumlist), GTK_WIDGET(ui->comboBox1), TRUE, TRUE, 0);
563
565
  gtk_box_pack_start(GTK_BOX(albumlist), GTK_WIDGET(ui->dtbutton1), FALSE, FALSE, 0);
564
566
 
565
 
  ui->checkButton1 = GTK_CHECK_BUTTON( gtk_check_button_new_with_label(_("public images")) );
 
567
  ui->checkButton1 = GTK_CHECK_BUTTON( gtk_check_button_new_with_label(_("make images public")) );
566
568
  ui->checkButton2 = GTK_CHECK_BUTTON( gtk_check_button_new_with_label(_("export tags")) );
567
 
//  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON( ui->checkButton1 ),TRUE);
568
569
  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON( ui->checkButton2 ),TRUE);
569
 
  // Auth
570
 
  gtk_box_pack_start(GTK_BOX(hbox1), vbox1, FALSE, FALSE, 0);
571
 
  gtk_box_pack_start(GTK_BOX(hbox1), vbox2, TRUE, TRUE, 0);
572
 
  gtk_box_pack_start(GTK_BOX(self->widget), hbox1, TRUE, FALSE, 5);
573
 
  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( ui->label1 ), TRUE, TRUE, 0);
574
 
//  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( ui->label2 ), TRUE, TRUE, 0);
 
570
  
 
571
  gtk_box_pack_start(GTK_BOX(self->widget), hbox0, TRUE, FALSE, 5);
 
572
  gtk_box_pack_start(GTK_BOX(self->widget), hbox1, TRUE, FALSE, 0);
 
573
  gtk_box_pack_start(GTK_BOX( hbox0 ), GTK_WIDGET( ui->label1 ), TRUE, TRUE, 0);
 
574
  gtk_box_pack_start(GTK_BOX( hbox0 ), GTK_WIDGET( ui->entry1 ), TRUE, FALSE, 0);
 
575
  gtk_box_pack_start(GTK_BOX( hbox0 ), GTK_WIDGET( ui->button ), FALSE, FALSE, 0);
 
576
  gtk_box_pack_start(GTK_BOX( hbox1 ), vbox1, FALSE, FALSE, 0);
 
577
  gtk_box_pack_start(GTK_BOX( hbox1 ), vbox2, TRUE, TRUE, 0);
575
578
  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( gtk_label_new("")), TRUE, TRUE, 0);
576
579
  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( gtk_label_new("")), TRUE, TRUE, 0);
577
580
  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( ui->label3 ), TRUE, TRUE, 0);
578
 
  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( ui->entry1 ), TRUE, FALSE, 0);
579
 
//  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( ui->entry2 ), TRUE, FALSE, 0);
580
581
  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( ui->label4 ), TRUE, FALSE, 0);
581
582
  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( ui->checkButton1 ), TRUE, FALSE, 0);
582
583
  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( ui->checkButton2 ), TRUE, FALSE, 0);
583
584
  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( albumlist ), TRUE, FALSE, 0);
584
585
 
585
 
 
586
586
  // Create Album
587
587
  ui->hbox1=GTK_BOX(gtk_hbox_new(FALSE,5));
588
588
  gtk_widget_set_no_show_all(GTK_WIDGET(ui->hbox1), TRUE);
594
594
  gtk_box_pack_start(GTK_BOX(self->widget), GTK_WIDGET(ui->hbox1), TRUE, FALSE, 5);
595
595
  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( ui->label5 ), TRUE, TRUE, 0);
596
596
  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( ui->label6 ), TRUE, TRUE, 0);
597
 
//  gtk_box_pack_start(GTK_BOX( vbox1 ), GTK_WIDGET( ui->label7 ), TRUE, TRUE, 0);
598
597
 
599
598
  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( ui->entry3 ), TRUE, FALSE, 0);
600
599
  gtk_box_pack_start(GTK_BOX( vbox2 ), GTK_WIDGET( ui->entry4 ), TRUE, FALSE, 0);
603
602
  // add signal on realize and hide gtk_widget_hide(GTK_WIDGET(ui->hbox1));
604
603
 
605
604
  g_signal_connect(G_OBJECT(ui->dtbutton1), "clicked", G_CALLBACK(flickr_button1_clicked), (gpointer)ui);
 
605
  g_signal_connect(G_OBJECT(ui->button), "clicked", G_CALLBACK(flickr_button1_clicked), (gpointer)ui);
606
606
  g_signal_connect(G_OBJECT(ui->entry1), "changed", G_CALLBACK(flickr_entry_changed), (gpointer)ui);
607
 
//  g_signal_connect(G_OBJECT(ui->entry2), "changed", G_CALLBACK(flickr_entry_changed), (gpointer)ui);
608
607
  g_signal_connect(G_OBJECT(ui->comboBox1), "changed", G_CALLBACK(flickr_album_changed), (gpointer)ui);
609
608
 
610
609
  /**
672
671
  dt_image_t *img = dt_image_cache_get(imgid, 'r');
673
672
  caption = g_path_get_basename( img->filename );
674
673
 
675
 
  (g_strrstr(caption,"."))[0]='\0'; // Shop extension...
 
674
  // If title is not existing, then use the filename without extension. If not, then use title instead
 
675
  GList *title = dt_metadata_get(img->id, "Xmp.dc.title", NULL);
 
676
  if(title != NULL)
 
677
  {
 
678
    caption = title->data;
 
679
  }
 
680
  else
 
681
  {
 
682
    (g_strrstr(caption,"."))[0]='\0'; // Shop extension...
 
683
  }
676
684
 
677
685
  GList *desc = dt_metadata_get(img->id, "Xmp.dc.description", NULL);
678
686
  if(desc != NULL)