Revision: 1915
          http://gtkpod.svn.sourceforge.net/gtkpod/?rev=1915&view=rev
Author:   Sikon
Date:     2008-01-05 07:53:14 -0800 (Sat, 05 Jan 2008)

Log Message:
-----------
Graphical rating, filter tabs at bottom

Modified Paths:
--------------
    gtkpod/trunk/ChangeLog
    gtkpod/trunk/configure.in
    gtkpod/trunk/data/gtkpod.glade
    gtkpod/trunk/data/icons/hicolor/16x16/Makefile.am
    gtkpod/trunk/src/Makefile.am
    gtkpod/trunk/src/display.h
    gtkpod/trunk/src/display_itdb.c
    gtkpod/trunk/src/display_playlists.c
    gtkpod/trunk/src/display_sorttabs.c
    gtkpod/trunk/src/display_tracks.c

Added Paths:
-----------
    gtkpod/trunk/data/icons/hicolor/16x16/status/
    gtkpod/trunk/data/icons/hicolor/16x16/status/Makefile.am
    gtkpod/trunk/data/icons/hicolor/16x16/status/star-none.png
    gtkpod/trunk/data/icons/hicolor/16x16/status/star-set.png
    gtkpod/trunk/data/icons/hicolor/16x16/status/star-unset.png

Modified: gtkpod/trunk/ChangeLog
===================================================================
--- gtkpod/trunk/ChangeLog      2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/ChangeLog      2008-01-05 15:53:14 UTC (rev 1915)
@@ -11,7 +11,37 @@
   * src/prefs.c:
   
     Default columns set to title, artist, album, duration and rating.
+       
+  * src/rb_cell_renderer_rating.c:
+  * src/rb_cell_renderer_rating.h:
+  * src/rb_rating_helper.c:
+  * src/rb_rating_helper.h:
+  
+    Rating cell renderer implementation from Rhythmbox.
 
