Advertisement
Guest User

Daniel

a guest
May 7th, 2010
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 121.60 KB | None | 0 0
  1. diff -crB easytag-2.1.6/src/bar.c easytag-2.1.6_more_album_artist/src/bar.c
  2. *** easytag-2.1.6/src/bar.c 2008-03-22 23:25:35.000000000 +0100
  3. --- easytag-2.1.6_more_album_artist/src/bar.c   2010-02-24 16:52:53.000000000 +0100
  4. ***************
  5. *** 83,89 ****
  6.       QCASE_DATA(AM_SORT_DESCENDING_TITLE,           ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_TITLE);
  7.       QCASE_DATA(AM_SORT_ASCENDING_ARTIST,           ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_ASCENDING_ARTIST);
  8.       QCASE_DATA(AM_SORT_DESCENDING_ARTIST,          ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_ARTIST);
  9. !     QCASE_DATA(AM_SORT_ASCENDING_ALBUM,            ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_ASCENDING_ALBUM);
  10.       QCASE_DATA(AM_SORT_DESCENDING_ALBUM,           ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_ALBUM);
  11.       QCASE_DATA(AM_SORT_ASCENDING_YEAR,             ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_ASCENDING_YEAR);
  12.       QCASE_DATA(AM_SORT_DESCENDING_YEAR,            ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_YEAR);
  13. --- 83,91 ----
  14.       QCASE_DATA(AM_SORT_DESCENDING_TITLE,           ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_TITLE);
  15.       QCASE_DATA(AM_SORT_ASCENDING_ARTIST,           ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_ASCENDING_ARTIST);
  16.       QCASE_DATA(AM_SORT_DESCENDING_ARTIST,          ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_ARTIST);
  17. !     QCASE_DATA(AM_SORT_ASCENDING_ALBUM_ARTIST,     ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_ASCENDING_ALBUM_ARTIST);
  18. !   QCASE_DATA(AM_SORT_DESCENDING_ALBUM_ARTIST,    ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_ALBUM_ARTIST);
  19. !   QCASE_DATA(AM_SORT_ASCENDING_ALBUM,            ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_ASCENDING_ALBUM);
  20.       QCASE_DATA(AM_SORT_DESCENDING_ALBUM,           ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_ALBUM);
  21.       QCASE_DATA(AM_SORT_ASCENDING_YEAR,             ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_ASCENDING_YEAR);
  22.       QCASE_DATA(AM_SORT_DESCENDING_YEAR,            ET_Sort_Displayed_File_List_And_Update_UI, SORTING_BY_DESCENDING_YEAR);
  23. ***************
  24. *** 156,162 ****
  25.           { AM_SORT_DESCENDING_TITLE,           GTK_STOCK_SORT_DESCENDING, _("Descending by title"),           NULL, _("Descending by title"),           G_CALLBACK(Menu_Sort_Action) },
  26.           { AM_SORT_ASCENDING_ARTIST,           GTK_STOCK_SORT_ASCENDING,  _("Ascending by artist"),           NULL, _("Ascending by artist"),           G_CALLBACK(Menu_Sort_Action) },
  27.           { AM_SORT_DESCENDING_ARTIST,          GTK_STOCK_SORT_DESCENDING, _("Descending by artist"),          NULL, _("Descending by artist"),          G_CALLBACK(Menu_Sort_Action) },
  28. !         { AM_SORT_ASCENDING_ALBUM,            GTK_STOCK_SORT_ASCENDING,  _("Ascending by album"),            NULL, _("Ascending by album"),            G_CALLBACK(Menu_Sort_Action) },
  29.           { AM_SORT_DESCENDING_ALBUM,           GTK_STOCK_SORT_DESCENDING, _("Descending by album"),           NULL, _("Descending by album"),           G_CALLBACK(Menu_Sort_Action) },
  30.           { AM_SORT_ASCENDING_YEAR,             GTK_STOCK_SORT_ASCENDING,  _("Ascending by year"),             NULL, _("Ascending by year"),             G_CALLBACK(Menu_Sort_Action) },
  31.           { AM_SORT_DESCENDING_YEAR,            GTK_STOCK_SORT_DESCENDING, _("Descending by year"),            NULL, _("Descending by year"),            G_CALLBACK(Menu_Sort_Action) },
  32. --- 158,166 ----
  33.           { AM_SORT_DESCENDING_TITLE,           GTK_STOCK_SORT_DESCENDING, _("Descending by title"),           NULL, _("Descending by title"),           G_CALLBACK(Menu_Sort_Action) },
  34.           { AM_SORT_ASCENDING_ARTIST,           GTK_STOCK_SORT_ASCENDING,  _("Ascending by artist"),           NULL, _("Ascending by artist"),           G_CALLBACK(Menu_Sort_Action) },
  35.           { AM_SORT_DESCENDING_ARTIST,          GTK_STOCK_SORT_DESCENDING, _("Descending by artist"),          NULL, _("Descending by artist"),          G_CALLBACK(Menu_Sort_Action) },
  36. !         { AM_SORT_ASCENDING_ALBUM_ARTIST,     GTK_STOCK_SORT_ASCENDING,  _("Ascending by album artist"),            NULL, _("Ascending by album artist"),   G_CALLBACK(Menu_Sort_Action) },
  37. !         { AM_SORT_DESCENDING_ALBUM_ARTIST,    GTK_STOCK_SORT_DESCENDING, _("Descending by album artist"),           NULL, _("Descending by album artist"),   G_CALLBACK(Menu_Sort_Action) },
  38. !       { AM_SORT_ASCENDING_ALBUM,            GTK_STOCK_SORT_ASCENDING,  _("Ascending by album"),            NULL, _("Ascending by album"),            G_CALLBACK(Menu_Sort_Action) },
  39.           { AM_SORT_DESCENDING_ALBUM,           GTK_STOCK_SORT_DESCENDING, _("Descending by album"),           NULL, _("Descending by album"),           G_CALLBACK(Menu_Sort_Action) },
  40.           { AM_SORT_ASCENDING_YEAR,             GTK_STOCK_SORT_ASCENDING,  _("Ascending by year"),             NULL, _("Ascending by year"),             G_CALLBACK(Menu_Sort_Action) },
  41.           { AM_SORT_DESCENDING_YEAR,            GTK_STOCK_SORT_DESCENDING, _("Descending by year"),            NULL, _("Descending by year"),            G_CALLBACK(Menu_Sort_Action) },
  42. diff -crB easytag-2.1.6/src/bar.h easytag-2.1.6_more_album_artist/src/bar.h
  43. *** easytag-2.1.6/src/bar.h 2008-03-22 23:25:55.000000000 +0100
  44. --- easytag-2.1.6_more_album_artist/src/bar.h   2010-02-24 13:45:49.000000000 +0100
  45. ***************
  46. *** 117,122 ****
  47. --- 117,124 ----
  48.   #define AM_SORT_DESCENDING_TITLE            "SortTitleDesc"
  49.   #define AM_SORT_ASCENDING_ARTIST            "SortArtistAsc"
  50.   #define AM_SORT_DESCENDING_ARTIST           "SortArtistDesc"
  51. + #define AM_SORT_ASCENDING_ALBUM_ARTIST      "SortAlbumArtistAsc"
  52. + #define AM_SORT_DESCENDING_ALBUM_ARTIST     "SortAlbumArtistDesc"
  53.   #define AM_SORT_ASCENDING_ALBUM             "SortAlbumAsc"
  54.   #define AM_SORT_DESCENDING_ALBUM            "SortAlbumDesc"
  55.   #define AM_SORT_ASCENDING_YEAR              "SortYearAsc"
  56. diff -crB easytag-2.1.6/src/browser.c easytag-2.1.6_more_album_artist/src/browser.c
  57. *** easytag-2.1.6/src/browser.c 2008-07-12 16:36:19.000000000 +0200
  58. --- easytag-2.1.6_more_album_artist/src/browser.c   2010-02-24 16:11:10.000000000 +0100
  59. ***************
  60. *** 1050,1064 ****
  61.           // File list displays the current filename (name on HardDisk) and tag fields
  62.           gtk_list_store_append(fileListModel, &rowIter);
  63.           track = g_strconcat(FileTag->track ? FileTag->track : "",FileTag->track_total ? "/" : NULL,FileTag->track_total,NULL);
  64. !
  65. !         gtk_list_store_set(fileListModel, &rowIter,
  66.                              LIST_FILE_NAME,          basename_utf8,
  67.                              LIST_FILE_POINTER,       etfilelist->data,
  68.                              LIST_FILE_KEY,           fileKey,
  69.                              LIST_FILE_OTHERDIR,      activate_bg_color,
  70.                              LIST_FILE_TITLE,         FileTag->title,
  71.                              LIST_FILE_ARTIST,        FileTag->artist,
  72. !                            LIST_FILE_ALBUM,         FileTag->album,
  73.                              LIST_FILE_YEAR,          FileTag->year,
  74.                              LIST_FILE_TRACK,         track,
  75.                              LIST_FILE_GENRE,         FileTag->genre,
  76. --- 1050,1065 ----
  77.           // File list displays the current filename (name on HardDisk) and tag fields
  78.           gtk_list_store_append(fileListModel, &rowIter);
  79.           track = g_strconcat(FileTag->track ? FileTag->track : "",FileTag->track_total ? "/" : NULL,FileTag->track_total,NULL);
  80. !      
  81. !       gtk_list_store_set(fileListModel, &rowIter,
  82.                              LIST_FILE_NAME,          basename_utf8,
  83.                              LIST_FILE_POINTER,       etfilelist->data,
  84.                              LIST_FILE_KEY,           fileKey,
  85.                              LIST_FILE_OTHERDIR,      activate_bg_color,
  86.                              LIST_FILE_TITLE,         FileTag->title,
  87.                              LIST_FILE_ARTIST,        FileTag->artist,
  88. !                            LIST_FILE_ALBUM_ARTIST,  FileTag->album_artist,
  89. !                          LIST_FILE_ALBUM,         FileTag->album,
  90.                              LIST_FILE_YEAR,          FileTag->year,
  91.                              LIST_FILE_TRACK,         track,
  92.                              LIST_FILE_GENRE,         FileTag->genre,
  93. ***************
  94. *** 1136,1142 ****
  95.                              LIST_FILE_NAME,          current_basename_utf8,
  96.                              LIST_FILE_TITLE,         FileTag->title,
  97.                              LIST_FILE_ARTIST,        FileTag->artist,
  98. !                            LIST_FILE_ALBUM,         FileTag->album,
  99.                              LIST_FILE_YEAR,          FileTag->year,
  100.                              LIST_FILE_TRACK,         track,
  101.                              LIST_FILE_GENRE,         FileTag->genre,
  102. --- 1137,1144 ----
  103.                              LIST_FILE_NAME,          current_basename_utf8,
  104.                              LIST_FILE_TITLE,         FileTag->title,
  105.                              LIST_FILE_ARTIST,        FileTag->artist,
  106. !                            LIST_FILE_ALBUM_ARTIST,  FileTag->album_artist,
  107. !                          LIST_FILE_ALBUM,         FileTag->album,
  108.                              LIST_FILE_YEAR,          FileTag->year,
  109.                              LIST_FILE_TRACK,         track,
  110.                              LIST_FILE_GENRE,         FileTag->genre,
  111. ***************
  112. *** 1291,1297 ****
  113.                          LIST_FILE_NAME,          current_basename_utf8,
  114.                          LIST_FILE_TITLE,         FileTag->title,
  115.                          LIST_FILE_ARTIST,        FileTag->artist,
  116. !                        LIST_FILE_ALBUM,         FileTag->album,
  117.                          LIST_FILE_YEAR,          FileTag->year,
  118.                          LIST_FILE_TRACK,         track,
  119.                          LIST_FILE_GENRE,         FileTag->genre,
  120. --- 1293,1300 ----
  121.                          LIST_FILE_NAME,          current_basename_utf8,
  122.                          LIST_FILE_TITLE,         FileTag->title,
  123.                          LIST_FILE_ARTIST,        FileTag->artist,
  124. !                        LIST_FILE_ALBUM_ARTIST,  FileTag->album_artist,
  125. !                      LIST_FILE_ALBUM,         FileTag->album,
  126.                          LIST_FILE_YEAR,          FileTag->year,
  127.                          LIST_FILE_TRACK,         track,
  128.                          LIST_FILE_GENRE,         FileTag->genre,
  129. ***************
  130. *** 1435,1441 ****
  131.           gtk_list_store_set(fileListModel, iter,
  132.                              LIST_FILE_TITLE,         FileTag->title,
  133.                              LIST_FILE_ARTIST,        FileTag->artist,
  134. !                            LIST_FILE_ALBUM,         FileTag->album,
  135.                              LIST_FILE_YEAR,          FileTag->year,
  136.                              LIST_FILE_TRACK,         FileTag->track,
  137.                              LIST_FILE_GENRE,         FileTag->genre,
  138. --- 1438,1445 ----
  139.           gtk_list_store_set(fileListModel, iter,
  140.                              LIST_FILE_TITLE,         FileTag->title,
  141.                              LIST_FILE_ARTIST,        FileTag->artist,
  142. !                            LIST_FILE_ALBUM_ARTIST,  FileTag->album_artist,
  143. !                          LIST_FILE_ALBUM,         FileTag->album,
  144.                              LIST_FILE_YEAR,          FileTag->year,
  145.                              LIST_FILE_TRACK,         FileTag->track,
  146.                              LIST_FILE_GENRE,         FileTag->genre,
  147. ***************
  148. *** 1831,1837 ****
  149.           case SORTING_BY_DESCENDING_ARTIST:
  150.               result = ET_Comp_Func_Sort_File_By_Descending_Artist(ETFile1, ETFile2);
  151.               break;
  152. !         case SORTING_BY_ASCENDING_ALBUM:
  153.               result = ET_Comp_Func_Sort_File_By_Ascending_Album(ETFile1, ETFile2);
  154.               break;
  155.           case SORTING_BY_DESCENDING_ALBUM:
  156. --- 1835,1847 ----
  157.           case SORTING_BY_DESCENDING_ARTIST:
  158.               result = ET_Comp_Func_Sort_File_By_Descending_Artist(ETFile1, ETFile2);
  159.               break;
  160. !         case SORTING_BY_ASCENDING_ALBUM_ARTIST:
  161. !             result = ET_Comp_Func_Sort_File_By_Ascending_Album_Artist(ETFile1, ETFile2);
  162. !             break;
  163. !         case SORTING_BY_DESCENDING_ALBUM_ARTIST:
  164. !             result = ET_Comp_Func_Sort_File_By_Descending_Album_Artist(ETFile1, ETFile2);
  165. !             break;
  166. !       case SORTING_BY_ASCENDING_ALBUM:
  167.               result = ET_Comp_Func_Sort_File_By_Ascending_Album(ETFile1, ETFile2);
  168.               break;
  169.           case SORTING_BY_DESCENDING_ALBUM:
  170. ***************
  171. *** 3025,3031 ****
  172.       GtkTooltips *Tips;
  173.       GtkWidget *PopupMenu;
  174.       gchar *BrowserTree_Titles[] = {N_("Tree")};
  175. !     gchar *BrowserList_Titles[] = {N_("File Name"),N_("Title"),N_("Artist"),N_("Album"),
  176.                                      N_("Year"),N_("Track"),N_("Genre"),N_("Comment"),
  177.                                      N_("Composer"),N_("Orig. Artist"),N_("Copyright"),
  178.                                      N_("URL"),N_("Encoded By")};
  179. --- 3035,3041 ----
  180.       GtkTooltips *Tips;
  181.       GtkWidget *PopupMenu;
  182.       gchar *BrowserTree_Titles[] = {N_("Tree")};
  183. !     gchar *BrowserList_Titles[] = {N_("File Name"),N_("Title"),N_("Artist"),N_("Album Artist"),N_("Album"),
  184.                                      N_("Year"),N_("Track"),N_("Genre"),N_("Comment"),
  185.                                      N_("Composer"),N_("Orig. Artist"),N_("Copyright"),
  186.                                      N_("URL"),N_("Encoded By")};
  187. ***************
  188. *** 3376,3381 ****
  189. --- 3386,3392 ----
  190.                                          G_TYPE_STRING,
  191.                                          G_TYPE_STRING,
  192.                                          G_TYPE_STRING,
  193. +                                      G_TYPE_STRING,
  194.                                          G_TYPE_STRING,
  195.                                          G_TYPE_STRING,
  196.                                          G_TYPE_STRING,
  197. ***************
  198. *** 3433,3445 ****
  199.                                           NULL);
  200.       gtk_tree_view_append_column(GTK_TREE_VIEW(BrowserList), column);
  201.  
  202. !     // Column for Album
  203.       column = gtk_tree_view_column_new();
  204.       renderer = gtk_cell_renderer_text_new();
  205.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  206.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  207.       gtk_tree_view_column_set_title(column, _(BrowserList_Titles[3]));
  208.       gtk_tree_view_column_set_attributes(column, renderer,
  209.                                           "text",           LIST_FILE_ALBUM,
  210.                                           "weight",         LIST_FONT_WEIGHT,
  211.                                           "background-gdk", LIST_ROW_BACKGROUND,
  212. --- 3444,3470 ----
  213.                                           NULL);
  214.       gtk_tree_view_append_column(GTK_TREE_VIEW(BrowserList), column);
  215.  
  216. !     // Column for Album Artist
  217.       column = gtk_tree_view_column_new();
  218.       renderer = gtk_cell_renderer_text_new();
  219.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  220.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  221.       gtk_tree_view_column_set_title(column, _(BrowserList_Titles[3]));
  222.       gtk_tree_view_column_set_attributes(column, renderer,
  223. +                                         "text",           LIST_FILE_ALBUM_ARTIST,
  224. +                                         "weight",         LIST_FONT_WEIGHT,
  225. +                                         "background-gdk", LIST_ROW_BACKGROUND,
  226. +                                         "foreground-gdk", LIST_ROW_FOREGROUND,
  227. +                                         NULL);
  228. +     gtk_tree_view_append_column(GTK_TREE_VIEW(BrowserList), column);
  229. +  
  230. +     // Column for Album
  231. +     column = gtk_tree_view_column_new();
  232. +     renderer = gtk_cell_renderer_text_new();
  233. +     gtk_tree_view_column_pack_start(column, renderer, FALSE);
  234. +     gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  235. +     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[4]));
  236. +     gtk_tree_view_column_set_attributes(column, renderer,
  237.                                           "text",           LIST_FILE_ALBUM,
  238.                                           "weight",         LIST_FONT_WEIGHT,
  239.                                           "background-gdk", LIST_ROW_BACKGROUND,
  240. ***************
  241. *** 3452,3458 ****
  242.       renderer = gtk_cell_renderer_text_new();
  243.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  244.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  245. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[4]));
  246.       gtk_tree_view_column_set_attributes(column, renderer,
  247.                                           "text",           LIST_FILE_YEAR,
  248.                                           "weight",         LIST_FONT_WEIGHT,
  249. --- 3477,3483 ----
  250.       renderer = gtk_cell_renderer_text_new();
  251.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  252.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  253. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[5]));
  254.       gtk_tree_view_column_set_attributes(column, renderer,
  255.                                           "text",           LIST_FILE_YEAR,
  256.                                           "weight",         LIST_FONT_WEIGHT,
  257. ***************
  258. *** 3466,3472 ****
  259.       renderer = gtk_cell_renderer_text_new();
  260.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  261.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  262. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[5]));
  263.       gtk_tree_view_column_set_attributes(column, renderer,
  264.                                           "text",           LIST_FILE_TRACK,
  265.                                           "weight",         LIST_FONT_WEIGHT,
  266. --- 3491,3497 ----
  267.       renderer = gtk_cell_renderer_text_new();
  268.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  269.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  270. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[6]));
  271.       gtk_tree_view_column_set_attributes(column, renderer,
  272.                                           "text",           LIST_FILE_TRACK,
  273.                                           "weight",         LIST_FONT_WEIGHT,
  274. ***************
  275. *** 3480,3486 ****
  276.       renderer = gtk_cell_renderer_text_new();
  277.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  278.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  279. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[6]));
  280.       gtk_tree_view_column_set_attributes(column, renderer,
  281.                                           "text",           LIST_FILE_GENRE,
  282.                                           "weight",         LIST_FONT_WEIGHT,
  283. --- 3505,3511 ----
  284.       renderer = gtk_cell_renderer_text_new();
  285.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  286.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  287. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[7]));
  288.       gtk_tree_view_column_set_attributes(column, renderer,
  289.                                           "text",           LIST_FILE_GENRE,
  290.                                           "weight",         LIST_FONT_WEIGHT,
  291. ***************
  292. *** 3494,3500 ****
  293.       renderer = gtk_cell_renderer_text_new();
  294.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  295.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  296. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[7]));
  297.       gtk_tree_view_column_set_attributes(column, renderer,
  298.                                           "text",           LIST_FILE_COMMENT,
  299.                                           "weight",         LIST_FONT_WEIGHT,
  300. --- 3519,3525 ----
  301.       renderer = gtk_cell_renderer_text_new();
  302.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  303.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  304. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[8]));
  305.       gtk_tree_view_column_set_attributes(column, renderer,
  306.                                           "text",           LIST_FILE_COMMENT,
  307.                                           "weight",         LIST_FONT_WEIGHT,
  308. ***************
  309. *** 3508,3514 ****
  310.       renderer = gtk_cell_renderer_text_new();
  311.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  312.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  313. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[8]));
  314.       gtk_tree_view_column_set_attributes(column, renderer,
  315.                                           "text",           LIST_FILE_COMPOSER,
  316.                                           "weight",         LIST_FONT_WEIGHT,
  317. --- 3533,3539 ----
  318.       renderer = gtk_cell_renderer_text_new();
  319.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  320.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  321. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[9]));
  322.       gtk_tree_view_column_set_attributes(column, renderer,
  323.                                           "text",           LIST_FILE_COMPOSER,
  324.                                           "weight",         LIST_FONT_WEIGHT,
  325. ***************
  326. *** 3522,3528 ****
  327.       renderer = gtk_cell_renderer_text_new();
  328.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  329.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  330. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[9]));
  331.       gtk_tree_view_column_set_attributes(column, renderer,
  332.                                           "text",           LIST_FILE_ORIG_ARTIST,
  333.                                           "weight",         LIST_FONT_WEIGHT,
  334. --- 3547,3553 ----
  335.       renderer = gtk_cell_renderer_text_new();
  336.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  337.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  338. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[10]));
  339.       gtk_tree_view_column_set_attributes(column, renderer,
  340.                                           "text",           LIST_FILE_ORIG_ARTIST,
  341.                                           "weight",         LIST_FONT_WEIGHT,
  342. ***************
  343. *** 3536,3542 ****
  344.       renderer = gtk_cell_renderer_text_new();
  345.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  346.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  347. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[10]));
  348.       gtk_tree_view_column_set_attributes(column, renderer,
  349.                                           "text",           LIST_FILE_COPYRIGHT,
  350.                                           "weight",         LIST_FONT_WEIGHT,
  351. --- 3561,3567 ----
  352.       renderer = gtk_cell_renderer_text_new();
  353.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  354.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  355. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[11]));
  356.       gtk_tree_view_column_set_attributes(column, renderer,
  357.                                           "text",           LIST_FILE_COPYRIGHT,
  358.                                           "weight",         LIST_FONT_WEIGHT,
  359. ***************
  360. *** 3550,3556 ****
  361.       renderer = gtk_cell_renderer_text_new();
  362.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  363.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  364. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[11]));
  365.       gtk_tree_view_column_set_attributes(column, renderer,
  366.                                           "text",           LIST_FILE_URL,
  367.                                           "weight",         LIST_FONT_WEIGHT,
  368. --- 3575,3581 ----
  369.       renderer = gtk_cell_renderer_text_new();
  370.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  371.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  372. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[12]));
  373.       gtk_tree_view_column_set_attributes(column, renderer,
  374.                                           "text",           LIST_FILE_URL,
  375.                                           "weight",         LIST_FONT_WEIGHT,
  376. ***************
  377. *** 3564,3570 ****
  378.       renderer = gtk_cell_renderer_text_new();
  379.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  380.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  381. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[12]));
  382.       gtk_tree_view_column_set_attributes(column, renderer,
  383.                                           "text",           LIST_FILE_ENCODED_BY,
  384.                                           "weight",         LIST_FONT_WEIGHT,
  385. --- 3589,3595 ----
  386.       renderer = gtk_cell_renderer_text_new();
  387.       gtk_tree_view_column_pack_start(column, renderer, FALSE);
  388.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  389. !     gtk_tree_view_column_set_title(column, _(BrowserList_Titles[13]));
  390.       gtk_tree_view_column_set_attributes(column, renderer,
  391.                                           "text",           LIST_FILE_ENCODED_BY,
  392.                                           "weight",         LIST_FONT_WEIGHT,
  393. diff -crB easytag-2.1.6/src/browser.h easytag-2.1.6_more_album_artist/src/browser.h
  394. *** easytag-2.1.6/src/browser.h 2008-03-22 22:22:19.000000000 +0100
  395. --- easytag-2.1.6_more_album_artist/src/browser.h   2010-02-24 13:45:49.000000000 +0100
  396. ***************
  397. *** 83,89 ****
  398.       // Tag fields
  399.       LIST_FILE_TITLE,
  400.       LIST_FILE_ARTIST,
  401. !     LIST_FILE_ALBUM,
  402.       LIST_FILE_YEAR,
  403.       LIST_FILE_TRACK,
  404.       LIST_FILE_GENRE,
  405. --- 83,90 ----
  406.       // Tag fields
  407.       LIST_FILE_TITLE,
  408.       LIST_FILE_ARTIST,
  409. !     LIST_FILE_ALBUM_ARTIST,
  410. !   LIST_FILE_ALBUM,
  411.       LIST_FILE_YEAR,
  412.       LIST_FILE_TRACK,
  413.       LIST_FILE_GENRE,
  414. diff -crB easytag-2.1.6/src/easytag.c easytag-2.1.6_more_album_artist/src/easytag.c
  415. *** easytag-2.1.6/src/easytag.c 2008-05-22 00:06:00.000000000 +0200
  416. --- easytag-2.1.6_more_album_artist/src/easytag.c   2010-02-24 17:07:57.000000000 +0100
  417. ***************
  418. *** 650,668 ****
  419.       Attach_Popup_Menu_To_Tag_Entries(GTK_ENTRY(ArtistEntry));
  420.       g_object_set_data(G_OBJECT(ArtistEntry),"MButtonName",ArtistMButton);
  421.  
  422.       /* Album */
  423.       AlbumLabel = gtk_label_new(_("Album:"));
  424. !     gtk_table_attach(GTK_TABLE(Table),AlbumLabel,0,1,2,3,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  425.       gtk_misc_set_alignment(GTK_MISC(AlbumLabel),1,0.5);
  426.  
  427.       AlbumEntry = gtk_entry_new();
  428. !     gtk_table_attach(GTK_TABLE(Table),AlbumEntry,1,7,2,3,
  429.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  430.  
  431.       AlbumMButton = gtk_button_new();
  432.       //gtk_widget_set_size_request(AlbumMButton, 10, 10);
  433.       gtk_widget_set_size_request(AlbumMButton,MButtonSize,MButtonSize);
  434. !     gtk_table_attach(GTK_TABLE(Table),AlbumMButton,7,8,2,3,0,0,TablePadding,TablePadding);
  435.       g_signal_connect(G_OBJECT(AlbumMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  436.       gtk_tooltips_set_tip(Tips,AlbumMButton,_("Tag selected files with this album name"),NULL);
  437.  
  438. --- 650,686 ----
  439.       Attach_Popup_Menu_To_Tag_Entries(GTK_ENTRY(ArtistEntry));
  440.       g_object_set_data(G_OBJECT(ArtistEntry),"MButtonName",ArtistMButton);
  441.  
  442. +   /* Album Artist */
  443. +     AlbumArtistLabel = gtk_label_new(_("Album Artist:"));
  444. +     gtk_table_attach(GTK_TABLE(Table),AlbumArtistLabel,0,1,2,3,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  445. +     gtk_misc_set_alignment(GTK_MISC(AlbumArtistLabel),1,0.5);
  446. +
  447. +     AlbumArtistEntry = gtk_entry_new();
  448. +     gtk_table_attach(GTK_TABLE(Table),AlbumArtistEntry,1,10,2,3,
  449. +                      GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  450. +
  451. +     AlbumArtistMButton = gtk_button_new();
  452. +     gtk_widget_set_size_request(AlbumArtistMButton,MButtonSize,MButtonSize);
  453. +     gtk_table_attach(GTK_TABLE(Table),AlbumArtistMButton,10,11,2,3,0,0,TablePadding,TablePadding);
  454. +     g_signal_connect(G_OBJECT(AlbumArtistMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  455. +     gtk_tooltips_set_tip(Tips,AlbumArtistMButton,_("Tag selected files with this album artist"),NULL);
  456. +
  457. +     Attach_Popup_Menu_To_Tag_Entries(GTK_ENTRY(AlbumArtistEntry));
  458. +     g_object_set_data(G_OBJECT(AlbumArtistEntry),"MButtonName",AlbumArtistMButton);
  459. +
  460.       /* Album */
  461.       AlbumLabel = gtk_label_new(_("Album:"));
  462. !     gtk_table_attach(GTK_TABLE(Table),AlbumLabel,0,1,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  463.       gtk_misc_set_alignment(GTK_MISC(AlbumLabel),1,0.5);
  464.  
  465.       AlbumEntry = gtk_entry_new();
  466. !     gtk_table_attach(GTK_TABLE(Table),AlbumEntry,1,7,3,4,
  467.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  468.  
  469.       AlbumMButton = gtk_button_new();
  470.       //gtk_widget_set_size_request(AlbumMButton, 10, 10);
  471.       gtk_widget_set_size_request(AlbumMButton,MButtonSize,MButtonSize);
  472. !     gtk_table_attach(GTK_TABLE(Table),AlbumMButton,7,8,3,4,0,0,TablePadding,TablePadding);
  473.       g_signal_connect(G_OBJECT(AlbumMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  474.       gtk_tooltips_set_tip(Tips,AlbumMButton,_("Tag selected files with this album name"),NULL);
  475.  
  476. ***************
  477. *** 671,681 ****
  478.  
  479.       /* Disc Number */
  480.       DiscNumberLabel = gtk_label_new(_("CD:"));
  481. !     gtk_table_attach(GTK_TABLE(Table),DiscNumberLabel,8,9,2,3,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  482.       gtk_misc_set_alignment(GTK_MISC(DiscNumberLabel),1,0.5);
  483.  
  484.       DiscNumberEntry = gtk_entry_new();
  485. !     gtk_table_attach(GTK_TABLE(Table),DiscNumberEntry,9,10,2,3,
  486.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  487.       gtk_widget_set_size_request(DiscNumberEntry,30,-1);
  488.       // FIX ME should allow to type only something like : 1/3
  489. --- 689,699 ----
  490.  
  491.       /* Disc Number */
  492.       DiscNumberLabel = gtk_label_new(_("CD:"));
  493. !     gtk_table_attach(GTK_TABLE(Table),DiscNumberLabel,8,9,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  494.       gtk_misc_set_alignment(GTK_MISC(DiscNumberLabel),1,0.5);
  495.  
  496.       DiscNumberEntry = gtk_entry_new();
  497. !     gtk_table_attach(GTK_TABLE(Table),DiscNumberEntry,9,10,3,4,
  498.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  499.       gtk_widget_set_size_request(DiscNumberEntry,30,-1);
  500.       // FIX ME should allow to type only something like : 1/3
  501. ***************
  502. *** 684,690 ****
  503.       DiscNumberMButton = gtk_button_new();
  504.       //gtk_widget_set_size_request(DiscNumberMButton, 10, 10);
  505.       gtk_widget_set_size_request(DiscNumberMButton,MButtonSize,MButtonSize);
  506. !     gtk_table_attach(GTK_TABLE(Table),DiscNumberMButton,10,11,2,3,0,0,TablePadding,TablePadding);
  507.       g_signal_connect(G_OBJECT(DiscNumberMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  508.       gtk_tooltips_set_tip(Tips,DiscNumberMButton,_("Tag selected files with this disc number"),NULL);
  509.  
  510. --- 702,708 ----
  511.       DiscNumberMButton = gtk_button_new();
  512.       //gtk_widget_set_size_request(DiscNumberMButton, 10, 10);
  513.       gtk_widget_set_size_request(DiscNumberMButton,MButtonSize,MButtonSize);
  514. !     gtk_table_attach(GTK_TABLE(Table),DiscNumberMButton,10,11,3,4,0,0,TablePadding,TablePadding);
  515.       g_signal_connect(G_OBJECT(DiscNumberMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  516.       gtk_tooltips_set_tip(Tips,DiscNumberMButton,_("Tag selected files with this disc number"),NULL);
  517.  
  518. ***************
  519. *** 693,704 ****
  520.  
  521.       /* Year */
  522.       YearLabel = gtk_label_new(_("Year:"));
  523. !     gtk_table_attach(GTK_TABLE(Table),YearLabel,0,1,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  524.       gtk_misc_set_alignment(GTK_MISC(YearLabel),1,0.5);
  525.  
  526.       YearEntry = gtk_entry_new();
  527.       gtk_entry_set_max_length(GTK_ENTRY(YearEntry), 4);
  528. !     gtk_table_attach(GTK_TABLE(Table),YearEntry,1,2,3,4,
  529.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  530.       gtk_widget_set_size_request(YearEntry,37,-1);
  531.       g_signal_connect(G_OBJECT(YearEntry),"insert_text",G_CALLBACK(Insert_Only_Digit),NULL);
  532. --- 711,722 ----
  533.  
  534.       /* Year */
  535.       YearLabel = gtk_label_new(_("Year:"));
  536. !     gtk_table_attach(GTK_TABLE(Table),YearLabel,0,1,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  537.       gtk_misc_set_alignment(GTK_MISC(YearLabel),1,0.5);
  538.  
  539.       YearEntry = gtk_entry_new();
  540.       gtk_entry_set_max_length(GTK_ENTRY(YearEntry), 4);
  541. !     gtk_table_attach(GTK_TABLE(Table),YearEntry,1,2,4,5,
  542.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  543.       gtk_widget_set_size_request(YearEntry,37,-1);
  544.       g_signal_connect(G_OBJECT(YearEntry),"insert_text",G_CALLBACK(Insert_Only_Digit),NULL);
  545. ***************
  546. *** 707,725 ****
  547.  
  548.       YearMButton = gtk_button_new();
  549.       gtk_widget_set_size_request(YearMButton,MButtonSize,MButtonSize);
  550. !     gtk_table_attach(GTK_TABLE(Table),YearMButton,2,3,3,4,0,0,TablePadding,TablePadding);
  551.       g_signal_connect(G_OBJECT(YearMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  552.       gtk_tooltips_set_tip(Tips,YearMButton,_("Tag selected files with this year"),NULL);
  553.  
  554.       /* Small vertical separator */
  555.       Separator = gtk_vseparator_new();
  556. !     gtk_table_attach(GTK_TABLE(Table),Separator,3,4,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  557.  
  558.  
  559.       /* Track and Track total */
  560.       TrackMButtonSequence = gtk_button_new();
  561.       gtk_widget_set_size_request(TrackMButtonSequence,MButtonSize,MButtonSize);
  562. !     gtk_table_attach(GTK_TABLE(Table),TrackMButtonSequence,4,5,3,4,0,0,TablePadding,TablePadding);
  563.       g_signal_connect(G_OBJECT(TrackMButtonSequence),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  564.       gtk_tooltips_set_tip(Tips,TrackMButtonSequence,_("Number selected tracks sequentially. "
  565.                                                        "Starts at 01 in each subdirectory."), NULL);
  566. --- 725,743 ----
  567.  
  568.       YearMButton = gtk_button_new();
  569.       gtk_widget_set_size_request(YearMButton,MButtonSize,MButtonSize);
  570. !     gtk_table_attach(GTK_TABLE(Table),YearMButton,2,3,4,5,0,0,TablePadding,TablePadding);
  571.       g_signal_connect(G_OBJECT(YearMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  572.       gtk_tooltips_set_tip(Tips,YearMButton,_("Tag selected files with this year"),NULL);
  573.  
  574.       /* Small vertical separator */
  575.       Separator = gtk_vseparator_new();
  576. !     gtk_table_attach(GTK_TABLE(Table),Separator,3,4,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  577.  
  578.  
  579.       /* Track and Track total */
  580.       TrackMButtonSequence = gtk_button_new();
  581.       gtk_widget_set_size_request(TrackMButtonSequence,MButtonSize,MButtonSize);
  582. !     gtk_table_attach(GTK_TABLE(Table),TrackMButtonSequence,4,5,4,5,0,0,TablePadding,TablePadding);
  583.       g_signal_connect(G_OBJECT(TrackMButtonSequence),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  584.       gtk_tooltips_set_tip(Tips,TrackMButtonSequence,_("Number selected tracks sequentially. "
  585.                                                        "Starts at 01 in each subdirectory."), NULL);
  586. ***************
  587. *** 731,737 ****
  588.       GTK_WIDGET_UNSET_FLAGS(TrackMButtonSequence,GTK_CAN_FOCUS);   // To have enought space to display the icon
  589.  
  590.       TrackLabel = gtk_label_new(_("Track #:"));
  591. !     gtk_table_attach(GTK_TABLE(Table),TrackLabel,5,6,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  592.       gtk_misc_set_alignment(GTK_MISC(TrackLabel),1,0.5);
  593.  
  594.       if (TrackEntryComboModel != NULL)
  595. --- 749,755 ----
  596.       GTK_WIDGET_UNSET_FLAGS(TrackMButtonSequence,GTK_CAN_FOCUS);   // To have enought space to display the icon
  597.  
  598.       TrackLabel = gtk_label_new(_("Track #:"));
  599. !     gtk_table_attach(GTK_TABLE(Table),TrackLabel,5,6,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  600.       gtk_misc_set_alignment(GTK_MISC(TrackLabel),1,0.5);
  601.  
  602.       if (TrackEntryComboModel != NULL)
  603. ***************
  604. *** 740,746 ****
  605.           TrackEntryComboModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
  606.  
  607.       TrackEntryCombo = gtk_combo_box_entry_new_with_model(GTK_TREE_MODEL(TrackEntryComboModel), MISC_COMBO_TEXT);
  608. !     gtk_table_attach(GTK_TABLE(Table),TrackEntryCombo,6,7,3,4,
  609.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  610.       gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(TrackEntryCombo),3); // Three columns to display track numbers list
  611.  
  612. --- 758,764 ----
  613.           TrackEntryComboModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
  614.  
  615.       TrackEntryCombo = gtk_combo_box_entry_new_with_model(GTK_TREE_MODEL(TrackEntryComboModel), MISC_COMBO_TEXT);
  616. !     gtk_table_attach(GTK_TABLE(Table),TrackEntryCombo,6,7,4,5,
  617.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  618.       gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(TrackEntryCombo),3); // Three columns to display track numbers list
  619.  
  620. ***************
  621. *** 749,760 ****
  622.           G_CALLBACK(Insert_Only_Digit),NULL);
  623.  
  624.       Label = gtk_label_new("/");
  625. !     gtk_table_attach(GTK_TABLE(Table),Label,7,8,3,4,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  626.       gtk_misc_set_alignment(GTK_MISC(Label),0.5,0.5);
  627.  
  628.       TrackMButtonNbrFiles = gtk_button_new();
  629.       gtk_widget_set_size_request(TrackMButtonNbrFiles,MButtonSize,MButtonSize);
  630. !     gtk_table_attach(GTK_TABLE(Table),TrackMButtonNbrFiles,8,9,3,4,0,0,TablePadding,TablePadding);
  631.       g_signal_connect(G_OBJECT(TrackMButtonNbrFiles),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  632.       gtk_tooltips_set_tip(Tips,TrackMButtonNbrFiles,_("Set the number of files, in the same directory of the displayed file, to the selected tracks."), NULL);
  633.       // Pixmap into TrackMButtonNbrFiles button
  634. --- 767,778 ----
  635.           G_CALLBACK(Insert_Only_Digit),NULL);
  636.  
  637.       Label = gtk_label_new("/");
  638. !     gtk_table_attach(GTK_TABLE(Table),Label,7,8,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  639.       gtk_misc_set_alignment(GTK_MISC(Label),0.5,0.5);
  640.  
  641.       TrackMButtonNbrFiles = gtk_button_new();
  642.       gtk_widget_set_size_request(TrackMButtonNbrFiles,MButtonSize,MButtonSize);
  643. !     gtk_table_attach(GTK_TABLE(Table),TrackMButtonNbrFiles,8,9,4,5,0,0,TablePadding,TablePadding);
  644.       g_signal_connect(G_OBJECT(TrackMButtonNbrFiles),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  645.       gtk_tooltips_set_tip(Tips,TrackMButtonNbrFiles,_("Set the number of files, in the same directory of the displayed file, to the selected tracks."), NULL);
  646.       // Pixmap into TrackMButtonNbrFiles button
  647. ***************
  648. *** 765,771 ****
  649.       GTK_WIDGET_UNSET_FLAGS(TrackMButtonNbrFiles,GTK_CAN_FOCUS);   // To have enought space to display the icon
  650.  
  651.       TrackTotalEntry = gtk_entry_new();
  652. !     gtk_table_attach(GTK_TABLE(Table),TrackTotalEntry,9,10,3,4,
  653.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  654.       gtk_widget_set_size_request(TrackTotalEntry,30,-1);
  655.       g_signal_connect(G_OBJECT(GTK_ENTRY(TrackTotalEntry)),"insert_text",
  656. --- 783,789 ----
  657.       GTK_WIDGET_UNSET_FLAGS(TrackMButtonNbrFiles,GTK_CAN_FOCUS);   // To have enought space to display the icon
  658.  
  659.       TrackTotalEntry = gtk_entry_new();
  660. !     gtk_table_attach(GTK_TABLE(Table),TrackTotalEntry,9,10,4,5,
  661.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  662.       gtk_widget_set_size_request(TrackTotalEntry,30,-1);
  663.       g_signal_connect(G_OBJECT(GTK_ENTRY(TrackTotalEntry)),"insert_text",
  664. ***************
  665. *** 773,779 ****
  666.  
  667.       TrackMButton = gtk_button_new();
  668.       gtk_widget_set_size_request(TrackMButton,MButtonSize,MButtonSize);
  669. !     gtk_table_attach(GTK_TABLE(Table),TrackMButton,10,11,3,4,0,0,TablePadding,TablePadding);
  670.       g_signal_connect(G_OBJECT(TrackMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  671.       gtk_tooltips_set_tip(Tips,TrackMButton,_("Tag selected files with this number of tracks"),NULL);
  672.  
  673. --- 791,797 ----
  674.  
  675.       TrackMButton = gtk_button_new();
  676.       gtk_widget_set_size_request(TrackMButton,MButtonSize,MButtonSize);
  677. !     gtk_table_attach(GTK_TABLE(Table),TrackMButton,10,11,4,5,0,0,TablePadding,TablePadding);
  678.       g_signal_connect(G_OBJECT(TrackMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  679.       gtk_tooltips_set_tip(Tips,TrackMButton,_("Tag selected files with this number of tracks"),NULL);
  680.  
  681. ***************
  682. *** 782,788 ****
  683.  
  684.       /* Genre */
  685.       GenreLabel = gtk_label_new(_("Genre:"));
  686. !     gtk_table_attach(GTK_TABLE(Table),GenreLabel,0,1,4,5,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  687.       gtk_misc_set_alignment(GTK_MISC(GenreLabel),1,0.5);
  688.  
  689.       if (GenreComboModel != NULL)
  690. --- 800,806 ----
  691.  
  692.       /* Genre */
  693.       GenreLabel = gtk_label_new(_("Genre:"));
  694. !     gtk_table_attach(GTK_TABLE(Table),GenreLabel,0,1,5,6,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  695.       gtk_misc_set_alignment(GTK_MISC(GenreLabel),1,0.5);
  696.  
  697.       if (GenreComboModel != NULL)
  698. ***************
  699. *** 797,810 ****
  700.       gtk_entry_completion_set_text_column(completion, 0);
  701.       gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(GenreComboModel), MISC_COMBO_TEXT, Combo_Alphabetic_Sort, NULL, NULL);
  702.       gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(GenreComboModel), MISC_COMBO_TEXT, GTK_SORT_ASCENDING);
  703. !     gtk_table_attach(GTK_TABLE(Table),GenreCombo,1,10,4,5,
  704.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  705.       Load_Genres_List_To_UI();
  706.       gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(GenreCombo),2); // Two columns to display genres list
  707.  
  708.       GenreMButton = gtk_button_new();
  709.       gtk_widget_set_size_request(GenreMButton,MButtonSize,MButtonSize);
  710. !     gtk_table_attach(GTK_TABLE(Table),GenreMButton,10,11,4,5,0,0,TablePadding,TablePadding);
  711.       g_signal_connect(G_OBJECT(GenreMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  712.       gtk_tooltips_set_tip(Tips,GenreMButton,_("Tag selected files with this genre"),NULL);
  713.  
  714. --- 815,828 ----
  715.       gtk_entry_completion_set_text_column(completion, 0);
  716.       gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(GenreComboModel), MISC_COMBO_TEXT, Combo_Alphabetic_Sort, NULL, NULL);
  717.       gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(GenreComboModel), MISC_COMBO_TEXT, GTK_SORT_ASCENDING);
  718. !     gtk_table_attach(GTK_TABLE(Table),GenreCombo,1,10,5,6,
  719.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  720.       Load_Genres_List_To_UI();
  721.       gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(GenreCombo),2); // Two columns to display genres list
  722.  
  723.       GenreMButton = gtk_button_new();
  724.       gtk_widget_set_size_request(GenreMButton,MButtonSize,MButtonSize);
  725. !     gtk_table_attach(GTK_TABLE(Table),GenreMButton,10,11,5,6,0,0,TablePadding,TablePadding);
  726.       g_signal_connect(G_OBJECT(GenreMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  727.       gtk_tooltips_set_tip(Tips,GenreMButton,_("Tag selected files with this genre"),NULL);
  728.  
  729. ***************
  730. *** 813,823 ****
  731.  
  732.       /* Comment */
  733.       CommentLabel = gtk_label_new(_("Comment:"));
  734. !     gtk_table_attach(GTK_TABLE(Table),CommentLabel,0,1,5,6,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  735.       gtk_misc_set_alignment(GTK_MISC(CommentLabel),1,0.5);
  736.  
  737.       CommentEntry = gtk_entry_new();
  738. !     gtk_table_attach(GTK_TABLE(Table),CommentEntry,1,10,5,6,
  739.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  740.  
  741.     // Use of a text view instead of an entry...
  742. --- 831,841 ----
  743.  
  744.       /* Comment */
  745.       CommentLabel = gtk_label_new(_("Comment:"));
  746. !     gtk_table_attach(GTK_TABLE(Table),CommentLabel,0,1,6,7,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  747.       gtk_misc_set_alignment(GTK_MISC(CommentLabel),1,0.5);
  748.  
  749.       CommentEntry = gtk_entry_new();
  750. !     gtk_table_attach(GTK_TABLE(Table),CommentEntry,1,10,6,7,
  751.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  752.  
  753.     // Use of a text view instead of an entry...
  754. ***************
  755. *** 835,841 ****
  756.  
  757.       CommentMButton = gtk_button_new();
  758.       gtk_widget_set_size_request(CommentMButton,MButtonSize,MButtonSize);
  759. !     gtk_table_attach(GTK_TABLE(Table),CommentMButton,10,11,5,6,0,0,TablePadding,TablePadding);
  760.       g_signal_connect(G_OBJECT(CommentMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  761.       gtk_tooltips_set_tip(Tips,CommentMButton,_("Tag selected files with this comment"),NULL);
  762.  
  763. --- 853,859 ----
  764.  
  765.       CommentMButton = gtk_button_new();
  766.       gtk_widget_set_size_request(CommentMButton,MButtonSize,MButtonSize);
  767. !     gtk_table_attach(GTK_TABLE(Table),CommentMButton,10,11,6,7,0,0,TablePadding,TablePadding);
  768.       g_signal_connect(G_OBJECT(CommentMButton),"clicked",G_CALLBACK(Mini_Button_Clicked),NULL);
  769.       gtk_tooltips_set_tip(Tips,CommentMButton,_("Tag selected files with this comment"),NULL);
  770.  
  771. ***************
  772. *** 847,862 ****
  773.  
  774.       /* Composer (name of the composers) */
  775.       ComposerLabel = gtk_label_new(_("Composer:"));
  776. !     gtk_table_attach(GTK_TABLE(Table),ComposerLabel,0,1,6,7,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  777.       gtk_misc_set_alignment(GTK_MISC(ComposerLabel),1,0.5);
  778.  
  779.       ComposerEntry = gtk_entry_new();
  780. !     gtk_table_attach(GTK_TABLE(Table),ComposerEntry,1,10,6,7,
  781.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  782.  
  783.       ComposerMButton = gtk_button_new();
  784.       gtk_widget_set_size_request(ComposerMButton,MButtonSize,MButtonSize);
  785. !     gtk_table_attach(GTK_TABLE(Table),ComposerMButton,10,11,6,7,0,0,TablePadding,TablePadding);
  786.       g_signal_connect(G_OBJECT(ComposerMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  787.       gtk_tooltips_set_tip(Tips,ComposerMButton,_("Tag selected files with this composer"),NULL);
  788.  
  789. --- 865,880 ----
  790.  
  791.       /* Composer (name of the composers) */
  792.       ComposerLabel = gtk_label_new(_("Composer:"));
  793. !     gtk_table_attach(GTK_TABLE(Table),ComposerLabel,0,1,7,8,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  794.       gtk_misc_set_alignment(GTK_MISC(ComposerLabel),1,0.5);
  795.  
  796.       ComposerEntry = gtk_entry_new();
  797. !     gtk_table_attach(GTK_TABLE(Table),ComposerEntry,1,10,7,8,
  798.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  799.  
  800.       ComposerMButton = gtk_button_new();
  801.       gtk_widget_set_size_request(ComposerMButton,MButtonSize,MButtonSize);
  802. !     gtk_table_attach(GTK_TABLE(Table),ComposerMButton,10,11,7,8,0,0,TablePadding,TablePadding);
  803.       g_signal_connect(G_OBJECT(ComposerMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  804.       gtk_tooltips_set_tip(Tips,ComposerMButton,_("Tag selected files with this composer"),NULL);
  805.  
  806. ***************
  807. *** 866,881 ****
  808.  
  809.       /* Original Artist / Performer */
  810.       OrigArtistLabel = gtk_label_new(_("Orig. Artist:"));
  811. !     gtk_table_attach(GTK_TABLE(Table),OrigArtistLabel,0,1,7,8,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  812.       gtk_misc_set_alignment(GTK_MISC(OrigArtistLabel),1,0.5);
  813.  
  814.       OrigArtistEntry = gtk_entry_new();
  815. !     gtk_table_attach(GTK_TABLE(Table),OrigArtistEntry,1,10,7,8,
  816.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  817.  
  818.       OrigArtistMButton = gtk_button_new();
  819.       gtk_widget_set_size_request(OrigArtistMButton,MButtonSize,MButtonSize);
  820. !     gtk_table_attach(GTK_TABLE(Table),OrigArtistMButton,10,11,7,8,0,0,TablePadding,TablePadding);
  821.       g_signal_connect(G_OBJECT(OrigArtistMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  822.       gtk_tooltips_set_tip(Tips,OrigArtistMButton,_("Tag selected files with this original artist"),NULL);
  823.  
  824. --- 884,899 ----
  825.  
  826.       /* Original Artist / Performer */
  827.       OrigArtistLabel = gtk_label_new(_("Orig. Artist:"));
  828. !     gtk_table_attach(GTK_TABLE(Table),OrigArtistLabel,0,1,8,9,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  829.       gtk_misc_set_alignment(GTK_MISC(OrigArtistLabel),1,0.5);
  830.  
  831.       OrigArtistEntry = gtk_entry_new();
  832. !     gtk_table_attach(GTK_TABLE(Table),OrigArtistEntry,1,10,8,9,
  833.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  834.  
  835.       OrigArtistMButton = gtk_button_new();
  836.       gtk_widget_set_size_request(OrigArtistMButton,MButtonSize,MButtonSize);
  837. !     gtk_table_attach(GTK_TABLE(Table),OrigArtistMButton,10,11,8,9,0,0,TablePadding,TablePadding);
  838.       g_signal_connect(G_OBJECT(OrigArtistMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  839.       gtk_tooltips_set_tip(Tips,OrigArtistMButton,_("Tag selected files with this original artist"),NULL);
  840.  
  841. ***************
  842. *** 885,900 ****
  843.  
  844.       /* Copyright */
  845.       CopyrightLabel = gtk_label_new(_("Copyright:"));
  846. !     gtk_table_attach(GTK_TABLE(Table),CopyrightLabel,0,1,8,9,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  847.       gtk_misc_set_alignment(GTK_MISC(CopyrightLabel),1,0.5);
  848.  
  849.       CopyrightEntry = gtk_entry_new();
  850. !     gtk_table_attach(GTK_TABLE(Table),CopyrightEntry,1,10,8,9,
  851.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  852.  
  853.       CopyrightMButton = gtk_button_new();
  854.       gtk_widget_set_size_request(CopyrightMButton,MButtonSize,MButtonSize);
  855. !     gtk_table_attach(GTK_TABLE(Table),CopyrightMButton,10,11,8,9,0,0,TablePadding,TablePadding);
  856.       g_signal_connect(G_OBJECT(CopyrightMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  857.       gtk_tooltips_set_tip(Tips,CopyrightMButton,_("Tag selected files with this copyright"),NULL);
  858.  
  859. --- 903,918 ----
  860.  
  861.       /* Copyright */
  862.       CopyrightLabel = gtk_label_new(_("Copyright:"));
  863. !     gtk_table_attach(GTK_TABLE(Table),CopyrightLabel,0,1,9,10,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  864.       gtk_misc_set_alignment(GTK_MISC(CopyrightLabel),1,0.5);
  865.  
  866.       CopyrightEntry = gtk_entry_new();
  867. !     gtk_table_attach(GTK_TABLE(Table),CopyrightEntry,1,10,9,10,
  868.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  869.  
  870.       CopyrightMButton = gtk_button_new();
  871.       gtk_widget_set_size_request(CopyrightMButton,MButtonSize,MButtonSize);
  872. !     gtk_table_attach(GTK_TABLE(Table),CopyrightMButton,10,11,9,10,0,0,TablePadding,TablePadding);
  873.       g_signal_connect(G_OBJECT(CopyrightMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  874.       gtk_tooltips_set_tip(Tips,CopyrightMButton,_("Tag selected files with this copyright"),NULL);
  875.  
  876. ***************
  877. *** 904,919 ****
  878.  
  879.       /* URL */
  880.       URLLabel = gtk_label_new(_("URL:"));
  881. !     gtk_table_attach(GTK_TABLE(Table),URLLabel,0,1,9,10,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  882.       gtk_misc_set_alignment(GTK_MISC(URLLabel),1,0.5);
  883.  
  884.       URLEntry = gtk_entry_new();
  885. !     gtk_table_attach(GTK_TABLE(Table),URLEntry,1,10,9,10,
  886.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  887.  
  888.       URLMButton = gtk_button_new();
  889.       gtk_widget_set_size_request(URLMButton,MButtonSize,MButtonSize);
  890. !     gtk_table_attach(GTK_TABLE(Table),URLMButton,10,11,9,10,0,0,TablePadding,TablePadding);
  891.       g_signal_connect(G_OBJECT(URLMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  892.       gtk_tooltips_set_tip(Tips,URLMButton,_("Tag selected files with this URL"),NULL);
  893.  
  894. --- 922,937 ----
  895.  
  896.       /* URL */
  897.       URLLabel = gtk_label_new(_("URL:"));
  898. !     gtk_table_attach(GTK_TABLE(Table),URLLabel,0,1,10,11,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  899.       gtk_misc_set_alignment(GTK_MISC(URLLabel),1,0.5);
  900.  
  901.       URLEntry = gtk_entry_new();
  902. !     gtk_table_attach(GTK_TABLE(Table),URLEntry,1,10,10,11,
  903.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  904.  
  905.       URLMButton = gtk_button_new();
  906.       gtk_widget_set_size_request(URLMButton,MButtonSize,MButtonSize);
  907. !     gtk_table_attach(GTK_TABLE(Table),URLMButton,10,11,10,11,0,0,TablePadding,TablePadding);
  908.       g_signal_connect(G_OBJECT(URLMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  909.       gtk_tooltips_set_tip(Tips,URLMButton,_("Tag selected files with this URL"),NULL);
  910.  
  911. ***************
  912. *** 923,938 ****
  913.  
  914.       /* Encoded by */
  915.       EncodedByLabel = gtk_label_new(_("Encoded by:"));
  916. !     gtk_table_attach(GTK_TABLE(Table),EncodedByLabel,0,1,10,11,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  917.       gtk_misc_set_alignment(GTK_MISC(EncodedByLabel),1,0.5);
  918.  
  919.       EncodedByEntry = gtk_entry_new();
  920. !     gtk_table_attach(GTK_TABLE(Table),EncodedByEntry,1,10,10,11,
  921.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  922.  
  923.       EncodedByMButton = gtk_button_new();
  924.       gtk_widget_set_size_request(EncodedByMButton,MButtonSize,MButtonSize);
  925. !     gtk_table_attach(GTK_TABLE(Table),EncodedByMButton,10,11,10,11,0,0,TablePadding,TablePadding);
  926.       g_signal_connect(G_OBJECT(EncodedByMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  927.       gtk_tooltips_set_tip(Tips,EncodedByMButton,_("Tag selected files with this encoder name"),NULL);
  928.  
  929. --- 941,956 ----
  930.  
  931.       /* Encoded by */
  932.       EncodedByLabel = gtk_label_new(_("Encoded by:"));
  933. !     gtk_table_attach(GTK_TABLE(Table),EncodedByLabel,0,1,11,12,GTK_FILL,GTK_FILL,TablePadding,TablePadding);
  934.       gtk_misc_set_alignment(GTK_MISC(EncodedByLabel),1,0.5);
  935.  
  936.       EncodedByEntry = gtk_entry_new();
  937. !     gtk_table_attach(GTK_TABLE(Table),EncodedByEntry,1,10,11,12,
  938.                        GTK_EXPAND|GTK_FILL,GTK_EXPAND|GTK_FILL,TablePadding,TablePadding);
  939.  
  940.       EncodedByMButton = gtk_button_new();
  941.       gtk_widget_set_size_request(EncodedByMButton,MButtonSize,MButtonSize);
  942. !     gtk_table_attach(GTK_TABLE(Table),EncodedByMButton,10,11,11,12,0,0,TablePadding,TablePadding);
  943.       g_signal_connect(G_OBJECT(EncodedByMButton),"clicked", G_CALLBACK(Mini_Button_Clicked),NULL);
  944.       gtk_tooltips_set_tip(Tips,EncodedByMButton,_("Tag selected files with this encoder name"),NULL);
  945.  
  946. ***************
  947. *** 954,960 ****
  948.       g_signal_connect_swapped(G_OBJECT(OrigArtistEntry), "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(CopyrightEntry));
  949.       g_signal_connect_swapped(G_OBJECT(CopyrightEntry),  "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(URLEntry));
  950.       g_signal_connect_swapped(G_OBJECT(URLEntry),        "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(EncodedByEntry));
  951. !     g_signal_connect_swapped(G_OBJECT(EncodedByEntry),  "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(TitleEntry));
  952.  
  953.       // Set focus chain
  954.       focusable_widgets_list = g_list_append(focusable_widgets_list,TitleEntry);
  955. --- 972,979 ----
  956.       g_signal_connect_swapped(G_OBJECT(OrigArtistEntry), "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(CopyrightEntry));
  957.       g_signal_connect_swapped(G_OBJECT(CopyrightEntry),  "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(URLEntry));
  958.       g_signal_connect_swapped(G_OBJECT(URLEntry),        "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(EncodedByEntry));
  959. !     g_signal_connect_swapped(G_OBJECT(EncodedByEntry),  "activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(AlbumArtistEntry));
  960. !   g_signal_connect_swapped(G_OBJECT(AlbumArtistEntry),"activate",G_CALLBACK(gtk_widget_grab_focus),G_OBJECT(TitleEntry));
  961.  
  962.       // Set focus chain
  963.       focusable_widgets_list = g_list_append(focusable_widgets_list,TitleEntry);
  964. ***************
  965. *** 986,991 ****
  966. --- 1005,1012 ----
  967.       focusable_widgets_list = g_list_append(focusable_widgets_list,URLMButton);
  968.       focusable_widgets_list = g_list_append(focusable_widgets_list,EncodedByEntry);
  969.       focusable_widgets_list = g_list_append(focusable_widgets_list,EncodedByMButton);
  970. +   focusable_widgets_list = g_list_append(focusable_widgets_list,AlbumArtistEntry);
  971. +     focusable_widgets_list = g_list_append(focusable_widgets_list,AlbumArtistMButton);
  972.       focusable_widgets_list = g_list_append(focusable_widgets_list,TitleEntry); // To loop to the beginning
  973.       gtk_container_set_focus_chain(GTK_CONTAINER(Table),focusable_widgets_list);
  974.  
  975. ***************
  976. *** 1199,1204 ****
  977. --- 1220,1244 ----
  978.           else
  979.               msg = g_strdup(_("Removed artist from selected files."));
  980.       }
  981. +   else if (object==G_OBJECT(AlbumArtistMButton))
  982. +     {
  983. +         string_to_set = gtk_editable_get_chars(GTK_EDITABLE(AlbumArtistEntry),0,-1);
  984. +         while (etfilelist)
  985. +         {
  986. +             etfile = (ET_File *)etfilelist->data;
  987. +             FileTag = ET_File_Tag_Item_New();
  988. +             ET_Copy_File_Tag_Item(etfile,FileTag);
  989. +             ET_Set_Field_File_Tag_Item(&FileTag->album_artist,string_to_set);
  990. +             ET_Manage_Changes_Of_File_Data(etfile,NULL,FileTag);
  991. +
  992. +             if (!etfilelist->next) break;
  993. +             etfilelist = g_list_next(etfilelist);
  994. +         }
  995. +         if (string_to_set != NULL && g_utf8_strlen(string_to_set, -1)>0)
  996. +             msg = g_strdup_printf(_("Selected files tagged with album artist '%s'."),string_to_set);
  997. +         else
  998. +             msg = g_strdup(_("Removed album artist from selected files."));
  999. +     }
  1000.       else if (object==G_OBJECT(AlbumMButton))
  1001.       {
  1002.           string_to_set = gtk_editable_get_chars(GTK_EDITABLE(AlbumEntry),0,-1);
  1003. ***************
  1004. *** 4082,4087 ****
  1005. --- 4122,4129 ----
  1006.       gtk_widget_show(GTK_WIDGET(TitleMButton));
  1007.       gtk_widget_show(GTK_WIDGET(ArtistLabel));
  1008.       gtk_widget_show(GTK_WIDGET(ArtistEntry));
  1009. +   gtk_widget_show(GTK_WIDGET(AlbumArtistLabel));
  1010. +     gtk_widget_show(GTK_WIDGET(AlbumArtistEntry));
  1011.       gtk_widget_show(GTK_WIDGET(ArtistMButton));
  1012.       gtk_widget_show(GTK_WIDGET(AlbumLabel));
  1013.       gtk_widget_show(GTK_WIDGET(AlbumEntry));
  1014. ***************
  1015. *** 4377,4382 ****
  1016. --- 4419,4425 ----
  1017.  
  1018.       gtk_entry_set_text(GTK_ENTRY(TitleEntry),                       "");
  1019.       gtk_entry_set_text(GTK_ENTRY(ArtistEntry),                      "");
  1020. +   gtk_entry_set_text(GTK_ENTRY(AlbumArtistEntry),                 "");
  1021.       gtk_entry_set_text(GTK_ENTRY(AlbumEntry),                       "");
  1022.       gtk_entry_set_text(GTK_ENTRY(DiscNumberEntry),                  "");
  1023.       gtk_entry_set_text(GTK_ENTRY(YearEntry),                        "");
  1024. diff -crB easytag-2.1.6/src/easytag.h easytag-2.1.6_more_album_artist/src/easytag.h
  1025. *** easytag-2.1.6/src/easytag.h 2007-11-28 09:54:35.000000000 +0100
  1026. --- easytag-2.1.6_more_album_artist/src/easytag.h   2010-01-05 22:36:34.000000000 +0100
  1027. ***************
  1028. *** 88,93 ****
  1029. --- 88,94 ----
  1030.   GtkWidget    *TagNoteBook;
  1031.   GtkWidget    *TitleEntry;
  1032.   GtkWidget    *ArtistEntry;
  1033. + GtkWidget    *AlbumArtistEntry;
  1034.   GtkWidget    *AlbumEntry;
  1035.   GtkWidget    *DiscNumberEntry;
  1036.   GtkWidget    *YearEntry;
  1037. ***************
  1038. *** 108,113 ****
  1039. --- 109,115 ----
  1040.   // Labels
  1041.   GtkWidget    *TitleLabel;
  1042.   GtkWidget    *ArtistLabel;
  1043. + GtkWidget    *AlbumArtistLabel;
  1044.   GtkWidget    *AlbumLabel;
  1045.   GtkWidget    *DiscNumberLabel;
  1046.   GtkWidget    *YearLabel;
  1047. ***************
  1048. *** 123,128 ****
  1049. --- 125,131 ----
  1050.   // Mini buttons
  1051.   GtkWidget    *TitleMButton;
  1052.   GtkWidget    *ArtistMButton;
  1053. + GtkWidget    *AlbumArtistMButton;
  1054.   GtkWidget    *AlbumMButton;
  1055.   GtkWidget    *DiscNumberMButton;
  1056.   GtkWidget    *YearMButton;
  1057. diff -crB easytag-2.1.6/src/et_core.c easytag-2.1.6_more_album_artist/src/et_core.c
  1058. *** easytag-2.1.6/src/et_core.c 2008-05-17 23:29:32.000000000 +0200
  1059. --- easytag-2.1.6_more_album_artist/src/et_core.c   2010-02-24 13:45:49.000000000 +0100
  1060. ***************
  1061. *** 377,382 ****
  1062. --- 377,383 ----
  1063.           FileTag->saved       = FALSE;
  1064.           FileTag->title       = NULL;
  1065.           FileTag->artist      = NULL;
  1066. +       FileTag->album_artist= NULL;
  1067.           FileTag->album       = NULL;
  1068.           FileTag->disc_number = NULL;
  1069.           FileTag->track       = NULL;
  1070. ***************
  1071. *** 945,951 ****
  1072.           case SORTING_BY_DESCENDING_ARTIST:
  1073.               etfilelist = g_list_sort(etfilelist,(GCompareFunc)ET_Comp_Func_Sort_File_By_Descending_Artist);
  1074.               break;
  1075. !         case SORTING_BY_ASCENDING_ALBUM:
  1076.               etfilelist = g_list_sort(etfilelist,(GCompareFunc)ET_Comp_Func_Sort_File_By_Ascending_Album);
  1077.               break;
  1078.           case SORTING_BY_DESCENDING_ALBUM:
  1079. --- 946,958 ----
  1080.           case SORTING_BY_DESCENDING_ARTIST:
  1081.               etfilelist = g_list_sort(etfilelist,(GCompareFunc)ET_Comp_Func_Sort_File_By_Descending_Artist);
  1082.               break;
  1083. !         case SORTING_BY_ASCENDING_ALBUM_ARTIST:
  1084. !             etfilelist = g_list_sort(etfilelist,(GCompareFunc)ET_Comp_Func_Sort_File_By_Ascending_Album_Artist);
  1085. !             break;
  1086. !         case SORTING_BY_DESCENDING_ALBUM_ARTIST:
  1087. !             etfilelist = g_list_sort(etfilelist,(GCompareFunc)ET_Comp_Func_Sort_File_By_Descending_Album_Artist);
  1088. !             break;
  1089. !       case SORTING_BY_ASCENDING_ALBUM:
  1090.               etfilelist = g_list_sort(etfilelist,(GCompareFunc)ET_Comp_Func_Sort_File_By_Ascending_Album);
  1091.               break;
  1092.           case SORTING_BY_DESCENDING_ALBUM:
  1093. ***************
  1094. *** 1228,1236 ****
  1095.    */
  1096.   gint ET_Comp_Func_Sort_File_By_Descending_Artist (ET_File *ETFile1, ET_File *ETFile2)
  1097.   {
  1098. !     return ET_Comp_Func_Sort_File_By_Ascending_Album(ETFile2,ETFile1);
  1099.   }
  1100.  
  1101.  
  1102.   /*
  1103.    * Comparison function for sorting by ascending album.
  1104. --- 1235,1284 ----
  1105.    */
  1106.   gint ET_Comp_Func_Sort_File_By_Descending_Artist (ET_File *ETFile1, ET_File *ETFile2)
  1107.   {
  1108. !     return ET_Comp_Func_Sort_File_By_Ascending_Artist(ETFile2,ETFile1);
  1109.   }
  1110.  
  1111. + /*
  1112. +  * Comparison function for sorting by ascending album artist.
  1113. +  */
  1114. + gint ET_Comp_Func_Sort_File_By_Ascending_Album_Artist (ET_File *ETFile1, ET_File *ETFile2)
  1115. + {
  1116. +    // Compare pointers just in case they are the same (e.g. both are NULL)
  1117. +    if ((ETFile1->FileTag->data == ETFile2->FileTag->data)
  1118. +    ||  (((File_Tag *)ETFile1->FileTag->data)->album_artist == ((File_Tag *)ETFile2->FileTag->data)->album_artist))
  1119. +         return 0;
  1120. +
  1121. +     if ( !ETFile1->FileTag->data || !((File_Tag *)ETFile1->FileTag->data)->album_artist )
  1122. +         return -1;
  1123. +     if ( !ETFile2->FileTag->data || !((File_Tag *)ETFile2->FileTag->data)->album_artist )
  1124. +         return 1;
  1125. +
  1126. +     if (SORTING_FILE_CASE_SENSITIVE)
  1127. +     {
  1128. +         if ( strcmp(((File_Tag *)ETFile1->FileTag->data)->album_artist,((File_Tag *)ETFile2->FileTag->data)->album_artist) == 0 )
  1129. +             // Second criterion
  1130. +             return ET_Comp_Func_Sort_File_By_Ascending_Artist(ETFile1,ETFile2);
  1131. +         else
  1132. +             // First criterion
  1133. +             return strcmp(((File_Tag *)ETFile1->FileTag->data)->album_artist,((File_Tag *)ETFile2->FileTag->data)->album_artist);
  1134. +     }else
  1135. +     {
  1136. +         if ( strcasecmp(((File_Tag *)ETFile1->FileTag->data)->album_artist,((File_Tag *)ETFile2->FileTag->data)->album_artist) == 0 )
  1137. +             // Second criterion
  1138. +             return ET_Comp_Func_Sort_File_By_Ascending_Artist(ETFile1,ETFile2);
  1139. +         else
  1140. +             // First criterion
  1141. +             return strcasecmp(((File_Tag *)ETFile1->FileTag->data)->album_artist,((File_Tag *)ETFile2->FileTag->data)->album_artist);
  1142. +     }
  1143. + }
  1144. +
  1145. + /*
  1146. +  * Comparison function for sorting by descending album artist.
  1147. +  */
  1148. + gint ET_Comp_Func_Sort_File_By_Descending_Album_Artist (ET_File *ETFile1, ET_File *ETFile2)
  1149. + {
  1150. +     return ET_Comp_Func_Sort_File_By_Ascending_Album_Artist(ETFile2,ETFile1);
  1151. + }
  1152.  
  1153.   /*
  1154.    * Comparison function for sorting by ascending album.
  1155. ***************
  1156. *** 2107,2112 ****
  1157. --- 2155,2161 ----
  1158.  
  1159.       g_free(FileTag->title);
  1160.       g_free(FileTag->artist);
  1161. +   g_free(FileTag->album_artist);
  1162.       g_free(FileTag->album);
  1163.       g_free(FileTag->disc_number);
  1164.       g_free(FileTag->year);
  1165. ***************
  1166. *** 2277,2282 ****
  1167. --- 2326,2340 ----
  1168.           FileTag->artist = NULL;
  1169.       }
  1170.  
  1171. +   if (FileTagCur->album_artist)
  1172. +     {
  1173. +         FileTag->album_artist = g_strdup(FileTagCur->album_artist);
  1174. +     }else
  1175. +     {
  1176. +         g_free(FileTag->album_artist);
  1177. +         FileTag->album_artist = NULL;
  1178. +     }
  1179. +
  1180.       if (FileTagCur->album)
  1181.       {
  1182.           FileTag->album = g_strdup(FileTagCur->album);
  1183. ***************
  1184. *** 2768,2773 ****
  1185. --- 2826,2840 ----
  1186.       }else
  1187.           gtk_entry_set_text(GTK_ENTRY(ArtistEntry),"");
  1188.  
  1189. +   /* Show album artist */
  1190. +     if (FileTag && FileTag->album_artist)
  1191. +     {
  1192. +         gchar *tmp = Try_To_Validate_Utf8_String(FileTag->album_artist);
  1193. +         gtk_entry_set_text(GTK_ENTRY(AlbumArtistEntry), tmp);
  1194. +         g_free(tmp);
  1195. +     }else
  1196. +         gtk_entry_set_text(GTK_ENTRY(AlbumArtistEntry),"");
  1197. +
  1198.       /* Show album */
  1199.       if (FileTag && FileTag->album)
  1200.       {
  1201. ***************
  1202. *** 3255,3260 ****
  1203. --- 3322,3339 ----
  1204.           g_free(buffer);
  1205.       }
  1206.  
  1207. +   /* Album Artist */
  1208. +     buffer = g_strdup(gtk_entry_get_text(GTK_ENTRY(AlbumArtistEntry)));
  1209. +     Strip_String(buffer);
  1210. +
  1211. +     if ( g_utf8_strlen(buffer, -1) > 0 )
  1212. +         FileTag->album_artist = buffer;
  1213. +     else
  1214. +     {
  1215. +         FileTag->album_artist = NULL;
  1216. +         g_free(buffer);
  1217. +     }
  1218. +
  1219.       /* Album */
  1220.       buffer = g_strdup(gtk_entry_get_text(GTK_ENTRY(AlbumEntry)));
  1221.       Strip_String(buffer);
  1222. ***************
  1223. *** 3478,3483 ****
  1224. --- 3557,3572 ----
  1225.           FileTag->artist = NULL;
  1226.       }
  1227.  
  1228. +   /* Album Artist */
  1229. +     if ( FileTagCur->album_artist && g_utf8_strlen(FileTagCur->album_artist, -1)>0 )
  1230. +     {
  1231. +         FileTag->album_artist = g_strdup(FileTagCur->album_artist);
  1232. +         Strip_String(FileTag->album_artist);
  1233. +     } else
  1234. +     {
  1235. +         FileTag->album_artist = NULL;
  1236. +     }
  1237. +
  1238.  
  1239.       /* Album */
  1240.       if ( FileTagCur->album && g_utf8_strlen(FileTagCur->album, -1)>0 )
  1241. ***************
  1242. *** 3921,3926 ****
  1243. --- 4010,4020 ----
  1244.       if (!FileTag1->artist &&  FileTag2->artist && g_utf8_strlen(FileTag2->artist, -1)>0 ) return TRUE;
  1245.       if ( FileTag1->artist &&  FileTag2->artist && g_utf8_collate(FileTag1->artist,FileTag2->artist)!=0 ) return TRUE;
  1246.  
  1247. +   /* Album Artist */
  1248. +     if ( FileTag1->album_artist && !FileTag2->album_artist && g_utf8_strlen(FileTag1->album_artist, -1)>0 ) return TRUE;
  1249. +     if (!FileTag1->album_artist &&  FileTag2->album_artist && g_utf8_strlen(FileTag2->album_artist, -1)>0 ) return TRUE;
  1250. +     if ( FileTag1->album_artist &&  FileTag2->album_artist && g_utf8_collate(FileTag1->album_artist,FileTag2->album_artist)!=0 ) return TRUE;
  1251. +
  1252.       /* Album */
  1253.       if ( FileTag1->album && !FileTag2->album && g_utf8_strlen(FileTag1->album, -1)>0 ) return TRUE;
  1254.       if (!FileTag1->album &&  FileTag2->album && g_utf8_strlen(FileTag2->album, -1)>0 ) return TRUE;
  1255. ***************
  1256. *** 4750,4755 ****
  1257. --- 4844,4850 ----
  1258.               g_print("|    |-> saved       : '%d'\n",((File_Tag *)filetaglist->data)->saved);
  1259.               g_print("|    |-> title       : '%s'\n",((File_Tag *)filetaglist->data)->title       ? ((File_Tag *)filetaglist->data)->title        : "");
  1260.               g_print("|    |-> artist      : '%s'\n",((File_Tag *)filetaglist->data)->artist      ? ((File_Tag *)filetaglist->data)->artist       : "");
  1261. +           g_print("|    |-> album_artist: '%s'\n",((File_Tag *)filetaglist->data)->album_artist? ((File_Tag *)filetaglist->data)->album_artist : "");
  1262.               g_print("|    |-> album       : '%s'\n",((File_Tag *)filetaglist->data)->album       ? ((File_Tag *)filetaglist->data)->album        : "");
  1263.               g_print("|    |-> disc_number : '%s'\n",((File_Tag *)filetaglist->data)->disc_number ? ((File_Tag *)filetaglist->data)->disc_number  : "");
  1264.               g_print("|    |-> year        : '%s'\n",((File_Tag *)filetaglist->data)->year        ? ((File_Tag *)filetaglist->data)->year         : "");
  1265. diff -crB easytag-2.1.6/src/et_core.h easytag-2.1.6_more_album_artist/src/et_core.h
  1266. *** easytag-2.1.6/src/et_core.h 2008-05-17 23:29:20.000000000 +0200
  1267. --- easytag-2.1.6_more_album_artist/src/et_core.h   2010-02-24 13:45:49.000000000 +0100
  1268. ***************
  1269. *** 74,80 ****
  1270.       SORTING_BY_DESCENDING_TITLE,
  1271.       SORTING_BY_ASCENDING_ARTIST,
  1272.       SORTING_BY_DESCENDING_ARTIST,
  1273. !     SORTING_BY_ASCENDING_ALBUM,
  1274.       SORTING_BY_DESCENDING_ALBUM,
  1275.       SORTING_BY_ASCENDING_YEAR,
  1276.       SORTING_BY_DESCENDING_YEAR,
  1277. --- 74,82 ----
  1278.       SORTING_BY_DESCENDING_TITLE,
  1279.       SORTING_BY_ASCENDING_ARTIST,
  1280.       SORTING_BY_DESCENDING_ARTIST,
  1281. !     SORTING_BY_ASCENDING_ALBUM_ARTIST,
  1282. !     SORTING_BY_DESCENDING_ALBUM_ARTIST,
  1283. !   SORTING_BY_ASCENDING_ALBUM,
  1284.       SORTING_BY_DESCENDING_ALBUM,
  1285.       SORTING_BY_ASCENDING_YEAR,
  1286.       SORTING_BY_DESCENDING_YEAR,
  1287. ***************
  1288. *** 181,186 ****
  1289. --- 183,189 ----
  1290.  
  1291.       gchar *title;          /* Title of track */
  1292.       gchar *artist;         /* Artist name */
  1293. +   gchar *album_artist;   /* Album Artist */
  1294.       gchar *album;          /* Album name */
  1295.       gchar *disc_number;    /* Disc number */
  1296.       gchar *year;           /* Year of track */
  1297. ***************
  1298. *** 430,435 ****
  1299. --- 433,440 ----
  1300.   gint ET_Comp_Func_Sort_File_By_Descending_Title           (ET_File *ETFile1, ET_File *ETFile2);
  1301.   gint ET_Comp_Func_Sort_File_By_Ascending_Artist           (ET_File *ETFile1, ET_File *ETFile2);
  1302.   gint ET_Comp_Func_Sort_File_By_Descending_Artist          (ET_File *ETFile1, ET_File *ETFile2);
  1303. + gint ET_Comp_Func_Sort_File_By_Ascending_Album_Artist     (ET_File *ETFile1, ET_File *ETFile2);
  1304. + gint ET_Comp_Func_Sort_File_By_Descending_Album_Artist    (ET_File *ETFile1, ET_File *ETFile2);
  1305.   gint ET_Comp_Func_Sort_File_By_Ascending_Album            (ET_File *ETFile1, ET_File *ETFile2);
  1306.   gint ET_Comp_Func_Sort_File_By_Descending_Album           (ET_File *ETFile1, ET_File *ETFile2);
  1307.   gint ET_Comp_Func_Sort_File_By_Ascending_Year             (ET_File *ETFile1, ET_File *ETFile2);
  1308. diff -crB easytag-2.1.6/src/id3_tag.c easytag-2.1.6_more_album_artist/src/id3_tag.c
  1309. *** easytag-2.1.6/src/id3_tag.c 2008-03-22 23:03:06.000000000 +0100
  1310. --- easytag-2.1.6_more_album_artist/src/id3_tag.c   2010-02-24 13:45:49.000000000 +0100
  1311. ***************
  1312. *** 100,106 ****
  1313.       gint number_of_frames;
  1314.       gboolean has_title       = FALSE;
  1315.       gboolean has_artist      = FALSE;
  1316. !     gboolean has_album       = FALSE;
  1317.       gboolean has_disc_number = FALSE;
  1318.       gboolean has_year        = FALSE;
  1319.       gboolean has_track       = FALSE;
  1320. --- 100,107 ----
  1321.       gint number_of_frames;
  1322.       gboolean has_title       = FALSE;
  1323.       gboolean has_artist      = FALSE;
  1324. !     gboolean has_album_artist= FALSE;
  1325. !   gboolean has_album       = FALSE;
  1326.       gboolean has_disc_number = FALSE;
  1327.       gboolean has_year        = FALSE;
  1328.       gboolean has_track       = FALSE;
  1329. ***************
  1330. *** 194,199 ****
  1331. --- 195,212 ----
  1332.           has_artist = TRUE;
  1333.       }
  1334.  
  1335. +   /****************
  1336. +      * Album Artist *
  1337. +      ***************/
  1338. +     while ( (id3_frame = ID3Tag_FindFrameWithID(id3_tag,ID3FID_BAND)) )
  1339. +         ID3Tag_RemoveFrame(id3_tag,id3_frame);
  1340. +     if (FileTag->album_artist && g_utf8_strlen(FileTag->album_artist, -1) > 0)
  1341. +     {
  1342. +         id3_frame = ID3Frame_NewID(ID3FID_BAND);
  1343. +         ID3Tag_AttachFrame(id3_tag,id3_frame);
  1344. +         Id3tag_Set_Field(id3_frame, ID3FN_TEXT, FileTag->album_artist);
  1345. +         has_album_artist = TRUE;
  1346. +     }
  1347.  
  1348.       /*********
  1349.        * Album *
  1350. ***************
  1351. *** 476,482 ****
  1352.        * is set to 1, we strip the ID3v1.x and ID3v2 tags. Else, write ID3v2 and/or ID3v1
  1353.        */
  1354.       if ( STRIP_TAG_WHEN_EMPTY_FIELDS
  1355. !     && !has_title      && !has_artist   && !has_album       && !has_year      && !has_track
  1356.       && !has_genre      && !has_composer && !has_orig_artist && !has_copyright && !has_url
  1357.       && !has_encoded_by && !has_picture  && !has_comment     && !has_disc_number)//&& !has_song_len )
  1358.       {
  1359. --- 489,495 ----
  1360.        * is set to 1, we strip the ID3v1.x and ID3v2 tags. Else, write ID3v2 and/or ID3v1
  1361.        */
  1362.       if ( STRIP_TAG_WHEN_EMPTY_FIELDS
  1363. !     && !has_title      && !has_artist   && !has_album_artist && !has_album       && !has_year      && !has_track
  1364.       && !has_genre      && !has_composer && !has_orig_artist && !has_copyright && !has_url
  1365.       && !has_encoded_by && !has_picture  && !has_comment     && !has_disc_number)//&& !has_song_len )
  1366.       {
  1367. ***************
  1368. *** 1092,1098 ****
  1369.  
  1370.               if (frameid != ID3FID_TITLE
  1371.               &&  frameid != ID3FID_LEADARTIST
  1372. !             &&  frameid != ID3FID_ALBUM
  1373.               &&  frameid != ID3FID_YEAR
  1374.               &&  frameid != ID3FID_TRACKNUM
  1375.               &&  frameid != ID3FID_CONTENTTYPE
  1376. --- 1105,1112 ----
  1377.  
  1378.               if (frameid != ID3FID_TITLE
  1379.               &&  frameid != ID3FID_LEADARTIST
  1380. !             &&  frameid != ID3FID_BAND
  1381. !           &&  frameid != ID3FID_ALBUM
  1382.               &&  frameid != ID3FID_YEAR
  1383.               &&  frameid != ID3FID_TRACKNUM
  1384.               &&  frameid != ID3FID_CONTENTTYPE
  1385. diff -crB easytag-2.1.6/src/id3v24_tag.c easytag-2.1.6_more_album_artist/src/id3v24_tag.c
  1386. *** easytag-2.1.6/src/id3v24_tag.c  2008-07-12 16:32:12.000000000 +0200
  1387. --- easytag-2.1.6_more_album_artist/src/id3v24_tag.c    2010-01-05 22:36:34.000000000 +0100
  1388. ***************
  1389. *** 220,225 ****
  1390. --- 220,231 ----
  1391.       if ( (frame = id3_tag_findframe(tag, ID3_FRAME_ARTIST, 0)) )
  1392.           update |= libid3tag_Get_Frame_Str(frame, EASYTAG_ID3_FIELD_STRINGLIST, &FileTag->artist);
  1393.  
  1394. +   /*****************
  1395. +      * Album Artist (TPE2) *
  1396. +      *****************/
  1397. +     if ( (frame = id3_tag_findframe(tag, "TPE2", 0)) )
  1398. +         update |= libid3tag_Get_Frame_Str(frame, EASYTAG_ID3_FIELD_STRINGLIST, &FileTag->album_artist);
  1399. +
  1400.       /****************
  1401.        * Album (TALB) *
  1402.        ****************/
  1403. ***************
  1404. *** 871,876 ****
  1405. --- 877,887 ----
  1406.        **********/
  1407.       etag_set_tags(FileTag->artist, ID3_FRAME_ARTIST, ID3_FIELD_TYPE_STRINGLIST, v1tag, v2tag, &strip_tags);
  1408.  
  1409. +   /**********
  1410. +      * Album Artist *
  1411. +      **********/
  1412. +     etag_set_tags(FileTag->album_artist, "TPE2", ID3_FIELD_TYPE_STRINGLIST, NULL, v2tag, &strip_tags);
  1413. +
  1414.       /*********
  1415.        * Album *
  1416.        *********/
  1417. diff -crB easytag-2.1.6/src/misc.c easytag-2.1.6_more_album_artist/src/misc.c
  1418. *** easytag-2.1.6/src/misc.c    2008-05-24 22:59:34.000000000 +0200
  1419. --- easytag-2.1.6_more_album_artist/src/misc.c  2010-02-24 13:45:49.000000000 +0100
  1420. ***************
  1421. *** 82,88 ****
  1422.       SEARCH_RESULT_FILENAME = 0,
  1423.       SEARCH_RESULT_TITLE,
  1424.       SEARCH_RESULT_ARTIST,
  1425. !     SEARCH_RESULT_ALBUM,
  1426.       SEARCH_RESULT_DISC_NUMBER,
  1427.       SEARCH_RESULT_YEAR,
  1428.       SEARCH_RESULT_TRACK,
  1429. --- 82,89 ----
  1430.       SEARCH_RESULT_FILENAME = 0,
  1431.       SEARCH_RESULT_TITLE,
  1432.       SEARCH_RESULT_ARTIST,
  1433. !     SEARCH_RESULT_ALBUM_ARTIST,
  1434. !   SEARCH_RESULT_ALBUM,
  1435.       SEARCH_RESULT_DISC_NUMBER,
  1436.       SEARCH_RESULT_YEAR,
  1437.       SEARCH_RESULT_TRACK,
  1438. ***************
  1439. *** 98,104 ****
  1440.       SEARCH_RESULT_FILENAME_WEIGHT,
  1441.       SEARCH_RESULT_TITLE_WEIGHT,
  1442.       SEARCH_RESULT_ARTIST_WEIGHT,
  1443. !     SEARCH_RESULT_ALBUM_WEIGHT,
  1444.       SEARCH_RESULT_DISC_NUMBER_WEIGHT,
  1445.       SEARCH_RESULT_YEAR_WEIGHT,
  1446.       SEARCH_RESULT_TRACK_WEIGHT,
  1447. --- 99,106 ----
  1448.       SEARCH_RESULT_FILENAME_WEIGHT,
  1449.       SEARCH_RESULT_TITLE_WEIGHT,
  1450.       SEARCH_RESULT_ARTIST_WEIGHT,
  1451. !     SEARCH_RESULT_ALBUM_ARTIST_WEIGHT,
  1452. !   SEARCH_RESULT_ALBUM_WEIGHT,
  1453.       SEARCH_RESULT_DISC_NUMBER_WEIGHT,
  1454.       SEARCH_RESULT_YEAR_WEIGHT,
  1455.       SEARCH_RESULT_TRACK_WEIGHT,
  1456. ***************
  1457. *** 114,120 ****
  1458.       SEARCH_RESULT_FILENAME_FOREGROUND,
  1459.       SEARCH_RESULT_TITLE_FOREGROUND,
  1460.       SEARCH_RESULT_ARTIST_FOREGROUND,
  1461. !     SEARCH_RESULT_ALBUM_FOREGROUND,
  1462.       SEARCH_RESULT_DISC_NUMBER_FOREGROUND,
  1463.       SEARCH_RESULT_YEAR_FOREGROUND,
  1464.       SEARCH_RESULT_TRACK_FOREGROUND,
  1465. --- 116,123 ----
  1466.       SEARCH_RESULT_FILENAME_FOREGROUND,
  1467.       SEARCH_RESULT_TITLE_FOREGROUND,
  1468.       SEARCH_RESULT_ARTIST_FOREGROUND,
  1469. !     SEARCH_RESULT_ALBUM_ARTIST_FOREGROUND,
  1470. !   SEARCH_RESULT_ALBUM_FOREGROUND,
  1471.       SEARCH_RESULT_DISC_NUMBER_FOREGROUND,
  1472.       SEARCH_RESULT_YEAR_FOREGROUND,
  1473.       SEARCH_RESULT_TRACK_FOREGROUND,
  1474. ***************
  1475. *** 1909,1915 ****
  1476.       gchar *SearchResultList_Titles[] = { N_("File Name"),
  1477.                                            N_("Title"),
  1478.                                            N_("Artist"),
  1479. !                                          N_("Album"),
  1480.                                            N_("CD"),
  1481.                                            N_("Year"),
  1482.                                            N_("Track"),
  1483. --- 1912,1919 ----
  1484.       gchar *SearchResultList_Titles[] = { N_("File Name"),
  1485.                                            N_("Title"),
  1486.                                            N_("Artist"),
  1487. !                                          N_("Album Artist"),
  1488. !                                        N_("Album"),
  1489.                                            N_("CD"),
  1490.                                            N_("Year"),
  1491.                                            N_("Track"),
  1492. ***************
  1493. *** 2005,2011 ****
  1494.                                                  G_TYPE_STRING, /* Filename */
  1495.                                                  G_TYPE_STRING, /* Title */
  1496.                                                  G_TYPE_STRING, /* Artist */
  1497. !                                                G_TYPE_STRING, /* Album */
  1498.                                                  G_TYPE_STRING, /* Disc Number */
  1499.                                                  G_TYPE_STRING, /* Year */
  1500.                                                  G_TYPE_STRING, /* Track + Track Total */
  1501. --- 2009,2016 ----
  1502.                                                  G_TYPE_STRING, /* Filename */
  1503.                                                  G_TYPE_STRING, /* Title */
  1504.                                                  G_TYPE_STRING, /* Artist */
  1505. !                                                G_TYPE_STRING, /* Album Artist */
  1506. !                                              G_TYPE_STRING, /* Album */
  1507.                                                  G_TYPE_STRING, /* Disc Number */
  1508.                                                  G_TYPE_STRING, /* Year */
  1509.                                                  G_TYPE_STRING, /* Track + Track Total */
  1510. ***************
  1511. *** 2020,2026 ****
  1512.                                                  G_TYPE_INT, /* Font Weight for Filename */
  1513.                                                  G_TYPE_INT, /* Font Weight for Title */
  1514.                                                  G_TYPE_INT, /* Font Weight for Artist */
  1515. !                                                G_TYPE_INT, /* Font Weight for Album */
  1516.                                                  G_TYPE_INT, /* Font Weight for Disc Number */
  1517.                                                  G_TYPE_INT, /* Font Weight for Year */
  1518.                                                  G_TYPE_INT, /* Font Weight for Track + Track Total */
  1519. --- 2025,2032 ----
  1520.                                                  G_TYPE_INT, /* Font Weight for Filename */
  1521.                                                  G_TYPE_INT, /* Font Weight for Title */
  1522.                                                  G_TYPE_INT, /* Font Weight for Artist */
  1523. !                                                G_TYPE_INT, /* Font Weight for Album Artist */
  1524. !                                              G_TYPE_INT, /* Font Weight for Album */
  1525.                                                  G_TYPE_INT, /* Font Weight for Disc Number */
  1526.                                                  G_TYPE_INT, /* Font Weight for Year */
  1527.                                                  G_TYPE_INT, /* Font Weight for Track + Track Total */
  1528. ***************
  1529. *** 2035,2041 ****
  1530.                                                  GDK_TYPE_COLOR, /* Color Weight for Filename */
  1531.                                                  GDK_TYPE_COLOR, /* Color Weight for Title */
  1532.                                                  GDK_TYPE_COLOR, /* Color Weight for Artist */
  1533. !                                                GDK_TYPE_COLOR, /* Color Weight for Album */
  1534.                                                  GDK_TYPE_COLOR, /* Color Weight for Disc Number */
  1535.                                                  GDK_TYPE_COLOR, /* Color Weight for Year */
  1536.                                                  GDK_TYPE_COLOR, /* Color Weight for Track + Track Total */
  1537. --- 2041,2048 ----
  1538.                                                  GDK_TYPE_COLOR, /* Color Weight for Filename */
  1539.                                                  GDK_TYPE_COLOR, /* Color Weight for Title */
  1540.                                                  GDK_TYPE_COLOR, /* Color Weight for Artist */
  1541. !                                                GDK_TYPE_COLOR, /* Color Weight for Album Artist */
  1542. !                                              GDK_TYPE_COLOR, /* Color Weight for Album */
  1543.                                                  GDK_TYPE_COLOR, /* Color Weight for Disc Number */
  1544.                                                  GDK_TYPE_COLOR, /* Color Weight for Year */
  1545.                                                  GDK_TYPE_COLOR, /* Color Weight for Track + Track Total */
  1546. ***************
  1547. *** 2077,2084 ****
  1548.       gtk_tree_view_append_column(GTK_TREE_VIEW(SearchResultList), column);
  1549.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1550.  
  1551. !     renderer = gtk_cell_renderer_text_new(); /* Album */
  1552.       column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[3]), renderer,
  1553.                                                         "text",           SEARCH_RESULT_ALBUM,
  1554.                                                         "weight",         SEARCH_RESULT_ALBUM_WEIGHT,
  1555.                                                         "foreground-gdk", SEARCH_RESULT_ALBUM_FOREGROUND,
  1556. --- 2084,2100 ----
  1557.       gtk_tree_view_append_column(GTK_TREE_VIEW(SearchResultList), column);
  1558.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1559.  
  1560. !   renderer = gtk_cell_renderer_text_new(); /* Album Artist */
  1561.       column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[3]), renderer,
  1562. +                                                       "text",           SEARCH_RESULT_ALBUM_ARTIST,
  1563. +                                                       "weight",         SEARCH_RESULT_ALBUM_ARTIST_WEIGHT,
  1564. +                                                       "foreground-gdk", SEARCH_RESULT_ALBUM_ARTIST_FOREGROUND,
  1565. +                                                       NULL);
  1566. +     gtk_tree_view_append_column(GTK_TREE_VIEW(SearchResultList), column);
  1567. +     gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1568. +
  1569. +     renderer = gtk_cell_renderer_text_new(); /* Album */
  1570. +     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[4]), renderer,
  1571.                                                         "text",           SEARCH_RESULT_ALBUM,
  1572.                                                         "weight",         SEARCH_RESULT_ALBUM_WEIGHT,
  1573.                                                         "foreground-gdk", SEARCH_RESULT_ALBUM_FOREGROUND,
  1574. ***************
  1575. *** 2087,2093 ****
  1576.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1577.  
  1578.       renderer = gtk_cell_renderer_text_new(); /* Disc Number */
  1579. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[4]), renderer,
  1580.                                                         "text",           SEARCH_RESULT_DISC_NUMBER,
  1581.                                                         "weight",         SEARCH_RESULT_DISC_NUMBER_WEIGHT,
  1582.                                                         "foreground-gdk", SEARCH_RESULT_DISC_NUMBER_FOREGROUND,
  1583. --- 2103,2109 ----
  1584.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1585.  
  1586.       renderer = gtk_cell_renderer_text_new(); /* Disc Number */
  1587. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[5]), renderer,
  1588.                                                         "text",           SEARCH_RESULT_DISC_NUMBER,
  1589.                                                         "weight",         SEARCH_RESULT_DISC_NUMBER_WEIGHT,
  1590.                                                         "foreground-gdk", SEARCH_RESULT_DISC_NUMBER_FOREGROUND,
  1591. ***************
  1592. *** 2096,2102 ****
  1593.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1594.  
  1595.       renderer = gtk_cell_renderer_text_new(); /* Year */
  1596. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[5]), renderer,
  1597.                                                         "text",           SEARCH_RESULT_YEAR,
  1598.                                                         "weight",         SEARCH_RESULT_YEAR_WEIGHT,
  1599.                                                         "foreground-gdk", SEARCH_RESULT_YEAR_FOREGROUND,
  1600. --- 2112,2118 ----
  1601.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1602.  
  1603.       renderer = gtk_cell_renderer_text_new(); /* Year */
  1604. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[6]), renderer,
  1605.                                                         "text",           SEARCH_RESULT_YEAR,
  1606.                                                         "weight",         SEARCH_RESULT_YEAR_WEIGHT,
  1607.                                                         "foreground-gdk", SEARCH_RESULT_YEAR_FOREGROUND,
  1608. ***************
  1609. *** 2105,2111 ****
  1610.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1611.  
  1612.       renderer = gtk_cell_renderer_text_new(); /* Track */
  1613. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[6]), renderer,
  1614.                                                         "text",           SEARCH_RESULT_TRACK,
  1615.                                                         "weight",         SEARCH_RESULT_TRACK_WEIGHT,
  1616.                                                         "foreground-gdk", SEARCH_RESULT_TRACK_FOREGROUND,
  1617. --- 2121,2127 ----
  1618.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1619.  
  1620.       renderer = gtk_cell_renderer_text_new(); /* Track */
  1621. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[7]), renderer,
  1622.                                                         "text",           SEARCH_RESULT_TRACK,
  1623.                                                         "weight",         SEARCH_RESULT_TRACK_WEIGHT,
  1624.                                                         "foreground-gdk", SEARCH_RESULT_TRACK_FOREGROUND,
  1625. ***************
  1626. *** 2114,2120 ****
  1627.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1628.  
  1629.       renderer = gtk_cell_renderer_text_new(); /* Genre */
  1630. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[7]), renderer,
  1631.                                                         "text",           SEARCH_RESULT_GENRE,
  1632.                                                         "weight",         SEARCH_RESULT_GENRE_WEIGHT,
  1633.                                                         "foreground-gdk", SEARCH_RESULT_GENRE_FOREGROUND,
  1634. --- 2130,2136 ----
  1635.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1636.  
  1637.       renderer = gtk_cell_renderer_text_new(); /* Genre */
  1638. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[8]), renderer,
  1639.                                                         "text",           SEARCH_RESULT_GENRE,
  1640.                                                         "weight",         SEARCH_RESULT_GENRE_WEIGHT,
  1641.                                                         "foreground-gdk", SEARCH_RESULT_GENRE_FOREGROUND,
  1642. ***************
  1643. *** 2123,2129 ****
  1644.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1645.  
  1646.       renderer = gtk_cell_renderer_text_new(); /* Comment */
  1647. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[8]), renderer,
  1648.                                                         "text",           SEARCH_RESULT_COMMENT,
  1649.                                                         "weight",         SEARCH_RESULT_COMMENT_WEIGHT,
  1650.                                                         "foreground-gdk", SEARCH_RESULT_COMMENT_FOREGROUND,
  1651. --- 2139,2145 ----
  1652.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1653.  
  1654.       renderer = gtk_cell_renderer_text_new(); /* Comment */
  1655. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[9]), renderer,
  1656.                                                         "text",           SEARCH_RESULT_COMMENT,
  1657.                                                         "weight",         SEARCH_RESULT_COMMENT_WEIGHT,
  1658.                                                         "foreground-gdk", SEARCH_RESULT_COMMENT_FOREGROUND,
  1659. ***************
  1660. *** 2132,2138 ****
  1661.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1662.  
  1663.       renderer = gtk_cell_renderer_text_new(); /* Composer */
  1664. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[9]), renderer,
  1665.                                                         "text",           SEARCH_RESULT_COMPOSER,
  1666.                                                         "weight",         SEARCH_RESULT_COMPOSER_WEIGHT,
  1667.                                                         "foreground-gdk", SEARCH_RESULT_COMPOSER_FOREGROUND,
  1668. --- 2148,2154 ----
  1669.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1670.  
  1671.       renderer = gtk_cell_renderer_text_new(); /* Composer */
  1672. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[10]), renderer,
  1673.                                                         "text",           SEARCH_RESULT_COMPOSER,
  1674.                                                         "weight",         SEARCH_RESULT_COMPOSER_WEIGHT,
  1675.                                                         "foreground-gdk", SEARCH_RESULT_COMPOSER_FOREGROUND,
  1676. ***************
  1677. *** 2141,2147 ****
  1678.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1679.  
  1680.       renderer = gtk_cell_renderer_text_new(); /* Orig. Artist */
  1681. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[10]), renderer,
  1682.                                                         "text",           SEARCH_RESULT_ORIG_ARTIST,
  1683.                                                         "weight",         SEARCH_RESULT_ORIG_ARTIST_WEIGHT,
  1684.                                                         "foreground-gdk", SEARCH_RESULT_ORIG_ARTIST_FOREGROUND,
  1685. --- 2157,2163 ----
  1686.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1687.  
  1688.       renderer = gtk_cell_renderer_text_new(); /* Orig. Artist */
  1689. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[11]), renderer,
  1690.                                                         "text",           SEARCH_RESULT_ORIG_ARTIST,
  1691.                                                         "weight",         SEARCH_RESULT_ORIG_ARTIST_WEIGHT,
  1692.                                                         "foreground-gdk", SEARCH_RESULT_ORIG_ARTIST_FOREGROUND,
  1693. ***************
  1694. *** 2150,2156 ****
  1695.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1696.  
  1697.       renderer = gtk_cell_renderer_text_new(); /* Copyright */
  1698. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[11]), renderer,
  1699.                                                         "text",           SEARCH_RESULT_COPYRIGHT,
  1700.                                                         "weight",         SEARCH_RESULT_COPYRIGHT_WEIGHT,
  1701.                                                         "foreground-gdk", SEARCH_RESULT_COPYRIGHT_FOREGROUND,
  1702. --- 2166,2172 ----
  1703.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1704.  
  1705.       renderer = gtk_cell_renderer_text_new(); /* Copyright */
  1706. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[12]), renderer,
  1707.                                                         "text",           SEARCH_RESULT_COPYRIGHT,
  1708.                                                         "weight",         SEARCH_RESULT_COPYRIGHT_WEIGHT,
  1709.                                                         "foreground-gdk", SEARCH_RESULT_COPYRIGHT_FOREGROUND,
  1710. ***************
  1711. *** 2159,2165 ****
  1712.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1713.  
  1714.       renderer = gtk_cell_renderer_text_new(); /* URL */
  1715. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[12]), renderer,
  1716.                                                         "text",           SEARCH_RESULT_URL,
  1717.                                                         "weight",         SEARCH_RESULT_URL_WEIGHT,
  1718.                                                         "foreground-gdk", SEARCH_RESULT_URL_FOREGROUND,
  1719. --- 2175,2181 ----
  1720.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1721.  
  1722.       renderer = gtk_cell_renderer_text_new(); /* URL */
  1723. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[13]), renderer,
  1724.                                                         "text",           SEARCH_RESULT_URL,
  1725.                                                         "weight",         SEARCH_RESULT_URL_WEIGHT,
  1726.                                                         "foreground-gdk", SEARCH_RESULT_URL_FOREGROUND,
  1727. ***************
  1728. *** 2168,2174 ****
  1729.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1730.  
  1731.       renderer = gtk_cell_renderer_text_new(); /* Encoded by */
  1732. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[13]), renderer,
  1733.                                                         "text",           SEARCH_RESULT_ENCODED_BY,
  1734.                                                         "weight",         SEARCH_RESULT_ENCODED_BY_WEIGHT,
  1735.                                                         "foreground-gdk", SEARCH_RESULT_ENCODED_BY_FOREGROUND,
  1736. --- 2184,2190 ----
  1737.       gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
  1738.  
  1739.       renderer = gtk_cell_renderer_text_new(); /* Encoded by */
  1740. !     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[14]), renderer,
  1741.                                                         "text",           SEARCH_RESULT_ENCODED_BY,
  1742.                                                         "weight",         SEARCH_RESULT_ENCODED_BY_WEIGHT,
  1743.                                                         "foreground-gdk", SEARCH_RESULT_ENCODED_BY_FOREGROUND,
  1744. ***************
  1745. *** 2282,2288 ****
  1746.       ET_File *ETFile;
  1747.       gchar *msg;
  1748.       gchar *temp = NULL;
  1749. !     gchar *title2, *artist2, *album2, *disc_number2, *year2, *track2,
  1750.             *track_total2, *genre2, *comment2, *composer2, *orig_artist2,
  1751.             *copyright2, *url2, *encoded_by2, *string_to_search2;
  1752.       gint resultCount = 0;
  1753. --- 2298,2304 ----
  1754.       ET_File *ETFile;
  1755.       gchar *msg;
  1756.       gchar *temp = NULL;
  1757. !     gchar *title2, *artist2, *album_artist2, *album2, *disc_number2, *year2, *track2,
  1758.             *track_total2, *genre2, *comment2, *composer2, *orig_artist2,
  1759.             *copyright2, *url2, *encoded_by2, *string_to_search2;
  1760.       gint resultCount = 0;
  1761. ***************
  1762. *** 2349,2354 ****
  1763. --- 2365,2371 ----
  1764.                   // Duplicate and convert the strings into UTF-8 in loxer case
  1765.                   if (FileTag->title)       title2       = g_utf8_casefold(FileTag->title, -1);        else title2       = NULL;
  1766.                   if (FileTag->artist)      artist2      = g_utf8_casefold(FileTag->artist, -1);       else artist2      = NULL;
  1767. +               if (FileTag->album_artist) album_artist2 = g_utf8_casefold(FileTag->album_artist, -1); else album_artist2= NULL;
  1768.                   if (FileTag->album)       album2       = g_utf8_casefold(FileTag->album, -1);        else album2       = NULL;
  1769.                   if (FileTag->disc_number) disc_number2 = g_utf8_casefold(FileTag->disc_number, -1);  else disc_number2 = NULL;
  1770.                   if (FileTag->year)        year2        = g_utf8_casefold(FileTag->year, -1);         else year2        = NULL;
  1771. ***************
  1772. *** 2368,2373 ****
  1773. --- 2385,2391 ----
  1774.                   // Duplicate and convert the strings into UTF-8
  1775.                   title2       = g_strdup(FileTag->title);
  1776.                   artist2      = g_strdup(FileTag->artist);
  1777. +               album_artist2= g_strdup(FileTag->album_artist);
  1778.                   album2       = g_strdup(FileTag->album);
  1779.                   disc_number2 = g_strdup(FileTag->disc_number);
  1780.                   year2        = g_strdup(FileTag->year);
  1781. ***************
  1782. *** 2386,2392 ****
  1783.               // FIX ME : should use UTF-8 functions?
  1784.               if ( (title2       && strstr(title2,       string_to_search2) )
  1785.                ||  (artist2      && strstr(artist2,      string_to_search2) )
  1786. !              ||  (album2       && strstr(album2,       string_to_search2) )
  1787.                ||  (disc_number2 && strstr(disc_number2, string_to_search2) )
  1788.                ||  (year2        && strstr(year2,        string_to_search2) )
  1789.                ||  (track2       && strstr(track2,       string_to_search2) )
  1790. --- 2404,2411 ----
  1791.               // FIX ME : should use UTF-8 functions?
  1792.               if ( (title2       && strstr(title2,       string_to_search2) )
  1793.                ||  (artist2      && strstr(artist2,      string_to_search2) )
  1794. !              ||  (album_artist2 && strstr(album_artist2,string_to_search2) )
  1795. !            ||  (album2       && strstr(album2,       string_to_search2) )
  1796.                ||  (disc_number2 && strstr(disc_number2, string_to_search2) )
  1797.                ||  (year2        && strstr(year2,        string_to_search2) )
  1798.                ||  (track2       && strstr(track2,       string_to_search2) )
  1799. ***************
  1800. *** 2403,2409 ****
  1801.               }
  1802.               g_free(title2);
  1803.               g_free(artist2);
  1804. !             g_free(album2);
  1805.               g_free(disc_number2);
  1806.               g_free(year2);
  1807.               g_free(track2);
  1808. --- 2422,2429 ----
  1809.               }
  1810.               g_free(title2);
  1811.               g_free(artist2);
  1812. !             g_free(album_artist2);
  1813. !           g_free(album2);
  1814.               g_free(disc_number2);
  1815.               g_free(year2);
  1816.               g_free(track2);
  1817. ***************
  1818. *** 2466,2472 ****
  1819.       SearchResultList_Text[SEARCH_RESULT_TITLE]       = g_strdup(((File_Tag *)ETFile->FileTag->data)->title);
  1820.       // Artist
  1821.       SearchResultList_Text[SEARCH_RESULT_ARTIST]      = g_strdup(((File_Tag *)ETFile->FileTag->data)->artist);
  1822. !     // Album
  1823.       SearchResultList_Text[SEARCH_RESULT_ALBUM]       = g_strdup(((File_Tag *)ETFile->FileTag->data)->album);
  1824.       // Disc Number
  1825.       SearchResultList_Text[SEARCH_RESULT_DISC_NUMBER] = g_strdup(((File_Tag *)ETFile->FileTag->data)->disc_number);
  1826. --- 2486,2494 ----
  1827.       SearchResultList_Text[SEARCH_RESULT_TITLE]       = g_strdup(((File_Tag *)ETFile->FileTag->data)->title);
  1828.       // Artist
  1829.       SearchResultList_Text[SEARCH_RESULT_ARTIST]      = g_strdup(((File_Tag *)ETFile->FileTag->data)->artist);
  1830. !     // Album Artist
  1831. !     SearchResultList_Text[SEARCH_RESULT_ALBUM_ARTIST]= g_strdup(((File_Tag *)ETFile->FileTag->data)->album_artist);
  1832. !   // Album
  1833.       SearchResultList_Text[SEARCH_RESULT_ALBUM]       = g_strdup(((File_Tag *)ETFile->FileTag->data)->album);
  1834.       // Disc Number
  1835.       SearchResultList_Text[SEARCH_RESULT_DISC_NUMBER] = g_strdup(((File_Tag *)ETFile->FileTag->data)->disc_number);
  1836. ***************
  1837. *** 2550,2556 ****
  1838.                          SEARCH_RESULT_FILENAME,    SearchResultList_Text[SEARCH_RESULT_FILENAME],
  1839.                          SEARCH_RESULT_TITLE,       SearchResultList_Text[SEARCH_RESULT_TITLE],
  1840.                          SEARCH_RESULT_ARTIST,      SearchResultList_Text[SEARCH_RESULT_ARTIST],
  1841. !                        SEARCH_RESULT_ALBUM,       SearchResultList_Text[SEARCH_RESULT_ALBUM],
  1842.                          SEARCH_RESULT_DISC_NUMBER, SearchResultList_Text[SEARCH_RESULT_DISC_NUMBER],
  1843.                          SEARCH_RESULT_YEAR,        SearchResultList_Text[SEARCH_RESULT_YEAR],
  1844.                          SEARCH_RESULT_TRACK,       SearchResultList_Text[SEARCH_RESULT_TRACK],
  1845. --- 2572,2579 ----
  1846.                          SEARCH_RESULT_FILENAME,    SearchResultList_Text[SEARCH_RESULT_FILENAME],
  1847.                          SEARCH_RESULT_TITLE,       SearchResultList_Text[SEARCH_RESULT_TITLE],
  1848.                          SEARCH_RESULT_ARTIST,      SearchResultList_Text[SEARCH_RESULT_ARTIST],
  1849. !                        SEARCH_RESULT_ALBUM_ARTIST,SearchResultList_Text[SEARCH_RESULT_ALBUM_ARTIST],
  1850. !                      SEARCH_RESULT_ALBUM,       SearchResultList_Text[SEARCH_RESULT_ALBUM],
  1851.                          SEARCH_RESULT_DISC_NUMBER, SearchResultList_Text[SEARCH_RESULT_DISC_NUMBER],
  1852.                          SEARCH_RESULT_YEAR,        SearchResultList_Text[SEARCH_RESULT_YEAR],
  1853.                          SEARCH_RESULT_TRACK,       SearchResultList_Text[SEARCH_RESULT_TRACK],
  1854. ***************
  1855. *** 2565,2571 ****
  1856.                          SEARCH_RESULT_FILENAME_WEIGHT,    SearchResultList_Weight[SEARCH_RESULT_FILENAME],
  1857.                          SEARCH_RESULT_TITLE_WEIGHT,       SearchResultList_Weight[SEARCH_RESULT_TITLE],
  1858.                          SEARCH_RESULT_ARTIST_WEIGHT,      SearchResultList_Weight[SEARCH_RESULT_ARTIST],
  1859. !                        SEARCH_RESULT_ALBUM_WEIGHT,       SearchResultList_Weight[SEARCH_RESULT_ALBUM],
  1860.                          SEARCH_RESULT_DISC_NUMBER_WEIGHT, SearchResultList_Weight[SEARCH_RESULT_DISC_NUMBER],
  1861.                          SEARCH_RESULT_YEAR_WEIGHT,        SearchResultList_Weight[SEARCH_RESULT_YEAR],
  1862.                          SEARCH_RESULT_TRACK_WEIGHT,       SearchResultList_Weight[SEARCH_RESULT_TRACK],
  1863. --- 2588,2595 ----
  1864.                          SEARCH_RESULT_FILENAME_WEIGHT,    SearchResultList_Weight[SEARCH_RESULT_FILENAME],
  1865.                          SEARCH_RESULT_TITLE_WEIGHT,       SearchResultList_Weight[SEARCH_RESULT_TITLE],
  1866.                          SEARCH_RESULT_ARTIST_WEIGHT,      SearchResultList_Weight[SEARCH_RESULT_ARTIST],
  1867. !                        SEARCH_RESULT_ALBUM_ARTIST_WEIGHT, SearchResultList_Weight[SEARCH_RESULT_ALBUM_ARTIST],
  1868. !                      SEARCH_RESULT_ALBUM_WEIGHT,       SearchResultList_Weight[SEARCH_RESULT_ALBUM],
  1869.                          SEARCH_RESULT_DISC_NUMBER_WEIGHT, SearchResultList_Weight[SEARCH_RESULT_DISC_NUMBER],
  1870.                          SEARCH_RESULT_YEAR_WEIGHT,        SearchResultList_Weight[SEARCH_RESULT_YEAR],
  1871.                          SEARCH_RESULT_TRACK_WEIGHT,       SearchResultList_Weight[SEARCH_RESULT_TRACK],
  1872. ***************
  1873. *** 2580,2586 ****
  1874.                          SEARCH_RESULT_FILENAME_FOREGROUND,    SearchResultList_Color[SEARCH_RESULT_FILENAME],
  1875.                          SEARCH_RESULT_TITLE_FOREGROUND,       SearchResultList_Color[SEARCH_RESULT_TITLE],
  1876.                          SEARCH_RESULT_ARTIST_FOREGROUND,      SearchResultList_Color[SEARCH_RESULT_ARTIST],
  1877. !                        SEARCH_RESULT_ALBUM_FOREGROUND,       SearchResultList_Color[SEARCH_RESULT_ALBUM],
  1878.                          SEARCH_RESULT_DISC_NUMBER_FOREGROUND, SearchResultList_Color[SEARCH_RESULT_DISC_NUMBER],
  1879.                          SEARCH_RESULT_YEAR_FOREGROUND,        SearchResultList_Color[SEARCH_RESULT_YEAR],
  1880.                          SEARCH_RESULT_TRACK_FOREGROUND,       SearchResultList_Color[SEARCH_RESULT_TRACK],
  1881. --- 2604,2611 ----
  1882.                          SEARCH_RESULT_FILENAME_FOREGROUND,    SearchResultList_Color[SEARCH_RESULT_FILENAME],
  1883.                          SEARCH_RESULT_TITLE_FOREGROUND,       SearchResultList_Color[SEARCH_RESULT_TITLE],
  1884.                          SEARCH_RESULT_ARTIST_FOREGROUND,      SearchResultList_Color[SEARCH_RESULT_ARTIST],
  1885. !                        SEARCH_RESULT_ALBUM_ARTIST_FOREGROUND,       SearchResultList_Color[SEARCH_RESULT_ALBUM_ARTIST],
  1886. !                      SEARCH_RESULT_ALBUM_FOREGROUND,       SearchResultList_Color[SEARCH_RESULT_ALBUM],
  1887.                          SEARCH_RESULT_DISC_NUMBER_FOREGROUND, SearchResultList_Color[SEARCH_RESULT_DISC_NUMBER],
  1888.                          SEARCH_RESULT_YEAR_FOREGROUND,        SearchResultList_Color[SEARCH_RESULT_YEAR],
  1889.                          SEARCH_RESULT_TRACK_FOREGROUND,       SearchResultList_Color[SEARCH_RESULT_TRACK],
  1890. ***************
  1891. *** 2599,2605 ****
  1892.       g_free(SearchResultList_Text[SEARCH_RESULT_FILENAME]);
  1893.       g_free(SearchResultList_Text[SEARCH_RESULT_TITLE]);
  1894.       g_free(SearchResultList_Text[SEARCH_RESULT_ARTIST]);
  1895. !     g_free(SearchResultList_Text[SEARCH_RESULT_ALBUM]);
  1896.       g_free(SearchResultList_Text[SEARCH_RESULT_DISC_NUMBER]);
  1897.       g_free(SearchResultList_Text[SEARCH_RESULT_YEAR]);
  1898.       g_free(SearchResultList_Text[SEARCH_RESULT_TRACK]);
  1899. --- 2624,2631 ----
  1900.       g_free(SearchResultList_Text[SEARCH_RESULT_FILENAME]);
  1901.       g_free(SearchResultList_Text[SEARCH_RESULT_TITLE]);
  1902.       g_free(SearchResultList_Text[SEARCH_RESULT_ARTIST]);
  1903. !     g_free(SearchResultList_Text[SEARCH_RESULT_ALBUM_ARTIST]);
  1904. !   g_free(SearchResultList_Text[SEARCH_RESULT_ALBUM]);
  1905.       g_free(SearchResultList_Text[SEARCH_RESULT_DISC_NUMBER]);
  1906.       g_free(SearchResultList_Text[SEARCH_RESULT_YEAR]);
  1907.       g_free(SearchResultList_Text[SEARCH_RESULT_TRACK]);
  1908. diff -crB easytag-2.1.6/src/scan.c easytag-2.1.6_more_album_artist/src/scan.c
  1909. *** easytag-2.1.6/src/scan.c    2008-05-18 13:59:37.000000000 +0200
  1910. --- easytag-2.1.6_more_album_artist/src/scan.c  2010-02-24 12:22:31.000000000 +0100
  1911. ***************
  1912. *** 67,72 ****
  1913. --- 67,73 ----
  1914.   GtkWidget *ProcessFileNameField;
  1915.   GtkWidget *ProcessTitleField;
  1916.   GtkWidget *ProcessArtistField;
  1917. + GtkWidget *ProcessAlbumArtistField;
  1918.   GtkWidget *ProcessAlbumField;
  1919.   GtkWidget *ProcessGenreField;
  1920.   GtkWidget *ProcessCommentField;
  1921. ***************
  1922. *** 1162,1167 ****
  1923. --- 1163,1185 ----
  1924.               g_free(string);
  1925.           }
  1926.  
  1927. +       // Album Artist field
  1928. +         if (st_filetag->album_artist && GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active)
  1929. +         {
  1930. +             if (!FileTag)
  1931. +             {
  1932. +                 FileTag = ET_File_Tag_Item_New();
  1933. +                 ET_Copy_File_Tag_Item(ETFile,FileTag);
  1934. +             }
  1935. +
  1936. +             string = g_strdup(st_filetag->album_artist);
  1937. +
  1938. +             Scan_Process_Fields_Functions(&string);
  1939. +
  1940. +             ET_Set_Field_File_Tag_Item(&FileTag->album_artist,string);
  1941. +
  1942. +             g_free(string);
  1943. +         }
  1944.           // Album field
  1945.           if (st_filetag->album && GTK_TOGGLE_BUTTON(ProcessAlbumField)->active)
  1946.           {
  1947. ***************
  1948. *** 2238,2243 ****
  1949. --- 2256,2263 ----
  1950.               return &FileTag->url;
  1951.           case 'e':    /* Encoded by */
  1952.               return &FileTag->encoded_by;
  1953. +         case 'z':    /* Album Artist */
  1954. +             return &FileTag->album_artist;
  1955.           case 'i':    /* Ignored */
  1956.               return NULL;
  1957.           default:
  1958. ***************
  1959. *** 2550,2556 ****
  1960.       // Advice for Translators : set the first letter of artist translated
  1961.       ProcessArtistField = gtk_toggle_button_new_with_label(     _("Ar"));
  1962.       gtk_tooltips_set_tip(Tips,ProcessArtistField,              _("Process file artist field"),NULL);
  1963. !     // Advice for Translators : set the first letter of album translated
  1964.       ProcessAlbumField = gtk_toggle_button_new_with_label(      _("Al"));
  1965.       gtk_tooltips_set_tip(Tips,ProcessAlbumField,               _("Process album field"),NULL);
  1966.       // Advice for Translators : set the first letter of genre translated
  1967. --- 2570,2579 ----
  1968.       // Advice for Translators : set the first letter of artist translated
  1969.       ProcessArtistField = gtk_toggle_button_new_with_label(     _("Ar"));
  1970.       gtk_tooltips_set_tip(Tips,ProcessArtistField,              _("Process file artist field"),NULL);
  1971. !     // Advice for Translators : set the first letter of album artist translated
  1972. !     ProcessAlbumArtistField = gtk_toggle_button_new_with_label(      _("AA"));
  1973. !     gtk_tooltips_set_tip(Tips,ProcessAlbumArtistField,               _("Process album artist field"),NULL);
  1974. !   // Advice for Translators : set the first letter of album translated
  1975.       ProcessAlbumField = gtk_toggle_button_new_with_label(      _("Al"));
  1976.       gtk_tooltips_set_tip(Tips,ProcessAlbumField,               _("Process album field"),NULL);
  1977.       // Advice for Translators : set the first letter of genre translated
  1978. ***************
  1979. *** 2577,2582 ****
  1980. --- 2600,2606 ----
  1981.       gtk_box_pack_start(GTK_BOX(hbox),ProcessFileNameField,   TRUE,TRUE,2);
  1982.       gtk_box_pack_start(GTK_BOX(hbox),ProcessTitleField,      TRUE,TRUE,2);
  1983.       gtk_box_pack_start(GTK_BOX(hbox),ProcessArtistField,     TRUE,TRUE,2);
  1984. +   gtk_box_pack_start(GTK_BOX(hbox),ProcessAlbumArtistField,TRUE,TRUE,2);
  1985.       gtk_box_pack_start(GTK_BOX(hbox),ProcessAlbumField,      TRUE,TRUE,2);
  1986.       gtk_box_pack_start(GTK_BOX(hbox),ProcessGenreField,      TRUE,TRUE,2);
  1987.       gtk_box_pack_start(GTK_BOX(hbox),ProcessCommentField,    TRUE,TRUE,2);
  1988. ***************
  1989. *** 2588,2594 ****
  1990.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessFileNameField),   PROCESS_FILENAME_FIELD);
  1991.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessTitleField),      PROCESS_TITLE_FIELD);
  1992.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField),     PROCESS_ARTIST_FIELD);
  1993. !     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField),      PROCESS_ALBUM_FIELD);
  1994.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField),      PROCESS_GENRE_FIELD);
  1995.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessCommentField),    PROCESS_COMMENT_FIELD);
  1996.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessComposerField),   PROCESS_COMPOSER_FIELD);
  1997. --- 2612,2619 ----
  1998.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessFileNameField),   PROCESS_FILENAME_FIELD);
  1999.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessTitleField),      PROCESS_TITLE_FIELD);
  2000.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField),     PROCESS_ARTIST_FIELD);
  2001. !     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumArtistField),PROCESS_ALBUM_ARTIST_FIELD);
  2002. !   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField),      PROCESS_ALBUM_FIELD);
  2003.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField),      PROCESS_GENRE_FIELD);
  2004.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessCommentField),    PROCESS_COMMENT_FIELD);
  2005.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessComposerField),   PROCESS_COMPOSER_FIELD);
  2006. ***************
  2007. *** 2599,2604 ****
  2008. --- 2624,2630 ----
  2009.       g_signal_connect(G_OBJECT(ProcessFileNameField),   "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
  2010.       g_signal_connect(G_OBJECT(ProcessTitleField),      "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
  2011.       g_signal_connect(G_OBJECT(ProcessArtistField),     "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
  2012. +     g_signal_connect(G_OBJECT(ProcessAlbumArtistField),"toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
  2013.       g_signal_connect(G_OBJECT(ProcessAlbumField),      "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
  2014.       g_signal_connect(G_OBJECT(ProcessGenreField),      "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
  2015.       g_signal_connect(G_OBJECT(ProcessCommentField),    "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
  2016. ***************
  2017. *** 2780,2795 ****
  2018.       Label = gtk_label_new(_("%a : artist"));
  2019.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,0,1);
  2020.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2021. !     Label = gtk_label_new(_("%b : album"));
  2022.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,1,2);
  2023.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2024. !     Label = gtk_label_new(_("%c : comment"));
  2025.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,2,3);
  2026.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2027. !     Label = gtk_label_new(_("%p : composer"));
  2028.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,3,4);
  2029.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2030. !     Label = gtk_label_new(_("%r : copyright"));
  2031.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,4,5);
  2032.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2033.       Label = gtk_label_new(_("%d : disc number"));
  2034. --- 2806,2824 ----
  2035.       Label = gtk_label_new(_("%a : artist"));
  2036.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,0,1);
  2037.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2038. !     Label = gtk_label_new(_("%z : album artist"));
  2039.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,1,2);
  2040.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2041. !   Label = gtk_label_new(_("%b : album"));
  2042.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,2,3);
  2043.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2044. !     Label = gtk_label_new(_("%c : comment"));
  2045.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,3,4);
  2046.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2047. !     Label = gtk_label_new(_("%p : composer"));
  2048. ! /*    gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,3,4);
  2049. !     gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2050. !     Label = gtk_label_new(_("%r : copyright")); */
  2051.       gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,4,5);
  2052.       gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
  2053.       Label = gtk_label_new(_("%d : disc number"));
  2054. ***************
  2055. *** 3092,3098 ****
  2056.           PROCESS_FILENAME_FIELD    = GTK_TOGGLE_BUTTON(ProcessFileNameField)->active;
  2057.           PROCESS_TITLE_FIELD       = GTK_TOGGLE_BUTTON(ProcessTitleField)->active;
  2058.           PROCESS_ARTIST_FIELD      = GTK_TOGGLE_BUTTON(ProcessArtistField)->active;
  2059. !         PROCESS_ALBUM_FIELD       = GTK_TOGGLE_BUTTON(ProcessAlbumField)->active;
  2060.           PROCESS_GENRE_FIELD       = GTK_TOGGLE_BUTTON(ProcessGenreField)->active;
  2061.           PROCESS_COMMENT_FIELD     = GTK_TOGGLE_BUTTON(ProcessCommentField)->active;
  2062.           PROCESS_COMPOSER_FIELD    = GTK_TOGGLE_BUTTON(ProcessComposerField)->active;
  2063. --- 3121,3128 ----
  2064.           PROCESS_FILENAME_FIELD    = GTK_TOGGLE_BUTTON(ProcessFileNameField)->active;
  2065.           PROCESS_TITLE_FIELD       = GTK_TOGGLE_BUTTON(ProcessTitleField)->active;
  2066.           PROCESS_ARTIST_FIELD      = GTK_TOGGLE_BUTTON(ProcessArtistField)->active;
  2067. !         PROCESS_ALBUM_ARTIST_FIELD= GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active;
  2068. !       PROCESS_ALBUM_FIELD       = GTK_TOGGLE_BUTTON(ProcessAlbumField)->active;
  2069.           PROCESS_GENRE_FIELD       = GTK_TOGGLE_BUTTON(ProcessGenreField)->active;
  2070.           PROCESS_COMMENT_FIELD     = GTK_TOGGLE_BUTTON(ProcessCommentField)->active;
  2071.           PROCESS_COMPOSER_FIELD    = GTK_TOGGLE_BUTTON(ProcessComposerField)->active;
  2072. ***************
  2073. *** 3378,3384 ****
  2074.                                   !GTK_TOGGLE_BUTTON(ProcessTitleField)->active);
  2075.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField),
  2076.                                   !GTK_TOGGLE_BUTTON(ProcessArtistField)->active);
  2077. !     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField),
  2078.                                   !GTK_TOGGLE_BUTTON(ProcessAlbumField)->active);
  2079.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField),
  2080.                                   !GTK_TOGGLE_BUTTON(ProcessGenreField)->active);
  2081. --- 3408,3416 ----
  2082.                                   !GTK_TOGGLE_BUTTON(ProcessTitleField)->active);
  2083.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField),
  2084.                                   !GTK_TOGGLE_BUTTON(ProcessArtistField)->active);
  2085. !     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumArtistField),
  2086. !                                 !GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active);
  2087. !   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField),
  2088.                                   !GTK_TOGGLE_BUTTON(ProcessAlbumField)->active);
  2089.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField),
  2090.                                   !GTK_TOGGLE_BUTTON(ProcessGenreField)->active);
  2091. ***************
  2092. *** 3402,3408 ****
  2093.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessFileNameField),   state);
  2094.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessTitleField),      state);
  2095.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField),     state);
  2096. !     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField),      state);
  2097.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField),      state);
  2098.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessCommentField),    state);
  2099.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessComposerField),   state);
  2100. --- 3434,3441 ----
  2101.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessFileNameField),   state);
  2102.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessTitleField),      state);
  2103.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField),     state);
  2104. !     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumArtistField),state);
  2105. !   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField),      state);
  2106.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField),      state);
  2107.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessCommentField),    state);
  2108.       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessComposerField),   state);
  2109. ***************
  2110. *** 3421,3427 ****
  2111.       if (GTK_TOGGLE_BUTTON(ProcessFileNameField)->active
  2112.       ||  GTK_TOGGLE_BUTTON(ProcessTitleField)->active
  2113.       ||  GTK_TOGGLE_BUTTON(ProcessArtistField)->active
  2114. !     ||  GTK_TOGGLE_BUTTON(ProcessAlbumField)->active
  2115.       ||  GTK_TOGGLE_BUTTON(ProcessGenreField)->active
  2116.       ||  GTK_TOGGLE_BUTTON(ProcessCommentField)->active
  2117.       ||  GTK_TOGGLE_BUTTON(ProcessComposerField)->active
  2118. --- 3454,3461 ----
  2119.       if (GTK_TOGGLE_BUTTON(ProcessFileNameField)->active
  2120.       ||  GTK_TOGGLE_BUTTON(ProcessTitleField)->active
  2121.       ||  GTK_TOGGLE_BUTTON(ProcessArtistField)->active
  2122. !     ||  GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active
  2123. !   ||  GTK_TOGGLE_BUTTON(ProcessAlbumField)->active
  2124.       ||  GTK_TOGGLE_BUTTON(ProcessGenreField)->active
  2125.       ||  GTK_TOGGLE_BUTTON(ProcessCommentField)->active
  2126.       ||  GTK_TOGGLE_BUTTON(ProcessComposerField)->active
  2127. diff -crB easytag-2.1.6/src/setting.c easytag-2.1.6_more_album_artist/src/setting.c
  2128. *** easytag-2.1.6/src/setting.c 2008-05-25 00:32:38.000000000 +0200
  2129. --- easytag-2.1.6_more_album_artist/src/setting.c   2010-02-24 12:24:53.000000000 +0100
  2130. ***************
  2131. *** 204,210 ****
  2132.       {"process_filename_field",                  CV_TYPE_BOOL,    &PROCESS_FILENAME_FIELD                 },
  2133.       {"process_title_field",                     CV_TYPE_BOOL,    &PROCESS_TITLE_FIELD                    },
  2134.       {"process_artist_field",                    CV_TYPE_BOOL,    &PROCESS_ARTIST_FIELD                   },
  2135. !     {"process_album_field",                     CV_TYPE_BOOL,    &PROCESS_ALBUM_FIELD                    },
  2136.       {"process_genre_field",                     CV_TYPE_BOOL,    &PROCESS_GENRE_FIELD                    },
  2137.       {"process_comment_field",                   CV_TYPE_BOOL,    &PROCESS_COMMENT_FIELD                  },
  2138.       {"process_composer_field",                  CV_TYPE_BOOL,    &PROCESS_COMPOSER_FIELD                 },
  2139. --- 204,211 ----
  2140.       {"process_filename_field",                  CV_TYPE_BOOL,    &PROCESS_FILENAME_FIELD                 },
  2141.       {"process_title_field",                     CV_TYPE_BOOL,    &PROCESS_TITLE_FIELD                    },
  2142.       {"process_artist_field",                    CV_TYPE_BOOL,    &PROCESS_ARTIST_FIELD                   },
  2143. !     {"process_album_artist_field",              CV_TYPE_BOOL,    &PROCESS_ALBUM_ARTIST_FIELD             },
  2144. !   {"process_album_field",                     CV_TYPE_BOOL,    &PROCESS_ALBUM_FIELD                    },
  2145.       {"process_genre_field",                     CV_TYPE_BOOL,    &PROCESS_GENRE_FIELD                    },
  2146.       {"process_comment_field",                   CV_TYPE_BOOL,    &PROCESS_COMMENT_FIELD                  },
  2147.       {"process_composer_field",                  CV_TYPE_BOOL,    &PROCESS_COMPOSER_FIELD                 },
  2148. ***************
  2149. *** 477,483 ****
  2150.       PROCESS_FILENAME_FIELD             = 0;
  2151.       PROCESS_TITLE_FIELD                = 1;
  2152.       PROCESS_ARTIST_FIELD               = 1;
  2153. !     PROCESS_ALBUM_FIELD                = 1;
  2154.       PROCESS_GENRE_FIELD                = 1;
  2155.       PROCESS_COMMENT_FIELD              = 1;
  2156.       PROCESS_COMPOSER_FIELD             = 1;
  2157. --- 478,485 ----
  2158.       PROCESS_FILENAME_FIELD             = 0;
  2159.       PROCESS_TITLE_FIELD                = 1;
  2160.       PROCESS_ARTIST_FIELD               = 1;
  2161. !     PROCESS_ALBUM_ARTIST_FIELD         = 1;
  2162. !   PROCESS_ALBUM_FIELD                = 1;
  2163.       PROCESS_GENRE_FIELD                = 1;
  2164.       PROCESS_COMMENT_FIELD              = 1;
  2165.       PROCESS_COMPOSER_FIELD             = 1;
  2166. diff -crB easytag-2.1.6/src/setting.h easytag-2.1.6_more_album_artist/src/setting.h
  2167. *** easytag-2.1.6/src/setting.h 2008-01-19 01:08:17.000000000 +0100
  2168. --- easytag-2.1.6_more_album_artist/src/setting.h   2010-02-24 13:45:49.000000000 +0100
  2169. ***************
  2170. *** 160,165 ****
  2171. --- 160,166 ----
  2172.   gint    PROCESS_FILENAME_FIELD;
  2173.   gint    PROCESS_TITLE_FIELD;
  2174.   gint    PROCESS_ARTIST_FIELD;
  2175. + gint    PROCESS_ALBUM_ARTIST_FIELD;
  2176.   gint    PROCESS_ALBUM_FIELD;
  2177.   gint    PROCESS_GENRE_FIELD;
  2178.   gint    PROCESS_COMMENT_FIELD;
  2179. diff -crB easytag-2.1.6/src/ui_manager.h easytag-2.1.6_more_album_artist/src/ui_manager.h
  2180. *** easytag-2.1.6/src/ui_manager.h  2008-03-22 22:22:17.000000000 +0100
  2181. --- easytag-2.1.6_more_album_artist/src/ui_manager.h    2010-02-24 13:45:49.000000000 +0100
  2182. ***************
  2183. *** 22,27 ****
  2184. --- 22,30 ----
  2185.   "        <menuitem action='SortArtistAsc' />"
  2186.   "        <menuitem action='SortArtistDesc' />"
  2187.   "        <separator />"
  2188. + "        <menuitem action='SortAlbumArtistAsc' />"
  2189. + "        <menuitem action='SortAlbumArtistDesc' />"
  2190. + "        <separator />"
  2191.   "        <menuitem action='SortAlbumAsc' />"
  2192.   "        <menuitem action='SortAlbumDesc' />"
  2193.   "        <separator />"
  2194. ***************
  2195. *** 231,236 ****
  2196. --- 234,242 ----
  2197.   "      <menuitem action='SortArtistAsc' />"
  2198.   "      <menuitem action='SortArtistDesc' />"
  2199.   "      <separator />"
  2200. + "      <menuitem action='SortAlbumArtistAsc' />"
  2201. + "      <menuitem action='SortAlbumArtistDesc' />"
  2202. + "      <separator />"
  2203.   "      <menuitem action='SortAlbumAsc' />"
  2204.   "      <menuitem action='SortAlbumDesc' />"
  2205.   "      <separator />"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement