Revision: 1908
http://gtkpod.svn.sourceforge.net/gtkpod/?rev=1908&view=rev
Author: Sikon
Date: 2008-01-03 06:38:30 -0800 (Thu, 03 Jan 2008)
Log Message:
-----------
Find as you type
Modified Paths:
--------------
gtkpod/trunk/ChangeLog
gtkpod/trunk/data/gtkpod.glade
gtkpod/trunk/src/display_playlists.c
gtkpod/trunk/src/display_tracks.c
gtkpod/trunk/src/help.c
gtkpod/trunk/src/misc.c
gtkpod/trunk/src/misc.h
gtkpod/trunk/src/prefs.c
gtkpod/trunk/src/stock_icons.c
Modified: gtkpod/trunk/ChangeLog
===================================================================
--- gtkpod/trunk/ChangeLog 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/ChangeLog 2008-01-03 14:38:30 UTC (rev 1908)
@@ -27,6 +27,8 @@
* src/display_tracks.c:
multi_edit_title is now ignored (always true).
+ Find-as-you-type search implemented using GtkTreeModelFilter.
+ (Remember to use get_model instead of gtk_tree_view_get_model)
* src/prefsdlg.c:
* data/gtkpod.glade:
@@ -43,6 +45,16 @@
* src/stock_icons.h:
Use GtkIconTheme for stock icon handling.
+
+ * src/misc.c:
+ * src/misc.h:
+
+ Added utf8_strcasestr (a copied g_utf8_strcasestr from GtkSourceView).
+
+ * src/help.c:
+
+ Translation string optimization, as suggested by Daniele Forsi and
+ Bastien Nocera <[EMAIL PROTECTED]>.
2008-01-02 Matvey Kozhev <sikon at users.sourceforge.net>
Modified: gtkpod/trunk/data/gtkpod.glade
===================================================================
--- gtkpod/trunk/data/gtkpod.glade 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/data/gtkpod.glade 2008-01-03 14:38:30 UTC (rev 1908)
@@ -3,7 +3,7 @@
<!--*- mode: xml -*-->
<glade-interface>
<widget class="GtkWindow" id="gtkpod">
- <property name="title" translatable="yes">gtkpod</property>
+ <property name="title" translatable="yes">gtkpod iPod Manager</property>
<property name="default_width">600</property>
<property name="default_height">500</property>
<property name="icon">gtkpod-icon-48.png</property>
@@ -1230,7 +1230,7 @@
<widget class="GtkHPaned" id="paned0">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="position">150</property>
+ <property name="position">235</property>
<signal name="button_release_event"
handler="on_paned0_button_release_event"/>
<child>
<widget class="GtkVBox" id="vbox2">
@@ -1417,14 +1417,76 @@
</packing>
</child>
<child>
- <widget class="GtkScrolledWindow" id="track_window">
+ <widget class="GtkVBox" id="vbox29">
<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>
+ <property name="events">GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK</property>
<child>
- <placeholder/>
+ <widget class="GtkHBox" id="hbox75">
+ <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">6</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel"
id="current_playlist_label">
+ <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="xalign">0</property>
+ <property name="label"
translatable="yes"><b>No playlist selected</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label22">
+ <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">Search:</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property
name="pack_type">GTK_PACK_END</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkEntry" id="search_entry">
+ <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="width_chars">20</property>
+ <signal name="changed"
handler="on_search_entry_changed"/>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property
name="pack_type">GTK_PACK_END</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
</child>
+ <child>
+ <widget class="GtkScrolledWindow" id="track_window">
+ <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="position">1</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="resize">True</property>
@@ -1433,9 +1495,6 @@
</child>
</widget>
</child>
- <child>
- <placeholder/>
- </child>
</widget>
<packing>
<property name="resize">True</property>
@@ -9198,6 +9257,7 @@
<widget class="GtkWindow" id="file_transfer_information_dialog">
<property name="border_width">2</property>
<property name="title" translatable="yes">Progress Information</property>
+ <property name="skip_taskbar_hint">True</property>
<child>
<widget class="GtkVBox" id="vbox180">
<property name="visible">True</property>
Modified: gtkpod/trunk/src/display_playlists.c
===================================================================
--- gtkpod/trunk/src/display_playlists.c 2008-01-03 10:21:48 UTC (rev
1907)
+++ gtkpod/trunk/src/display_playlists.c 2008-01-03 14:38:30 UTC (rev
1908)
@@ -1376,14 +1376,14 @@
static void pm_selection_changed_cb (GtkTreeSelection *selection,
gpointer user_data2)
{
- GtkTreeModel *model;
- GtkTreeIter iter;
- Playlist *new_playlist = NULL;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ Playlist *new_playlist = NULL;
#if DEBUG_TIMING
- GTimeVal time;
- g_get_current_time (&time);
- printf ("pm_selection_changed_cb enter: %ld.%06ld sec\n",
+ GTimeVal time;
+ g_get_current_time (&time);
+ printf ("pm_selection_changed_cb enter: %ld.%06ld sec\n",
time.tv_sec % 3600, time.tv_usec);
#endif
@@ -1391,77 +1391,93 @@
* in playlist
*/
coverart_block_change (TRUE);
-
- if (gtk_tree_selection_get_selected (selection, &model, &iter) == FALSE)
- { /* no selection -> reset sort tabs */
- st_init (-1, 0);
- current_playlist = NULL;
- }
- else
- { /* handle new selection */
- gtk_tree_model_get (model, &iter,
+
+ if (gtk_tree_selection_get_selected (selection, &model, &iter) == FALSE)
+ { /* no selection -> reset sort tabs */
+ st_init (-1, 0);
+ current_playlist = NULL;
+ }
+ else
+ {
+ gchar *label_text;
+
+ /* handle new selection */
+ gtk_tree_model_get (model, &iter,
PM_COLUMN_PLAYLIST, &new_playlist,
-1);
- /* If new playlist is in an iPod itdb, set the mountpoint for
- * the free space display to this iPod (there may be several
- * iPods connected */
- g_return_if_fail (new_playlist);
- g_return_if_fail (new_playlist->itdb);
- if (new_playlist->itdb->usertype & GP_ITDB_TYPE_IPOD)
- {
- space_set_ipod_itdb (new_playlist->itdb);
- }
-
- if (gphoto_is_photo_playlist (new_playlist))
- {
+ /* If new playlist is in an iPod itdb, set the mountpoint for
+ * the free space display to this iPod (there may be several
+ * iPods connected */
+ g_return_if_fail (new_playlist);
+ g_return_if_fail (new_playlist->itdb);
+
+ label_text = g_markup_printf_escaped ("<b>%s</b>",
new_playlist->name);
+
+ gtk_label_set_markup (GTK_LABEL (gtkpod_xml_get_widget
(main_window_xml, "current_playlist_label")),
+ label_text);
+
+ g_free (label_text);
+
+ if (new_playlist->itdb->usertype & GP_ITDB_TYPE_IPOD)
+ {
+ space_set_ipod_itdb (new_playlist->itdb);
+ }
+
+ if (gphoto_is_photo_playlist (new_playlist))
+ {
/* This is the photo playlist so need to load
photo database
- * rather than get tracks.
+ * rather than get tracks.
*/
gphoto_display_photo_window
(new_playlist->itdb);
- }
- else
- {
+ }
+ else
+ {
gphoto_change_to_photo_window (FALSE);
- }
+ }
- /* remove all entries from sort tab 0 */
- /* printf ("removing entries: %x\n", current_playlist);*/
- st_init (-1, 0);
+ /* remove all entries from sort tab 0 */
+ /* printf ("removing entries: %x\n", current_playlist);*/
+ st_init (-1, 0);
- current_playlist = new_playlist;
- if (new_playlist->is_spl && new_playlist->splpref.liveupdate)
- itdb_spl_update (new_playlist);
- if (new_playlist->members)
- {
- GList *gl;
+ current_playlist = new_playlist;
+ if (new_playlist->is_spl && new_playlist->splpref.liveupdate)
+ itdb_spl_update (new_playlist);
+
+ if (new_playlist->members)
+ {
+ GList *gl;
- st_enable_disable_view_sort (0, FALSE);
- for (gl=new_playlist->members; gl; gl=gl->next)
- { /* add all tracks to sort tab 0 */
- Track *track = gl->data;
- st_add_track (track, FALSE, TRUE, 0);
- }
- st_enable_disable_view_sort (0, TRUE);
- st_add_track (NULL, TRUE, TRUE, 0);
- }
- gtkpod_tracks_statusbar_update();
- }
-
- /* Reallow the coverart selection update */
- coverart_block_change (FALSE);
- /* Set the coverart display based on the selected playlist */
- coverart_display_update(TRUE);
+ st_enable_disable_view_sort (0, FALSE);
+
+ for (gl=new_playlist->members; gl; gl=gl->next)
+ {
+ /* add all tracks to sort tab 0 */
+ Track *track = gl->data;
+ st_add_track (track, FALSE, TRUE, 0);
+ }
+
+ st_enable_disable_view_sort (0, TRUE);
+ st_add_track (NULL, TRUE, TRUE, 0);
+ }
+
+ gtkpod_tracks_statusbar_update();
+ }
+
+ /* Reallow the coverart selection update */
+ coverart_block_change (FALSE);
+ /* Set the coverart display based on the selected playlist */
+ coverart_display_update(TRUE);
- space_data_update ();
-
+ space_data_update ();
+
#if DEBUG_TIMING
- g_get_current_time (&time);
- printf ("pm_selection_changed_cb exit: %ld.%06ld sec\n",
+ g_get_current_time (&time);
+ printf ("pm_selection_changed_cb exit: %ld.%06ld sec\n",
time.tv_sec % 3600, time.tv_usec);
#endif
- /* make only suitable delete menu items available */
- display_adjust_menus ();
+ /* make only suitable delete menu items available */
+ display_adjust_menus ();
}
/* Callback function called when the selection
Modified: gtkpod/trunk/src/display_tracks.c
===================================================================
--- gtkpod/trunk/src/display_tracks.c 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/src/display_tracks.c 2008-01-03 14:38:30 UTC (rev 1908)
@@ -82,12 +82,78 @@
const gchar *TM_PREFS_SEARCH_COLUMN = "tm_prefs_search_column";
+/* Convenience functions */
+static gboolean filter_tracks (GtkTreeModel *model, GtkTreeIter *iter,
gpointer entry)
+{
+ Track *tr;
+ gboolean result = FALSE;
+ const gchar *text = gtk_entry_get_text (GTK_ENTRY (entry));
+ int i;
+
+ gtk_tree_model_get(model, iter, READOUT_COL, &tr, -1);
+
+ for (i = 0; i < TM_NUM_COLUMNS; i++)
+ {
+ gint visible = prefs_get_int_index("col_visible", i);
+ gchar *data;
+
+ if (!visible)
+ continue;
+
+ data = track_get_text (tr, TM_to_T (i));
+
+ if (data && utf8_strcasestr (data, text))
+ {
+ g_free (data);
+ result = TRUE;
+ break;
+ }
+
+ g_free (data);
+ }
+
+ return result;
+}
+
+static GtkTreeModel *get_model (GtkTreeView *tree)
+{
+ GtkTreeModel *model = gtk_tree_view_get_model (tree);
+
+ if (!GTK_IS_TREE_MODEL_FILTER (model))
+ return model;
+ else
+ return gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER
(model));
+}
+
+static GtkTreeModelFilter *get_filter (GtkTreeView *tree)
+{
+ GtkTreeModel *model = gtk_tree_view_get_model (tree);
+
+ if (GTK_IS_TREE_MODEL_FILTER (model))
+ return GTK_TREE_MODEL_FILTER (model);
+ else
+ {
+ GtkTreeModelFilter *filter = GTK_TREE_MODEL_FILTER
(gtk_tree_model_filter_new (model, NULL));
+ GtkWidget *search_entry = gtkpod_xml_get_widget
(main_window_xml, "search_entry");
+
+ gtk_tree_model_filter_set_visible_func (filter, filter_tracks,
search_entry, NULL);
+ gtk_tree_model_filter_refilter (filter);
+ gtk_tree_view_set_model (tree, GTK_TREE_MODEL (filter));
+
+ return filter;
+ }
+}
+
+G_MODULE_EXPORT void on_search_entry_changed (GtkEditable *editable, gpointer
user_data)
+{
+ gtk_tree_model_filter_refilter (get_filter (track_treeview));
+}
+
/* ---------------------------------------------------------------- */
/* Section for track display */
/* DND -- Drag And Drop */
/* ---------------------------------------------------------------- */
-
/* Move the paths listed in @data before or after (according to @pos)
@path. Used for DND */
static gboolean tm_move_pathlist (gchar *data,
@@ -104,7 +170,7 @@
g_return_val_if_fail (data, FALSE);
g_return_val_if_fail (*data, FALSE);
- model = gtk_tree_view_get_model (track_treeview);
+ model = get_model (track_treeview);
g_return_val_if_fail (model, FALSE);
g_return_val_if_fail (gtk_tree_model_get_iter (model, &to_iter, path),
@@ -420,7 +486,7 @@
{ /* drag is within the same widget */
gint column;
GtkSortType order;
- GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widget));
+ GtkTreeModel *model = get_model(GTK_TREE_VIEW(widget));
g_return_val_if_fail (model, FALSE);
if(gtk_tree_sortable_get_sort_column_id (
GTK_TREE_SORTABLE (model), &column, &order))
@@ -506,7 +572,7 @@
display_remove_autoscroll_row_timeout (widget);
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget));
+ model = get_model (GTK_TREE_VIEW (widget));
g_return_if_fail (model);
if (!gtk_tree_view_get_dest_row_at_pos (GTK_TREE_VIEW (widget),
x, y, &path, &pos))
@@ -624,7 +690,7 @@
void tm_add_track_to_track_model (Track *track, GtkTreeIter *into_iter)
{
GtkTreeIter iter;
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
g_return_if_fail (model != NULL);
@@ -667,7 +733,7 @@
/* Remove track from the display model */
void tm_remove_track (Track *track)
{
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
if (model != NULL)
gtk_tree_model_foreach (model, tm_delete_track, track);
}
@@ -676,7 +742,7 @@
/* Remove all tracks from the display model */
void tm_remove_all_tracks ()
{
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
GtkTreeIter iter;
while (gtk_tree_model_get_iter_first (model, &iter))
@@ -740,7 +806,7 @@
iTunesDB is read and some IDs are renumbered */
void tm_track_changed (Track *track)
{
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
/* printf("tm_track_changed enter\n");*/
if (model != NULL)
gtk_tree_model_foreach (model, tm_model_track_changed, track);
@@ -1252,7 +1318,7 @@
gint result = 0;
GtkTreeModel *tm = NULL;
- tm = gtk_tree_view_get_model (GTK_TREE_VIEW(track_treeview));
+ tm = get_model (GTK_TREE_VIEW(track_treeview));
if (tm)
{
result = gtk_tree_model_iter_n_children (tm, NULL);
@@ -1290,7 +1356,7 @@
gboolean changed = FALSE;
iTunesDB *itdb = NULL;
- tm = gtk_tree_view_get_model (track_treeview);
+ tm = get_model (track_treeview);
g_return_if_fail (tm);
valid = gtk_tree_model_get_iter_first (tm,&i);
@@ -1407,7 +1473,7 @@
GList *result = NULL;
GtkTreeModel *model;
- if((model = gtk_tree_view_get_model (track_treeview)))
+ if((model = get_model (track_treeview)))
{
gtk_tree_model_foreach(model, on_all_trackids_list_foreach,
&result);
@@ -1463,7 +1529,7 @@
tm_get_all_tracks(void)
{
GList *result = NULL;
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
g_return_val_if_fail (model, NULL);
@@ -1790,7 +1856,7 @@
{
if (track_treeview)
{
- GtkTreeModel *model= gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model= get_model (track_treeview);
prefs_set_int("tm_sort", SORT_NONE);
if (!BROKEN_GTK_TREE_SORT)
@@ -1966,7 +2032,7 @@
{
if (track_treeview)
{
- GtkTreeModel *model= gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model= get_model (track_treeview);
if (order != SORT_NONE)
{
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
@@ -1996,7 +2062,7 @@
/* Adds the columns to our track_treeview */
static GtkTreeViewColumn *tm_add_column (TM_item tm_item, gint pos)
{
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
GtkTreeViewColumn *col = NULL;
const gchar *text;
GtkCellRenderer *renderer = NULL; /* default */
@@ -2254,7 +2320,7 @@
/* create tree view */
if (track_treeview)
{ /* delete old tree view */
- model = gtk_tree_view_get_model (track_treeview);
+ model = get_model (track_treeview);
/* FIXME: how to delete model? */
gtk_widget_destroy (GTK_WIDGET (track_treeview));
}
@@ -2444,7 +2510,7 @@
if (prefs_get_int("tm_sort") != SORT_NONE)
{
/* Re-enable sorting */
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
if (BROKEN_GTK_TREE_SORT)
{
gtk_tree_sortable_set_sort_func (
@@ -2469,7 +2535,7 @@
if (prefs_get_int("tm_sort") != SORT_NONE)
{
/* Disable sorting */
- GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
+ GtkTreeModel *model = get_model (track_treeview);
if (BROKEN_GTK_TREE_SORT)
{
gtk_tree_sortable_set_sort_func (
@@ -2499,7 +2565,7 @@
GtkTreeModel *model;
GtkTreeIter new_iter;
- model = gtk_tree_view_get_model (track_treeview);
+ model = get_model (track_treeview);
/* printf("plitem: %p\n", plitem);
if (plitem) printf("plitem->type: %d\n", plitem->type);*/
@@ -2543,7 +2609,7 @@
g_return_val_if_fail (*data, FALSE);
g_return_val_if_fail (current_playlist, FALSE);
- model = gtk_tree_view_get_model (track_treeview);
+ model = get_model (track_treeview);
g_return_val_if_fail (model, FALSE);
if (path)
{
Modified: gtkpod/trunk/src/help.c
===================================================================
--- gtkpod/trunk/src/help.c 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/src/help.c 2008-01-03 14:38:30 UTC (rev 1908)
@@ -139,8 +139,11 @@
GdkPixbuf *icon = gdk_pixbuf_new_from_file(PACKAGE_DATA_DIR
G_DIR_SEPARATOR_S PACKAGE G_DIR_SEPARATOR_S "data" G_DIR_SEPARATOR_S
"gtkpod-logo.png", NULL);
#ifdef LIBGPOD_VERSION
- gchar *description = g_strdup_printf (_("Cross-platform multilingual
interface to Apple's iPod™\n"
-
"(using libgpod %s)"), LIBGPOD_VERSION);
+ gchar *version = g_strdup_printf (_("(using libgpod %s)"),
LIBGPOD_VERSION);
+ gchar *description = g_strdup_printf ("%s\n%s", _("Cross-platform
multilingual interface to Apple's iPod™"),
+
version);
+
+ g_free (version);
#else
gchar *description = _("Cross-platform multilingual interface to
Apple's iPod™");
#endif
Modified: gtkpod/trunk/src/misc.c
===================================================================
--- gtkpod/trunk/src/misc.c 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/src/misc.c 2008-01-03 14:38:30 UTC (rev 1908)
@@ -61,7 +61,61 @@
* *
\*------------------------------------------------------------------*/
+/* Copied g_utf8_strcasestr from GtkSourceView */
+gchar *utf8_strcasestr (const gchar *haystack, const gchar *needle)
+{
+ gsize needle_len;
+ gsize haystack_len;
+ gchar *ret = NULL;
+ gchar *p;
+ gchar *casefold;
+ gchar *caseless_haystack;
+ gint i;
+ g_return_val_if_fail (haystack != NULL, NULL);
+ g_return_val_if_fail (needle != NULL, NULL);
+
+ casefold = g_utf8_casefold (haystack, -1);
+ caseless_haystack = g_utf8_normalize (casefold, -1, G_NORMALIZE_ALL);
+ g_free (casefold);
+
+ needle_len = g_utf8_strlen (needle, -1);
+ haystack_len = g_utf8_strlen (caseless_haystack, -1);
+
+ if (needle_len == 0)
+ {
+ ret = (gchar *)haystack;
+ goto finally_1;
+ }
+
+ if (haystack_len < needle_len)
+ {
+ ret = NULL;
+ goto finally_1;
+ }
+
+ p = (gchar*)caseless_haystack;
+ needle_len = strlen (needle);
+ i = 0;
+
+ while (*p)
+ {
+ if ((strncmp (p, needle, needle_len) == 0))
+ {
+ ret = g_utf8_offset_to_pointer (haystack, i);
+ goto finally_1;
+ }
+
+ p = g_utf8_next_char (p);
+ i++;
+ }
+
+finally_1:
+ g_free (caseless_haystack);
+
+ return ret;
+}
+
/* Calculate the time in ms passed since @old_time. @old_time is
updated with the current time if @update is TRUE*/
float get_ms_since (GTimeVal *old_time, gboolean update)
Modified: gtkpod/trunk/src/misc.h
===================================================================
--- gtkpod/trunk/src/misc.h 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/src/misc.h 2008-01-03 14:38:30 UTC (rev 1908)
@@ -75,25 +75,8 @@
/* Some symbols not necessarily defined */
-/* Introduced in 2.6 */
-#ifndef GTK_STOCK_DISCONNECT
-#define GTK_STOCK_DISCONNECT GTK_STOCK_GOTO_TOP
-#define GTK_STOCK_CONNECT GTK_STOCK_GOTO_BOTTOM
-#endif
-#ifndef GTK_STOCK_EDIT
-#define GTK_STOCK_EDIT NULL
-#endif
-#ifndef G_IS_DIR_SEPARATOR
-#define G_IS_DIR_SEPARATOR(c) (c == G_DIR_SEPARATOR)
-#endif
-/* SEMIBOLD was introduced with version 2.8 */
-#ifndef PANGO_WEIGHT_SEMIBOLD
-#define PANGO_WEIGHT_SEMIBOLD 600
-#endif
+gchar *utf8_strcasestr (const gchar *haystack, const gchar *needle);
-
-
-
gchar *get_user_string (gchar *title, gchar *message, gchar *dflt,
gchar *opt_msg, gboolean *opt_state, const gchar
*accept_button);
Playlist *add_new_pl_user_name (iTunesDB *itdb, gchar *dflt, gint32 pos);
Modified: gtkpod/trunk/src/prefs.c
===================================================================
--- gtkpod/trunk/src/prefs.c 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/src/prefs.c 2008-01-03 14:38:30 UTC (rev 1908)
@@ -251,8 +251,8 @@
prefs_set_int("mpl_autoselect", TRUE);
/* Set window sizes */
- prefs_set_int("size_gtkpod.x", 600);
- prefs_set_int("size_gtkpod.y", 500);
+ prefs_set_int("size_gtkpod.x", 780);
+ prefs_set_int("size_gtkpod.y", 580);
prefs_set_int("size_cal.x", 500);
prefs_set_int("size_cal.y", 300);
prefs_set_int("size_conf_sw.x", 300);
Modified: gtkpod/trunk/src/stock_icons.c
===================================================================
--- gtkpod/trunk/src/stock_icons.c 2008-01-03 10:21:48 UTC (rev 1907)
+++ gtkpod/trunk/src/stock_icons.c 2008-01-03 14:38:30 UTC (rev 1908)
@@ -105,7 +105,6 @@
if (!path)
path = g_build_filename (PACKAGE_DATA_DIR, PACKAGE, "icons",
NULL);
- printf ("Path: %s\n", path);
gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (), path);
g_free (path);
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