commit 17f7480524522cad30c3f0d8a4818e2a72fc881e
Author: phantomjinx <[email protected]>
Date: Sun Nov 8 20:37:33 2009 +0000
Manual patch merge.
Patch of b4d019586bcadf717bebefa9dd28bd76afa050f7 taken from master and
applied manually.
src/details.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 54 insertions(+), 5 deletions(-)
---
diff --git a/src/details.c b/src/details.c
index 8845a03..4a643b3 100644
--- a/src/details.c
+++ b/src/details.c
@@ -199,6 +199,24 @@ static void details_checkbutton_toggled (GtkCheckButton
*button,
details_get_item (detail, item, FALSE);
}
+static gboolean details_scale_changed (GtkRange *scale,
+ GtkScrollType scroll,
+ gdouble value,
+ Detail *detail)
+{
+ T_item item;
+
+ g_return_val_if_fail (scale, FALSE);
+
+ item = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (scale),
+ "details_item"));
+
+ g_return_val_if_fail ((item > 0) && (item < T_ITEM_NUM), FALSE);
+
+ details_get_item (detail, item, FALSE);
+
+ return FALSE;
+}
static void details_combobox_changed (GtkComboBox *combobox,
Detail *detail)
@@ -735,7 +753,6 @@ static void details_setup_widget (Detail *detail, T_item
item)
case T_PLAYCOUNT:
case T_BPM:
case T_RATING:
- case T_VOLUME:
case T_SOUNDCHECK:
case T_CD_NR:
case T_TRACK_NR:
@@ -765,6 +782,13 @@ static void details_setup_widget (Detail *detail, T_item
item)
G_CALLBACK (details_text_changed),
detail);
break;
+ case T_VOLUME:
+ buf = g_strdup_printf ("details_scale_%d", item);
+ w = gtkpod_xml_get_widget (detail->xml, buf);
+ g_signal_connect (w, "change-value",
+ G_CALLBACK (details_scale_changed),
+ detail);
+ break;
case T_COMPILATION:
case T_TRANSFERRED:
case T_CHECKED:
@@ -817,7 +841,7 @@ static void details_set_item (Detail *detail, Track *track,
T_item item)
GtkTextBuffer *tb;
GtkWidget *w = NULL;
gchar *text;
- gchar *entry, *checkbutton, *textview, *combobox;
+ gchar *entry, *checkbutton, *textview, *combobox, *scale;
g_return_if_fail (detail);
g_return_if_fail ((item > 0) && (item < T_ITEM_NUM));
@@ -826,6 +850,7 @@ static void details_set_item (Detail *detail, Track *track,
T_item item)
checkbutton = g_strdup_printf ("details_checkbutton_%d", item);
textview = g_strdup_printf ("details_textview_%d", item);
combobox = g_strdup_printf ("details_combobox_%d", item);
+ scale = g_strdup_printf ("details_scale_%d", item);
if (track != NULL)
{
@@ -869,7 +894,6 @@ static void details_set_item (Detail *detail, Track *track,
T_item item)
case T_PLAYCOUNT:
case T_BPM:
case T_RATING:
- case T_VOLUME:
case T_SOUNDCHECK:
case T_CD_NR:
case T_TRACK_NR:
@@ -895,6 +919,17 @@ static void details_set_item (Detail *detail, Track
*track, T_item item)
gtk_entry_set_text (GTK_ENTRY (w), text);
g_signal_handlers_unblock_by_func(w, details_text_changed,detail);
break;
+ case T_VOLUME:
+ w = gtkpod_xml_get_widget (detail->xml, scale);
+ if (track)
+ {
+ gtk_range_set_value (GTK_RANGE (w), track->volume);
+ }
+ else
+ {
+ gtk_range_set_value (GTK_RANGE (w), 0.0);
+ }
+ break;
case T_COMMENT:
case T_DESCRIPTION:
case T_LYRICS:
@@ -1001,6 +1036,7 @@ static void details_set_item (Detail *detail, Track
*track, T_item item)
g_free (textview);
g_free (combobox);
g_free (text);
+ g_free (scale);
}
@@ -1013,7 +1049,7 @@ static void details_get_item (Detail *detail, T_item item,
gboolean assumechanged)
{
GtkWidget *w = NULL;
- gchar *entry, *checkbutton, *textview, *combobox;
+ gchar *entry, *checkbutton, *textview, *combobox, *scale;
gboolean changed = FALSE;
ExtraTrackData *etr;
Track *track;
@@ -1030,6 +1066,7 @@ static void details_get_item (Detail *detail, T_item item,
checkbutton = g_strdup_printf ("details_checkbutton_%d", item);
textview = g_strdup_printf ("details_textview_%d", item);
combobox = g_strdup_printf ("details_combobox_%d", item);
+ scale = g_strdup_printf ("details_scale_%d", item);
switch (item)
{
@@ -1049,7 +1086,6 @@ static void details_get_item (Detail *detail, T_item item,
case T_PLAYCOUNT:
case T_BPM:
case T_RATING:
- case T_VOLUME:
case T_CD_NR:
case T_TRACK_NR:
case T_YEAR:
@@ -1118,6 +1154,18 @@ static void details_get_item (Detail *detail, T_item
item,
}
}
break;
+ case T_VOLUME:
+ if ((w = gtkpod_xml_get_widget (detail->xml, scale)))
+ {
+ gdouble value = gtk_range_get_value (GTK_RANGE (w));
+ gint32 new_volume = (gint32)value;
+ if (track->volume != new_volume)
+ {
+ track->volume = new_volume;
+ changed = TRUE;
+ }
+ }
+ break;
case T_COMMENT:
case T_DESCRIPTION:
case T_SUBTITLE:
@@ -1254,6 +1302,7 @@ static void details_get_item (Detail *detail, T_item item,
g_free (checkbutton);
g_free (textview);
g_free (combobox);
+ g_free (scale);
details_update_buttons (detail);
}
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2