+  * data/icons/hicolor/16x16/status/*:
+  
+    Rating star icons from Rhythmbox.
+       
+  * src/display_tracks.c:
+  
+    Graphical rating column.
+       
+  * data/gtkpod.glade:
+  * src/display_sorttabs.c:
+  
+    Moved filter tabs to the bottom.
+       
+  * src/display_itdb.c:
+  
+    Name the default local repository "Music Library" instead of "Local".
+       
+  * src/display_playlists.c:
+  * src/display.h:
+  * src/display_itdb.c:
+  
+    Expand the playlist tree on startup.
+
 2008-01-04 Matvey Kozhev <sikon at users.sourceforge.net>
 
   * data/gtkpod.glade:

Modified: gtkpod/trunk/configure.in
===================================================================
--- gtkpod/trunk/configure.in   2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/configure.in   2008-01-05 15:53:14 UTC (rev 1915)
@@ -251,6 +251,7 @@
 data/icons/hicolor/Makefile
 data/icons/hicolor/16x16/Makefile
 data/icons/hicolor/16x16/places/Makefile
+data/icons/hicolor/16x16/status/Makefile
 data/icons/hicolor/22x22/Makefile
 data/icons/hicolor/22x22/places/Makefile
 data/icons/hicolor/24x24/Makefile

Modified: gtkpod/trunk/data/gtkpod.glade
===================================================================
--- gtkpod/trunk/data/gtkpod.glade      2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/data/gtkpod.glade      2008-01-05 15:53:14 UTC (rev 1915)
@@ -1401,23 +1401,8 @@
                   <widget class="GtkVPaned" id="paned1">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="position">130</property>
+                    <property name="position">320</property>
                     <child>
-                      <widget class="GtkScrolledWindow" id="paned1_dummy">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property 
name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                      </widget>
-                      <packing>
-                        <property name="resize">False</property>
-                        <property name="shrink">True</property>
-                      </packing>
-                    </child>
-                    <child>
                       <widget class="GtkVBox" id="vbox29">
                         <property name="visible">True</property>
                         <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
@@ -1495,6 +1480,21 @@
                         <property name="shrink">True</property>
                       </packing>
                     </child>
+                    <child>
+                      <widget class="GtkScrolledWindow" id="paned1_dummy">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property 
name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <property 
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+                        <child>
+                          <placeholder/>
+                        </child>
+                      </widget>
+                      <packing>
+                        <property name="resize">True</property>
+                        <property name="shrink">True</property>
+                      </packing>
+                    </child>
                   </widget>
                 </child>
               </widget>

Modified: gtkpod/trunk/data/icons/hicolor/16x16/Makefile.am
===================================================================
--- gtkpod/trunk/data/icons/hicolor/16x16/Makefile.am   2008-01-05 12:08:45 UTC 
(rev 1914)
+++ gtkpod/trunk/data/icons/hicolor/16x16/Makefile.am   2008-01-05 15:53:14 UTC 
(rev 1915)
@@ -1 +1 @@
-SUBDIRS = places
+SUBDIRS = places status

Added: gtkpod/trunk/data/icons/hicolor/16x16/status/Makefile.am
===================================================================
--- gtkpod/trunk/data/icons/hicolor/16x16/status/Makefile.am                    
        (rev 0)
+++ gtkpod/trunk/data/icons/hicolor/16x16/status/Makefile.am    2008-01-05 
15:53:14 UTC (rev 1915)
@@ -0,0 +1,4 @@
+statusdir = $(pkgdatadir)/icons/hicolor/16x16/status
+status_DATA = star-none.png star-set.png star-unset.png
+
+EXTRA_DIST = status_DATA

Added: gtkpod/trunk/data/icons/hicolor/16x16/status/star-none.png
===================================================================
(Binary files differ)


Property changes on: gtkpod/trunk/data/icons/hicolor/16x16/status/star-none.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: gtkpod/trunk/data/icons/hicolor/16x16/status/star-set.png
===================================================================
(Binary files differ)


Property changes on: gtkpod/trunk/data/icons/hicolor/16x16/status/star-set.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: gtkpod/trunk/data/icons/hicolor/16x16/status/star-unset.png
===================================================================
(Binary files differ)


Property changes on: gtkpod/trunk/data/icons/hicolor/16x16/status/star-unset.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: gtkpod/trunk/src/Makefile.am
===================================================================
--- gtkpod/trunk/src/Makefile.am        2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/src/Makefile.am        2008-01-05 15:53:14 UTC (rev 1915)
@@ -56,7 +56,9 @@
     help.h \
     prefsdlg.c \
     infodlg.c \
-    infodlg.h
+    infodlg.h \
+       rb_rating_helper.c rb_rating_helper.h \
+       rb_cell_renderer_rating.c rb_cell_renderer_rating.h
 
 gtkpod_LDADD = $(LIBS) $(INTLLIBS) @LIBOBJS@
 

Modified: gtkpod/trunk/src/display.h
===================================================================
--- gtkpod/trunk/src/display.h  2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/src/display.h  2008-01-05 15:53:14 UTC (rev 1915)
@@ -314,6 +314,7 @@
                          Playlist *playlist);
 void pm_set_renderer_text (GtkCellRenderer *renderer,
                           Playlist *playlist);
+void pm_show_all_playlists();
 
 void st_stop_editing (gint inst, gboolean cancel);
 gboolean st_set_selection (Itdb_Track *track);

Modified: gtkpod/trunk/src/display_itdb.c
===================================================================
--- gtkpod/trunk/src/display_itdb.c     2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/src/display_itdb.c     2008-01-05 15:53:14 UTC (rev 1915)
@@ -855,7 +855,7 @@
        /* Local database */
        filename = g_build_filename (cfgdir, "local_0.itdb", NULL);
        prefs_set_int ("itdb_0_type", GP_ITDB_TYPE_LOCAL);
-       prefs_set_string ("itdb_0_name", _("Local"));
+       prefs_set_string ("itdb_0_name", _("Music Library"));
        prefs_set_string ("itdb_0_filename", filename);
        g_free (filename);
 
@@ -906,6 +906,7 @@
     }
 
     g_free (cfgdir);
+       pm_show_all_playlists ();
 }
 
 

