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, 
&lt;i&gt;*.mp3&lt;/i&gt;.</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

Reply via email to