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