Modified: gtkpod/trunk/src/display_playlists.c
===================================================================
--- gtkpod/trunk/src/display_playlists.c        2008-01-05 12:08:45 UTC (rev 
1914)
+++ gtkpod/trunk/src/display_playlists.c        2008-01-05 15:53:14 UTC (rev 
1915)
@@ -2308,100 +2308,100 @@
 /* Create playlist listview */
 void pm_create_treeview (void)
 {
-  GtkTreeStore *model;
-  GtkTreeSelection *selection;
-  GtkWidget *playlist_window;
-  GtkWidget *tree;
+       GtkTreeStore *model;
+       GtkTreeSelection *selection;
+       GtkWidget *playlist_window;
+       GtkWidget *tree;
 
-  playlist_window = gtkpod_xml_get_widget (main_window_xml, "playlist_window");
-  g_return_if_fail (playlist_window);
+       playlist_window = gtkpod_xml_get_widget (main_window_xml, 
"playlist_window");
+       g_return_if_fail (playlist_window);
 
-  /* destroy old treeview */
-  if (playlist_treeview)
-  {
-      model = GTK_TREE_STORE (gtk_tree_view_get_model(playlist_treeview));
-      g_return_if_fail (model);
-      g_object_unref (model);
-      gtk_widget_destroy (GTK_WIDGET (playlist_treeview));
-      playlist_treeview = NULL;
-  }
-  /* create new one */
-  tree = gtk_tree_view_new ();
-  gtk_widget_set_events (tree, GDK_KEY_RELEASE_MASK);
-  gtk_widget_show (tree);
-  playlist_treeview = GTK_TREE_VIEW (tree);
-  gtk_container_add (GTK_CONTAINER (playlist_window), tree);
+       /* destroy old treeview */
+       if (playlist_treeview)
+       {
+         model = GTK_TREE_STORE (gtk_tree_view_get_model(playlist_treeview));
+         g_return_if_fail (model);
+         g_object_unref (model);
+         gtk_widget_destroy (GTK_WIDGET (playlist_treeview));
+         playlist_treeview = NULL;
+       }
+       /* create new one */
+       tree = gtk_tree_view_new ();
+       gtk_widget_set_events (tree, GDK_KEY_RELEASE_MASK);
+       gtk_widget_show (tree);
+       playlist_treeview = GTK_TREE_VIEW (tree);
+       gtk_container_add (GTK_CONTAINER (playlist_window), tree);
 
-  /* create model */
-  model =   gtk_tree_store_new (PM_NUM_COLUMNS, G_TYPE_POINTER, 
G_TYPE_POINTER);
+       /* create model */
+       model =   gtk_tree_store_new (PM_NUM_COLUMNS, G_TYPE_POINTER, 
G_TYPE_POINTER);
 
-  /* set tree model */
-  gtk_tree_view_set_model (playlist_treeview, GTK_TREE_MODEL (model));
- /* gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (playlist_treeview), TRUE); */
-  gtk_tree_selection_set_mode (gtk_tree_view_get_selection (playlist_treeview),
-                              GTK_SELECTION_SINGLE);
-  selection = gtk_tree_view_get_selection (playlist_treeview);
-  g_signal_connect (G_OBJECT (selection), "changed",
-                   G_CALLBACK (pm_selection_changed), NULL);
-  pm_add_columns ();
+       /* set tree model */
+       gtk_tree_view_set_model (playlist_treeview, GTK_TREE_MODEL (model));
+       /* gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (playlist_treeview), 
TRUE); */
+       gtk_tree_selection_set_mode (gtk_tree_view_get_selection 
(playlist_treeview),
+                                  GTK_SELECTION_SINGLE);
+       selection = gtk_tree_view_get_selection (playlist_treeview);
+       g_signal_connect (G_OBJECT (selection), "changed",
+                       G_CALLBACK (pm_selection_changed), NULL);
+       pm_add_columns ();
 
-  gtk_drag_source_set (GTK_WIDGET (playlist_treeview),
-                      GDK_BUTTON1_MASK,
-                      pm_drag_types, TGNR (pm_drag_types),
-                      GDK_ACTION_COPY|GDK_ACTION_MOVE);
-  gtk_drag_dest_set (GTK_WIDGET (playlist_treeview),
-                    GTK_DEST_DEFAULT_HIGHLIGHT,
-                    pm_drop_types, TGNR (pm_drop_types),
-                    GDK_ACTION_COPY|GDK_ACTION_MOVE);
+       gtk_drag_source_set (GTK_WIDGET (playlist_treeview),
+                          GDK_BUTTON1_MASK,
+                          pm_drag_types, TGNR (pm_drag_types),
+                          GDK_ACTION_COPY|GDK_ACTION_MOVE);
+       gtk_drag_dest_set (GTK_WIDGET (playlist_treeview),
+                        GTK_DEST_DEFAULT_HIGHLIGHT,
+                        pm_drop_types, TGNR (pm_drop_types),
+                        GDK_ACTION_COPY|GDK_ACTION_MOVE);
 
 
-/*   gtk_tree_view_enable_model_drag_dest (playlist_treeview, */
-/*                                     pm_drop_types, TGNR (pm_drop_types), */
-/*                                     GDK_ACTION_COPY); */
-  /* need the gtk_drag_dest_set() with no actions ("0") so that the
-     data_received callback gets the correct info value. This is most
-     likely a bug... */
-/*   gtk_drag_dest_set_target_list (GTK_WIDGET (playlist_treeview), */
-/*                              gtk_target_list_new (pm_drop_types, */
-/*                                                   TGNR (pm_drop_types))); */
+       /*   gtk_tree_view_enable_model_drag_dest (playlist_treeview, */
+       /*                                      pm_drop_types, TGNR 
(pm_drop_types), */
+       /*                                      GDK_ACTION_COPY); */
+       /* need the gtk_drag_dest_set() with no actions ("0") so that the
+        data_received callback gets the correct info value. This is most
+        likely a bug... */
+       /*   gtk_drag_dest_set_target_list (GTK_WIDGET (playlist_treeview), */
+       /*                               gtk_target_list_new (pm_drop_types, */
+       /*                                                    TGNR 
(pm_drop_types))); */
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-begin",
-                   G_CALLBACK (pm_drag_begin),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-begin",
+                       G_CALLBACK (pm_drag_begin),
+                       NULL);
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-data-delete",
-                   G_CALLBACK (pm_drag_data_delete),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-data-delete",
+                       G_CALLBACK (pm_drag_data_delete),
+                       NULL);
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-data-get",
-                   G_CALLBACK (pm_drag_data_get),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-data-get",
+                       G_CALLBACK (pm_drag_data_get),
+                       NULL);
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-data-received",
-                   G_CALLBACK (pm_drag_data_received),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-data-received",
+                       G_CALLBACK (pm_drag_data_received),
+                       NULL);
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-drop",
-                   G_CALLBACK (pm_drag_drop),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-drop",
+                       G_CALLBACK (pm_drag_drop),
+                       NULL);
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-end",
-                   G_CALLBACK (pm_drag_end),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-end",
+                       G_CALLBACK (pm_drag_end),
+                       NULL);
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-leave",
-                   G_CALLBACK (pm_drag_leave),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-leave",
+                       G_CALLBACK (pm_drag_leave),
+                       NULL);
 
