Revision: 1870
http://gtkpod.svn.sourceforge.net/gtkpod/?rev=1870&view=rev
Author: Sikon
Date: 2007-12-29 06:38:50 -0800 (Sat, 29 Dec 2007)
Log Message:
-----------
New cover art image, exclusion preferences
Modified Paths:
--------------
gtkpod/trunk/ChangeLog
gtkpod/trunk/data/default-cover.png
gtkpod/trunk/data/gtkpod.glade
gtkpod/trunk/src/charset.c
gtkpod/trunk/src/display_coverart.c
gtkpod/trunk/src/prefsdlg.c
Modified: gtkpod/trunk/ChangeLog
===================================================================
--- gtkpod/trunk/ChangeLog 2007-12-29 11:44:41 UTC (rev 1869)
+++ gtkpod/trunk/ChangeLog 2007-12-29 14:38:50 UTC (rev 1870)
@@ -5,6 +5,15 @@
Filename parse preferences
Cover art search preferences
+ File mask exclusion preferences
+
+ * data/default-cover.png:
+
+ Less fugly and 1996-style picture
+
+ * src/display_coverart.c:
+
+ Set resize algorithm to GDK_INTERP_BILINEAR - yields nicer-looking images
2007-12-28 Matvey Kozhev <sikon at users.sourceforge.net>
Modified: gtkpod/trunk/data/default-cover.png
===================================================================
(Binary files differ)
Modified: gtkpod/trunk/data/gtkpod.glade
===================================================================
--- gtkpod/trunk/data/gtkpod.glade 2007-12-29 11:44:41 UTC (rev 1869)
+++ gtkpod/trunk/data/gtkpod.glade 2007-12-29 14:38:50 UTC (rev 1870)
@@ -13884,17 +13884,17 @@
<property name="spacing">6</property>
<property
name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<child>
- <widget class="GtkButton" id="button5">
+ <widget class="GtkButton" id="exclusions">
<property name="visible">True</property>
- <property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="label"
translatable="yes">Excluded files...</property>
<property
name="use_underline">True</property>
<property name="response_id">0</property>
+ <signal name="clicked"
handler="on_exclusions_clicked"/>
</widget>
</child>
<child>
- <widget class="GtkButton" id="button6">
+ <widget class="GtkButton"
id="music_encoding">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label"
translatable="yes">Encoding...</property>
@@ -13907,7 +13907,7 @@
</packing>
</child>
<child>
- <widget class="GtkButton" id="button12">
+ <widget class="GtkButton" id="commands">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
@@ -14620,7 +14620,7 @@
<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>
<child>
- <widget class="GtkButton" id="button1">
+ <widget class="GtkButton"
id="mserv_settings">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
@@ -15140,6 +15140,7 @@
<property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
<property name="title" translatable="yes">Encoding Preferences</property>
+ <property name="resizable">False</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="has_separator">False</property>
@@ -15273,6 +15274,7 @@
<property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
<property name="title" translatable="yes">Filename Parse
Preferences</property>
+ <property name="resizable">False</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="has_separator">False</property>
@@ -15390,6 +15392,7 @@
<property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
<property name="border_width">5</property>
<property name="title" translatable="yes">Cover Art Search
Preferences</property>
+ <property name="resizable">False</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="has_separator">False</property>
@@ -15494,4 +15497,150 @@
</widget>
</child>
</widget>
+ <widget class="GtkDialog" id="prefs_exclusions_dialog">
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Exclusions List</property>
+ <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="default_height">350</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <widget class="GtkVBox" id="dialog-vbox11">
+ <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>
+ <property name="spacing">2</property>
+ <child>
+ <widget class="GtkVBox" id="vbox24">
+ <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>
+ <property name="border_width">7</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkHBox" id="hbox19">
+ <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>
+ <child>
+ <widget class="GtkLabel" id="label27">
+ <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>
+ <property name="label" translatable="yes">Add file masks
to be excluded from import and synchronization, for example,
<i>*.mp3</i>.</property>
+ <property name="use_markup">True</property>
+ <property name="wrap">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="new_exclusion">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHButtonBox" id="hbuttonbox3">
+ <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>
+ <property name="spacing">6</property>
+ <property name="layout_style">GTK_BUTTONBOX_CENTER</property>
+ <child>
+ <widget class="GtkButton" id="add_exclusion">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label"
translatable="yes">gtk-add</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
+ <signal name="clicked" handler="on_add_exclusion_clicked"/>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkButton" id="remove_exclusion">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label"
translatable="yes">gtk-remove</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
+ <signal name="clicked"
handler="on_remove_exclusion_clicked"/>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow3">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property
name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property
name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="exclusion_list">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property name="headers_visible">False</property>
+ <property name="headers_clickable">True</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <widget class="GtkHButtonBox" id="dialog-action_area11">
+ <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>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <widget class="GtkButton" id="close_button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
+ <property name="label" translatable="yes">gtk-close</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
</glade-interface>
Modified: gtkpod/trunk/src/charset.c
===================================================================
--- gtkpod/trunk/src/charset.c 2007-12-29 11:44:41 UTC (rev 1869)
+++ gtkpod/trunk/src/charset.c 2007-12-29 14:38:50 UTC (rev 1870)
@@ -306,7 +306,12 @@
gtk_tree_model_get (GTK_TREE_MODEL (charsets), &use_iter, 0,
&cur_desc, -1);
if(!g_utf8_collate(description, cur_desc))
+ {
+ g_free (cur_desc);
break;
+ }
+
+ g_free (cur_desc);
}
gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo), &use_iter);
Modified: gtkpod/trunk/src/display_coverart.c
===================================================================
--- gtkpod/trunk/src/display_coverart.c 2007-12-29 11:44:41 UTC (rev 1869)
+++ gtkpod/trunk/src/display_coverart.c 2007-12-29 14:38:50 UTC (rev 1870)
@@ -216,7 +216,7 @@
g_return_if_fail (image);
}
- scaled = gdk_pixbuf_scale_simple(image, cover->img_width,
((cover->img_height * 2)), GDK_INTERP_NEAREST);
+ scaled = gdk_pixbuf_scale_simple(image, cover->img_width,
((cover->img_height * 2)), GDK_INTERP_BILINEAR);
gdk_pixbuf_unref (image);
gnome_canvas_item_set (cover->highlight,
@@ -453,7 +453,7 @@
gnome_canvas_item_show (cover->shadowreflection);
/* Set the Cover */
- scaled = gdk_pixbuf_scale_simple (album->albumart, cover->img_width,
cover->img_height, GDK_INTERP_NEAREST);
+ scaled = gdk_pixbuf_scale_simple (album->albumart, cover->img_width,
cover->img_height, GDK_INTERP_BILINEAR);
gnome_canvas_item_set (cover->cdimage,
"pixbuf", scaled,
NULL);
@@ -741,7 +741,7 @@
w = default_size;
h = (gint) (default_size / ratio);
}
- pixbuf = gdk_pixbuf_scale_simple(image, w, h,
GDK_INTERP_NEAREST);
+ pixbuf = gdk_pixbuf_scale_simple(image, w, h,
GDK_INTERP_BILINEAR);
}
else
pixbuf = gdk_pixbuf_copy (image);
@@ -750,7 +750,7 @@
}
else
{
- pixbuf = gdk_pixbuf_scale_simple(image,
DEFAULT_IMG_SIZE, DEFAULT_IMG_SIZE, GDK_INTERP_NEAREST);
+ pixbuf = gdk_pixbuf_scale_simple(image,
DEFAULT_IMG_SIZE, DEFAULT_IMG_SIZE, GDK_INTERP_BILINEAR);
gdk_pixbuf_unref (image);
}
}
@@ -856,7 +856,7 @@
g_return_val_if_fail(pixbuf, NULL);
}
- scaled = gdk_pixbuf_scale_simple(pixbuf, default_size, default_size,
GDK_INTERP_NEAREST);
+ scaled = gdk_pixbuf_scale_simple(pixbuf, default_size, default_size,
GDK_INTERP_BILINEAR);
gdk_pixbuf_unref (pixbuf);
Modified: gtkpod/trunk/src/prefsdlg.c
===================================================================
--- gtkpod/trunk/src/prefsdlg.c 2007-12-29 11:44:41 UTC (rev 1869)
+++ gtkpod/trunk/src/prefsdlg.c 2007-12-29 14:38:50 UTC (rev 1870)
@@ -641,3 +641,114 @@
{
prefs_set_string ("coverart_template", gtk_entry_get_text (GTK_ENTRY
(sender)));
}
+
+/*
+ glade callback
+*/
+G_MODULE_EXPORT void on_exclusions_clicked (GtkButton *sender, gpointer e)
+{
+ GladeXML *xml = gtkpod_xml_new (xml_file, "prefs_exclusions_dialog");
+ GtkWidget *dlg = gtkpod_xml_get_widget (xml, "prefs_exclusions_dialog");
+ GtkWidget *tree = gtkpod_xml_get_widget (xml, "exclusion_list");
+ GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING);
+ GtkTreeViewColumn *column = gtk_tree_view_column_new ();
+ GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+ gchar *temp = prefs_get_string("exclude_file_mask");
+
+ if (temp)
+ {
+ gint i;
+ gchar **masks = g_strsplit (temp, ";", 0);
+ GtkTreeIter iter;
+
+ g_free (temp);
+
+ for (i = 0; masks[i]; i++)
+ {
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set(store, &iter, 0, masks[i], -1);
+ }
+
+ g_strfreev (masks);
+ }
+
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes (column, renderer, "text", 0, NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
+ gtk_tree_view_set_model (GTK_TREE_VIEW (tree), GTK_TREE_MODEL (store));
+ g_object_unref (store);
+
+ g_object_set_data (G_OBJECT (gtkpod_xml_get_widget (xml,
"add_exclusion")),
+ "xml", xml);
+
+ g_object_set_data (G_OBJECT (gtkpod_xml_get_widget (xml,
"remove_exclusion")),
+ "xml", xml);
+
+ glade_xml_signal_autoconnect (xml);
+ gtk_dialog_run (GTK_DIALOG (dlg));
+ gtk_widget_destroy (dlg);
+ g_object_unref (xml);
+}
+
+static void update_exclusions (GtkListStore *store)
+{
+ GtkTreeModel *model = GTK_TREE_MODEL (store);
+ gint rows = gtk_tree_model_iter_n_children (model, NULL);
+ gchar **array = g_new (gchar *, rows + 1);
+ gchar *temp;
+ gint i;
+ GtkTreeIter iter;
+
+ array[rows] = NULL;
+
+ for (i = 0; i < rows; i++)
+ {
+ gtk_tree_model_iter_nth_child (model, &iter, NULL, i);
+ gtk_tree_model_get (model, &iter, 0, array + i, -1);
+ }
+
+ temp = g_strjoinv (";", array);
+ prefs_set_string ("exclude_file_mask", temp);
+ g_free (temp);
+ g_strfreev (array);
+}
+
+/*
+ glade callback
+*/
+G_MODULE_EXPORT void on_add_exclusion_clicked (GtkButton *sender, gpointer e)
+{
+ GladeXML *xml = GLADE_XML (g_object_get_data (G_OBJECT (sender),
"xml"));
+ GtkWidget *tree = gtkpod_xml_get_widget (xml, "exclusion_list");
+ GtkWidget *entry = gtkpod_xml_get_widget (xml, "new_exclusion");
+ const gchar *text = gtk_entry_get_text (GTK_ENTRY (entry));
+
+ if (text && text[0])
+ {
+ GtkListStore *store = GTK_LIST_STORE (gtk_tree_view_get_model
(GTK_TREE_VIEW (tree)));
+ GtkTreeIter iter;
+
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set(store, &iter, 0, text, -1);
+ gtk_entry_set_text (GTK_ENTRY (entry), "");
+
+ update_exclusions (store);
+ }
+}
+
+/*
+ glade callback
+*/
+G_MODULE_EXPORT void on_remove_exclusion_clicked (GtkButton *sender, gpointer
e)
+{
+ GladeXML *xml = GLADE_XML (g_object_get_data (G_OBJECT (sender),
"xml"));
+ GtkWidget *tree = gtkpod_xml_get_widget (xml, "exclusion_list");
+ GtkListStore *store = GTK_LIST_STORE (gtk_tree_view_get_model
(GTK_TREE_VIEW (tree)));
+ GtkTreeIter iter = tree_get_current_iter (GTK_TREE_VIEW (tree));
+
+ if(gtk_list_store_iter_is_valid (store, &iter))
+ {
+ gtk_list_store_remove (store, &iter);
+ update_exclusions (store);
+ }
+}
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