-  g_signal_connect ((gpointer) playlist_treeview, "drag-motion",
-                   G_CALLBACK (pm_drag_motion),
-                   NULL);
+       g_signal_connect ((gpointer) playlist_treeview, "drag-motion",
+                       G_CALLBACK (pm_drag_motion),
+                       NULL);
 
-  g_signal_connect_after ((gpointer) playlist_treeview, "key_release_event",
+       g_signal_connect_after ((gpointer) playlist_treeview, 
"key_release_event",
                          G_CALLBACK (on_playlist_treeview_key_release_event),
                          NULL);
-  g_signal_connect (G_OBJECT (playlist_treeview), "button-press-event",
-                   G_CALLBACK (pm_button_press), model);
+       g_signal_connect (G_OBJECT (playlist_treeview), "button-press-event",
+                       G_CALLBACK (pm_button_press), model);
 }
 
 
@@ -2440,3 +2440,8 @@
 {
     current_playlist = pl;
 }
+
+void pm_show_all_playlists ()
+{
+       gtk_tree_view_expand_all (playlist_treeview);
+}

Modified: gtkpod/trunk/src/display_sorttabs.c
===================================================================
--- gtkpod/trunk/src/display_sorttabs.c 2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/src/display_sorttabs.c 2008-01-05 15:53:14 UTC (rev 1915)
@@ -2671,7 +2671,7 @@
            g_return_if_fail (parent);
            g_return_if_fail (dummy);
            gtk_widget_destroy (dummy);
-           gtk_paned_pack1 (GTK_PANED (parent), paned, TRUE, TRUE);
+           gtk_paned_pack2 (GTK_PANED (parent), paned, TRUE, TRUE);
        }
        else
        {

Modified: gtkpod/trunk/src/display_tracks.c
===================================================================
--- gtkpod/trunk/src/display_tracks.c   2008-01-05 12:08:45 UTC (rev 1914)
+++ gtkpod/trunk/src/display_tracks.c   2008-01-05 15:53:14 UTC (rev 1915)
@@ -49,6 +49,7 @@
 #include "misc_track.h"
 #include "file.h"
 #include "context_menus.h"
+#include "rb_cell_renderer_rating.h"
 
 /* pointer to the treeview for the track display */
 static GtkTreeView *track_treeview = NULL;
@@ -848,6 +849,37 @@
 #endif
 
 
+static void tm_rating_edited (RBCellRendererRating *renderer,
+                                                         const gchar 
*path_string,
+                                                         double rating)
+{
+       GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+       GtkTreeIter iter;
+    Track *track;
+       GtkTreePath *path = gtk_tree_path_new_from_string (path_string);
+               
+       g_return_if_fail (model);
+       g_return_if_fail (path);
+       g_return_if_fail (gtk_tree_model_get_iter (model, &iter, path));
+       
+       gtk_tree_path_free (path);
+       gtk_tree_model_get(model, &iter, READOUT_COL, &track, -1);
+       
+       if ((int) rating != track->rating)
+       {
+               track->rating = (int) rating;           
+               track->time_modified = time (NULL);
+        pm_track_changed (track);
+        data_changed (track->itdb);
+
+        if (prefs_get_int("id3_write"))
+        {
+                       write_tags_to_file (track);
+                       gp_duplicate_remove (NULL, NULL);
+        }
+       }
+}
+
 /* Called when editable cell is being edited. Stores new data to the
    track list. ID3 tags in the corresponding files are updated as
    well, if activated in the pref settings */
@@ -887,7 +919,7 @@
   {
      Track *track;
      ExtraTrackData *etr;
-     gboolean changed;
+     gboolean changed = FALSE;
      GtkTreeIter iter;
      gchar *str;
 
@@ -1027,112 +1059,116 @@
                               GtkTreeIter       *iter,
                               gpointer           data)
 {
-  Track *track;
-  ExtraTrackData *etr;
-  iTunesDB *itdb;
-  TM_item column;
-  gchar *text;
+       Track *track;
+       ExtraTrackData *etr;
+       iTunesDB *itdb;
+       TM_item column;
+       gchar *text;
 
-  column = (TM_item)g_object_get_data (G_OBJECT (renderer), "column");
+       column = (TM_item)g_object_get_data (G_OBJECT (renderer), "column");
 
-  g_return_if_fail ((column >= 0) && (column < TM_NUM_COLUMNS));
+       g_return_if_fail ((column >= 0) && (column < TM_NUM_COLUMNS));
 
-  gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
-  g_return_if_fail (track);
-  etr = track->userdata;
-  g_return_if_fail (etr);
-  itdb = track->itdb;
-  g_return_if_fail (itdb);
+       gtk_tree_model_get (model, iter, READOUT_COL, &track, -1);
+       g_return_if_fail (track);
+       etr = track->userdata;
+       g_return_if_fail (etr);
+       itdb = track->itdb;
+       g_return_if_fail (itdb);
 
-  text = track_get_text (track, TM_to_T (column));
+       text = track_get_text (track, TM_to_T (column));
 
-  switch (column)
-  {
-  case TM_COLUMN_TITLE:
-  case TM_COLUMN_ARTIST:
-  case TM_COLUMN_ALBUM:
-  case TM_COLUMN_GENRE:
-  case TM_COLUMN_COMPOSER:
-  case TM_COLUMN_COMMENT:
-  case TM_COLUMN_FILETYPE:
-  case TM_COLUMN_GROUPING:
-  case TM_COLUMN_CATEGORY:
-  case TM_COLUMN_DESCRIPTION:
-  case TM_COLUMN_PODCASTURL:
-  case TM_COLUMN_PODCASTRSS:
-  case TM_COLUMN_SUBTITLE:
-  case TM_COLUMN_TIME_PLAYED:
-  case TM_COLUMN_TIME_MODIFIED:
-  case TM_COLUMN_TIME_ADDED:
-  case TM_COLUMN_TIME_RELEASED:
-  case TM_COLUMN_TV_SHOW:
-  case TM_COLUMN_TV_EPISODE:
-  case TM_COLUMN_TV_NETWORK:
-  case TM_COLUMN_ALBUMARTIST:
-  case TM_COLUMN_SORT_ARTIST:
-  case TM_COLUMN_SORT_TITLE:
-  case TM_COLUMN_SORT_ALBUM:
-  case TM_COLUMN_SORT_ALBUMARTIST:
-  case TM_COLUMN_SORT_COMPOSER:
-  case TM_COLUMN_SORT_TVSHOW:
-      g_object_set (G_OBJECT (renderer),
-                   "text", text,
-                   "editable", TRUE,
-                   "xalign", 0.0, NULL);
-      break;
-  case TM_COLUMN_MEDIA_TYPE:
-      g_object_set (G_OBJECT (renderer),
-                   "text", text,
-                   "editable", FALSE,
-                   "xalign", 0.0, NULL);
-      break;
-  case TM_COLUMN_TRACK_NR:
-  case TM_COLUMN_CD_NR:
-  case TM_COLUMN_BITRATE:
-  case TM_COLUMN_SAMPLERATE:
-  case TM_COLUMN_BPM:
-  case TM_COLUMN_PLAYCOUNT:
-  case TM_COLUMN_YEAR:
-  case TM_COLUMN_RATING:
-  case TM_COLUMN_VOLUME:
-  case TM_COLUMN_SOUNDCHECK:
-  case TM_COLUMN_TRACKLEN:
-  case TM_COLUMN_SEASON_NR:
-  case TM_COLUMN_EPISODE_NR:
-      g_object_set (G_OBJECT (renderer),
-                   "text", text,
-                   "editable", TRUE,
-                   "xalign", 1.0, NULL);
-      break;
-  case TM_COLUMN_IPOD_ID:
-  case TM_COLUMN_SIZE:
-      g_object_set (G_OBJECT (renderer),
-                   "text", text,
-                   "editable", FALSE,
-                   "xalign", 1.0, NULL);
-      break;
-  case TM_COLUMN_PC_PATH:
-  case TM_COLUMN_IPOD_PATH:
-  case TM_COLUMN_THUMB_PATH:
-      g_object_set (G_OBJECT (renderer),
-                   "text", text,
-                   "editable", FALSE,
-                   "xalign", 0.0, NULL);
-      break;
-  case TM_COLUMN_TRANSFERRED:
-      g_object_set (G_OBJECT (renderer),
-                   "active", track->transferred,
-                   "activatable", FALSE, NULL);
-      break;
-  case TM_COLUMN_COMPILATION:
-      g_object_set (G_OBJECT (renderer),
-                   "active", track->compilation,
-                   "activatable", TRUE, NULL);
-      break;
-  case TM_NUM_COLUMNS:
-      break;
-  }
-  g_free (text);
+       switch (column)
+       {
+       case TM_COLUMN_RATING:
+               g_object_set (G_OBJECT (renderer),
+                                         "rating", (double)track->rating,
+                                         NULL);
+               break;
+       case TM_COLUMN_TITLE:
+       case TM_COLUMN_ARTIST:
+       case TM_COLUMN_ALBUM:
+       case TM_COLUMN_GENRE:
+       case TM_COLUMN_COMPOSER:
+       case TM_COLUMN_COMMENT:
+       case TM_COLUMN_FILETYPE:
+       case TM_COLUMN_GROUPING:
+       case TM_COLUMN_CATEGORY:
+       case TM_COLUMN_DESCRIPTION:
+       case TM_COLUMN_PODCASTURL:
+       case TM_COLUMN_PODCASTRSS:
+       case TM_COLUMN_SUBTITLE:
+       case TM_COLUMN_TIME_PLAYED:
+       case TM_COLUMN_TIME_MODIFIED:
+       case TM_COLUMN_TIME_ADDED:
+       case TM_COLUMN_TIME_RELEASED:
+       case TM_COLUMN_TV_SHOW:
+       case TM_COLUMN_TV_EPISODE:
+       case TM_COLUMN_TV_NETWORK:
+       case TM_COLUMN_ALBUMARTIST:
+       case TM_COLUMN_SORT_ARTIST:
+       case TM_COLUMN_SORT_TITLE:
+       case TM_COLUMN_SORT_ALBUM:
+       case TM_COLUMN_SORT_ALBUMARTIST:
+       case TM_COLUMN_SORT_COMPOSER:
+       case TM_COLUMN_SORT_TVSHOW:
+         g_object_set (G_OBJECT (renderer),
+                       "text", text,
+                       "editable", TRUE,
+                       "xalign", 0.0, NULL);
+         break;
+       case TM_COLUMN_MEDIA_TYPE:
+         g_object_set (G_OBJECT (renderer),
+                       "text", text,
+                       "editable", FALSE,
+                       "xalign", 0.0, NULL);
+         break;
+       case TM_COLUMN_TRACK_NR:
+       case TM_COLUMN_CD_NR:
+       case TM_COLUMN_BITRATE:
+       case TM_COLUMN_SAMPLERATE:
+       case TM_COLUMN_BPM:
+       case TM_COLUMN_PLAYCOUNT:
+       case TM_COLUMN_YEAR:
+       case TM_COLUMN_VOLUME:
+       case TM_COLUMN_SOUNDCHECK:
+       case TM_COLUMN_TRACKLEN:
+       case TM_COLUMN_SEASON_NR:
+       case TM_COLUMN_EPISODE_NR:
+         g_object_set (G_OBJECT (renderer),
+                       "text", text,
+                       "editable", TRUE,
+                       "xalign", 1.0, NULL);
+         break;
+       case TM_COLUMN_IPOD_ID:
+       case TM_COLUMN_SIZE:
+         g_object_set (G_OBJECT (renderer),
+                       "text", text,
+                       "editable", FALSE,
+                       "xalign", 1.0, NULL);
+         break;
+       case TM_COLUMN_PC_PATH:
+       case TM_COLUMN_IPOD_PATH:
+       case TM_COLUMN_THUMB_PATH:
+         g_object_set (G_OBJECT (renderer),
+                       "text", text,
+                       "editable", FALSE,
+                       "xalign", 0.0, NULL);
+         break;
+       case TM_COLUMN_TRANSFERRED:
+         g_object_set (G_OBJECT (renderer),
+                       "active", track->transferred,
+                       "activatable", FALSE, NULL);
+         break;
+       case TM_COLUMN_COMPILATION:
+         g_object_set (G_OBJECT (renderer),
+                       "active", track->compilation,
+                       "activatable", TRUE, NULL);
+         break;
+       case TM_NUM_COLUMNS:
+         break;
+       }
+       g_free (text);
 }
 
 
@@ -2186,11 +2222,21 @@
        }
 
        if (!renderer)
-       {   /* text renderer -- editable/not editable is done in
-        tm_cell_data_func() */
-         renderer = gtk_cell_renderer_text_new ();
-         g_signal_connect (G_OBJECT (renderer), "edited",
-                       G_CALLBACK (tm_cell_edited), model);
+       {
+               if (tm_item == TM_COLUMN_RATING)
+               {
+                       renderer = rb_cell_renderer_rating_new ();
+                       g_signal_connect (G_OBJECT (renderer), "rated",
+                                                         G_CALLBACK 
(tm_rating_edited), NULL);
+               }
+               else
+               {
+                       /* text renderer -- editable/not editable is done in
+                          tm_cell_data_func() */
+                       renderer = gtk_cell_renderer_text_new ();
+                       g_signal_connect (G_OBJECT (renderer), "edited",
+                                                         G_CALLBACK 
(tm_cell_edited), model);
+               }
        }
 
        g_object_set_data (G_OBJECT (renderer), "column",


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to