annotate audacious/ui_fileinfo.c @ 2092:79b077f6234b trunk

[svn] - update to new API
author nenolod
date Mon, 11 Dec 2006 04:53:05 -0800
parents 25308f10b50f
children f18a5b617c34
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
1 /*
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
2 * Audacious: A cross-platform multimedia player
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
3 * Copyright (c) 2006 William Pitcock, Tony Vroon, George Averill,
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
4 * Giacomo Lozito, Derek Pomery and Yoshiki Yazawa.
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
5 *
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
6 * This program is free software; you can redistribute it and/or modify
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
9 * (at your option) any later version.
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
10 *
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
11 * This program is distributed in the hope that it will be useful,
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
14 * GNU General Public License for more details.
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
15 *
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
17 * along with this program; if not, write to the Free Software
1956
fb61da4f4c23 [svn] - remove unused declaration "filepopup_pixbuf".
nenolod
parents: 1889
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
fb61da4f4c23 [svn] - remove unused declaration "filepopup_pixbuf".
nenolod
parents: 1889
diff changeset
19 * 02110-1301, USA.
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
20 */
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
21
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
22 #ifdef HAVE_CONFIG_H
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
23 # include "config.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
24 #endif
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
25
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
26 #include <glib.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
27 #include <glib/gi18n.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
28 #include <gtk/gtk.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
29 #include <glade/glade.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
30 #include <string.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
31 #include <stddef.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
32 #include <stdio.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
33 #include <sys/types.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
34 #include <dirent.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
35 #include <unistd.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
36 #include <errno.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
37 #include <sys/types.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
38 #include <sys/stat.h>
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
39
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
40 #include "glade.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
41
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
42 #include "plugin.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
43 #include "pluginenum.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
44 #include "input.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
45 #include "effect.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
46 #include "general.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
47 #include "output.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
48 #include "visualization.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
49
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
50 #include "main.h"
2073
25308f10b50f [svn] - fix urldecode dependencies
nenolod
parents: 2055
diff changeset
51 #include "libaudacious/urldecode.h"
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
52 #include "util.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
53 #include "dnd.h"
1755
3434eb44b304 [svn] - version bump to 1.2.0-rc2
nenolod
parents: 1710
diff changeset
54 #include "titlestring.h"
3434eb44b304 [svn] - version bump to 1.2.0-rc2
nenolod
parents: 1710
diff changeset
55
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
56 #include "libaudacious/configdb.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
57
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
58 #include "playlist.h"
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
59
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
60 #include "mainwin.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
61 #include "ui_playlist.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
62 #include "skinwin.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
63 #include "build_stamp.h"
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
64 #include "ui_fileinfo.h"
1284
13d5b542f4fd [svn] - kludge
nenolod
parents: 1283
diff changeset
65 #include "ui_playlist.h"
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
66
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
67 GtkWidget *fileinfo_win;
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
68 GtkWidget *filepopup_win;
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
69
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
70 static void
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
71 fileinfo_entry_set_text(const char *entry, const char *text)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
72 {
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
73 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml");
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
74 GtkWidget *widget = glade_xml_get_widget(xml, entry);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
75
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
76 if (xml == NULL || widget == NULL)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
77 return;
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
78
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
79 gtk_entry_set_text(GTK_ENTRY(widget), text);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
80 }
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
81
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
82 static void
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
83 fileinfo_entry_set_text_free(const char *entry, char *text)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
84 {
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
85 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml");
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
86 GtkWidget *widget = glade_xml_get_widget(xml, entry);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
87
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
88 if (xml == NULL || widget == NULL)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
89 return;
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
90
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
91 gtk_entry_set_text(GTK_ENTRY(widget), text);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
92
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
93 g_free(text);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
94 }
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
95
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
96 static void
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
97 fileinfo_entry_set_image(const char *entry, const char *text)
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
98 {
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
99 GladeXML *xml = g_object_get_data(G_OBJECT(fileinfo_win), "glade-xml");
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
100 GtkWidget *widget = glade_xml_get_widget(xml, entry);
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
101 GdkPixbuf *pixbuf;
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
102 int width, height;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
103 double aspect;
2055
8feb3d69b5be [svn] - cleanups from oliver@freebsd.org
nenolod
parents: 2006
diff changeset
104 GdkPixbuf *pixbuf2;
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
105
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
106 if (xml == NULL || widget == NULL)
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
107 return;
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
108
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
109 pixbuf = gdk_pixbuf_new_from_file(text, NULL);
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
110
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
111 if (pixbuf == NULL)
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
112 return;
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
113
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
114 width = gdk_pixbuf_get_width(GDK_PIXBUF(pixbuf));
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
115 height = gdk_pixbuf_get_height(GDK_PIXBUF(pixbuf));
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
116
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
117 if(strcmp(DATA_DIR "/images/audio.png", text))
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
118 {
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
119 if(width == 0)
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
120 width = 1;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
121 aspect = (double)height / (double)width;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
122 if(aspect > 1.0) {
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
123 height = (int)(cfg.filepopup_pixelsize * aspect);
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
124 width = cfg.filepopup_pixelsize;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
125 } else {
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
126 height = cfg.filepopup_pixelsize;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
127 width = (int)(cfg.filepopup_pixelsize / aspect);
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
128 }
2055
8feb3d69b5be [svn] - cleanups from oliver@freebsd.org
nenolod
parents: 2006
diff changeset
129 pixbuf2 = gdk_pixbuf_scale_simple(GDK_PIXBUF(pixbuf), width, height, GDK_INTERP_BILINEAR);
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
130 g_object_unref(G_OBJECT(pixbuf));
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
131 pixbuf = pixbuf2;
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
132 }
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
133
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
134 gtk_image_set_from_pixbuf(GTK_IMAGE(widget), GDK_PIXBUF(pixbuf));
1326
41b498d5ae4b [svn] - avoid a memory leak with images
nenolod
parents: 1314
diff changeset
135 g_object_unref(G_OBJECT(pixbuf));
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
136 }
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
137
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
138 static void
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
139 filepopup_entry_set_text(const char *entry, const char *text)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
140 {
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
141 GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml");
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
142 GtkWidget *widget = glade_xml_get_widget(xml, entry);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
143
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
144 if (xml == NULL || widget == NULL)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
145 return;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
146
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
147 gtk_label_set_text(GTK_LABEL(widget), text);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
148 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
149
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
150 static void
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
151 filepopup_entry_set_image(const char *entry, const char *text)
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
152 {
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
153 GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml");
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
154 GtkWidget *widget = glade_xml_get_widget(xml, entry);
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
155 GdkPixbuf *pixbuf;
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
156 int width, height;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
157 double aspect;
2055
8feb3d69b5be [svn] - cleanups from oliver@freebsd.org
nenolod
parents: 2006
diff changeset
158 GdkPixbuf *pixbuf2;
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
159
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
160 if (xml == NULL || widget == NULL)
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
161 return;
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
162
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
163 pixbuf = gdk_pixbuf_new_from_file(text, NULL);
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
164
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
165 if (pixbuf == NULL)
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
166 return;
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
167
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
168 width = gdk_pixbuf_get_width(GDK_PIXBUF(pixbuf));
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
169 height = gdk_pixbuf_get_height(GDK_PIXBUF(pixbuf));
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
170
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
171 if(strcmp(DATA_DIR "/images/audio.png", text))
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
172 {
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
173 if(width == 0)
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
174 width = 1;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
175 aspect = (double)height / (double)width;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
176 if(aspect > 1.0) {
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
177 height = (int)(cfg.filepopup_pixelsize * aspect);
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
178 width = cfg.filepopup_pixelsize;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
179 } else {
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
180 height = cfg.filepopup_pixelsize;
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
181 width = (int)(cfg.filepopup_pixelsize / aspect);
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
182 }
2055
8feb3d69b5be [svn] - cleanups from oliver@freebsd.org
nenolod
parents: 2006
diff changeset
183 pixbuf2 = gdk_pixbuf_scale_simple(GDK_PIXBUF(pixbuf), width, height, GDK_INTERP_BILINEAR);
1299
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
184 g_object_unref(G_OBJECT(pixbuf));
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
185 pixbuf = pixbuf2;
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
186 }
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
187
ead95abdf9bc [svn] - downsize images larger than 150px
nenolod
parents: 1298
diff changeset
188 gtk_image_set_from_pixbuf(GTK_IMAGE(widget), GDK_PIXBUF(pixbuf));
1326
41b498d5ae4b [svn] - avoid a memory leak with images
nenolod
parents: 1314
diff changeset
189 g_object_unref(G_OBJECT(pixbuf));
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
190 }
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
191
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
192 static void
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
193 filepopup_entry_set_text_free(const char *entry, char *text)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
194 {
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
195 GladeXML *xml = g_object_get_data(G_OBJECT(filepopup_win), "glade-xml");
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
196 GtkWidget *widget = glade_xml_get_widget(xml, entry);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
197
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
198 if (xml == NULL || widget == NULL)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
199 return;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
200
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
201 gtk_label_set_text(GTK_LABEL(widget), text);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
202
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
203 g_free(text);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
204 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
205
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
206 static gboolean
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
207 filepopup_pointer_check_iter(gpointer unused)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
208 {
1312
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
209 gint x, y, pos;
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
210 TitleInput *tuple;
1605
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
211 static gint prev_x = 0, prev_y = 0, ctr = 0, prev_pos = -1;
1775
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
212 static gint shaded_pos = -1, shaded_prev_pos = -1;
1300
a5c4e748d557 [svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents: 1299
diff changeset
213 gboolean skip = FALSE;
1605
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
214 GdkWindow *win;
2092
79b077f6234b [svn] - update to new API
nenolod
parents: 2073
diff changeset
215 Playlist *playlist = playlist_get_active();
1605
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
216
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
217 win = gdk_window_at_pointer(NULL, NULL);
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
218 gdk_window_get_pointer(GDK_WINDOW(playlistwin->window), &x, &y, NULL);
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
219 pos = playlist_list_get_playlist_position(playlistwin_list, x, y);
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
220
1605
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
221 if (win == NULL
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
222 || cfg.show_filepopup_for_tuple == FALSE
1401
3bc53d7f9012 [svn] - now filepopup_pointer_check_iter() returns immediately if cfg.show_filepopup_for_tuple is FALSE.
yaz
parents: 1389
diff changeset
223 || playlistwin_list->pl_tooltips == FALSE
1605
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
224 || pos != prev_pos
1775
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
225 || win != GDK_WINDOW(playlistwin->window))
1284
13d5b542f4fd [svn] - kludge
nenolod
parents: 1283
diff changeset
226 {
1605
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
227 prev_pos = pos;
1284
13d5b542f4fd [svn] - kludge
nenolod
parents: 1283
diff changeset
228 ctr = 0;
1389
c19443be579d [svn] ensure that the fileinfo popup in playlist disappears when the cursor is moved again
giacomo
parents: 1371
diff changeset
229 if ( filepopup_win->window != NULL &&
c19443be579d [svn] ensure that the fileinfo popup in playlist disappears when the cursor is moved again
giacomo
parents: 1371
diff changeset
230 gdk_window_is_viewable(GDK_WINDOW(filepopup_win->window)) )
c19443be579d [svn] ensure that the fileinfo popup in playlist disappears when the cursor is moved again
giacomo
parents: 1371
diff changeset
231 filepopup_hide(NULL);
1284
13d5b542f4fd [svn] - kludge
nenolod
parents: 1283
diff changeset
232 return TRUE;
13d5b542f4fd [svn] - kludge
nenolod
parents: 1283
diff changeset
233 }
13d5b542f4fd [svn] - kludge
nenolod
parents: 1283
diff changeset
234
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
235 if (prev_x == x && prev_y == y)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
236 ctr++;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
237 else
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
238 {
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
239 ctr = 0;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
240 prev_x = x;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
241 prev_y = y;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
242 filepopup_hide(NULL);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
243 return TRUE;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
244 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
245
1300
a5c4e748d557 [svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents: 1299
diff changeset
246 if (filepopup_win->window == NULL)
a5c4e748d557 [svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents: 1299
diff changeset
247 skip = TRUE;
a5c4e748d557 [svn] - don't call filepopup_show_for_tuple() more than once
nenolod
parents: 1299
diff changeset
248
1775
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
249 if (playlistwin_is_shaded()) {
2092
79b077f6234b [svn] - update to new API
nenolod
parents: 2073
diff changeset
250 shaded_pos = playlist_get_position(playlist);
1775
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
251 if (shaded_prev_pos != shaded_pos)
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
252 skip = TRUE;
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
253 }
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
254
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
255 if (ctr >= cfg.filepopup_delay && (skip == TRUE || gdk_window_is_viewable(GDK_WINDOW(filepopup_win->window)) != TRUE)) {
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
256 if (pos == -1 && !playlistwin_is_shaded()) {
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
257 filepopup_hide(NULL);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
258 return TRUE;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
259 }
1775
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
260 else { /* shaded mode */
2092
79b077f6234b [svn] - update to new API
nenolod
parents: 2073
diff changeset
261 tuple = playlist_get_tuple(playlist, shaded_pos);
1775
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
262 filepopup_hide(NULL);
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
263 filepopup_show_for_tuple(tuple);
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
264 shaded_prev_pos = shaded_pos;
7d32dff734da [svn] improvement of shaded playlist window
yaz
parents: 1755
diff changeset
265 }
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
266
1605
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
267 prev_pos = pos;
ce3ce44d6814 [svn] - filepopup follows change of pointed song, i.e. it will hide while scrolling.
yaz
parents: 1588
diff changeset
268
2092
79b077f6234b [svn] - update to new API
nenolod
parents: 2073
diff changeset
269 tuple = playlist_get_tuple(playlist, pos);
1401
3bc53d7f9012 [svn] - now filepopup_pointer_check_iter() returns immediately if cfg.show_filepopup_for_tuple is FALSE.
yaz
parents: 1389
diff changeset
270 filepopup_show_for_tuple(tuple);
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
271 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
272
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
273 return TRUE;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
274 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
275
1267
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
276 void fileinfo_hide(gpointer unused)
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
277 {
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
278 gtk_widget_hide(fileinfo_win);
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
279
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
280 /* Clear it out. */
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
281 fileinfo_entry_set_text("entry_title", "");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
282 fileinfo_entry_set_text("entry_artist", "");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
283 fileinfo_entry_set_text("entry_album", "");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
284 fileinfo_entry_set_text("entry_comment", "");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
285 fileinfo_entry_set_text("entry_genre", "");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
286 fileinfo_entry_set_text("entry_year", "");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
287 fileinfo_entry_set_text("entry_track", "");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
288 fileinfo_entry_set_text("entry_location", "");
1307
63d30ae1db33 [svn] - reset the album art back to the default icon
nenolod
parents: 1306
diff changeset
289
63d30ae1db33 [svn] - reset the album art back to the default icon
nenolod
parents: 1306
diff changeset
290 fileinfo_entry_set_image("image_artwork", DATA_DIR "/images/audio.png");
1267
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
291 }
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
292
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
293 void filepopup_hide(gpointer unused)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
294 {
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
295 gtk_widget_hide(filepopup_win);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
296
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
297 filepopup_entry_set_text("label_title", "");
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
298 filepopup_entry_set_text("label_artist", "");
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
299 filepopup_entry_set_text("label_album", "");
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
300 filepopup_entry_set_text("label_genre", "");
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
301 filepopup_entry_set_text("label_track", "");
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
302 filepopup_entry_set_text("label_year", "");
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
303 filepopup_entry_set_text("label_length", "");
1297
f2e1a954237f [svn] - la la la, resize
nenolod
parents: 1296
diff changeset
304
1307
63d30ae1db33 [svn] - reset the album art back to the default icon
nenolod
parents: 1306
diff changeset
305
1297
f2e1a954237f [svn] - la la la, resize
nenolod
parents: 1296
diff changeset
306 gtk_window_resize(GTK_WINDOW(filepopup_win), 1, 1);
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
307 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
308
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
309 void
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
310 create_fileinfo_window(void)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
311 {
1263
ccf616f86fb4 [svn] some minor tweaks
nenolod
parents: 1262
diff changeset
312 const gchar *glade_file = DATA_DIR "/glade/fileinfo.glade";
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
313 GladeXML *xml;
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
314 GtkWidget *widget;
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
315
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
316 xml = glade_xml_new_or_die(_("Track Information Window"), glade_file, NULL, NULL);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
317
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
318 glade_xml_signal_autoconnect(xml);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
319
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
320 fileinfo_win = glade_xml_get_widget(xml, "fileinfo_win");
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
321 g_object_set_data(G_OBJECT(fileinfo_win), "glade-xml", xml);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
322 gtk_window_set_transient_for(GTK_WINDOW(fileinfo_win), GTK_WINDOW(mainwin));
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
323
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
324 widget = glade_xml_get_widget(xml, "image_artwork");
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
325 gtk_image_set_from_file(GTK_IMAGE(widget), DATA_DIR "/images/audio.png");
1267
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
326
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
327 widget = glade_xml_get_widget(xml, "btn_close");
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
328 g_signal_connect(G_OBJECT(widget), "clicked", (GCallback) fileinfo_hide, NULL);
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
329 }
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
330
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
331 void
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
332 create_filepopup_window(void)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
333 {
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
334 const gchar *glade_file = DATA_DIR "/glade/fileinfo_popup.glade";
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
335 GladeXML *xml;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
336 GtkWidget *widget;
1287
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
337
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
338 xml = glade_xml_new_or_die(_("Track Information Popup"), glade_file, NULL, NULL);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
339
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
340 glade_xml_signal_autoconnect(xml);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
341
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
342 filepopup_win = glade_xml_get_widget(xml, "win_pl_popup");
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
343 g_object_set_data(G_OBJECT(filepopup_win), "glade-xml", xml);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
344 gtk_window_set_transient_for(GTK_WINDOW(filepopup_win), GTK_WINDOW(mainwin));
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
345
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
346 widget = glade_xml_get_widget(xml, "image_artwork");
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
347 gtk_image_set_from_file(GTK_IMAGE(widget), DATA_DIR "/images/audio.png");
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
348
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
349 g_timeout_add(50, filepopup_pointer_check_iter, NULL);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
350 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
351
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
352 void
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
353 fileinfo_show_for_tuple(TitleInput *tuple)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
354 {
1402
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
355 gchar *tmp = NULL;
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
356
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
357 if (tuple == NULL)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
358 return;
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
359
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
360 gtk_widget_realize(fileinfo_win);
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
361
1864
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
362 if (tuple->track_name)
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
363 fileinfo_entry_set_text("entry_title", tuple->track_name);
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
364 if (tuple->performer)
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
365 fileinfo_entry_set_text("entry_artist", tuple->performer);
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
366 if (tuple->album_name)
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
367 fileinfo_entry_set_text("entry_album", tuple->album_name);
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
368 if (tuple->comment)
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
369 fileinfo_entry_set_text("entry_comment", tuple->comment);
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
370 if (tuple->genre)
0f39dea9f26e [svn] - some fixes via alxorlov on the forums
nenolod
parents: 1775
diff changeset
371 fileinfo_entry_set_text("entry_genre", tuple->genre);
1402
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
372
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
373 tmp = g_strdup_printf("%s/%s", tuple->file_path, tuple->file_name);
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
374 if(tmp){
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
375 fileinfo_entry_set_text_free("entry_location", str_to_utf8(tmp));
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
376 g_free(tmp);
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
377 tmp = NULL;
1abfc389ecc6 [svn] fileinfo_show_for_tuple() sometimes causes "Invalid UTF-8 string"
yaz
parents: 1401
diff changeset
378 }
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
379
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
380 if (tuple->year != 0)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
381 fileinfo_entry_set_text_free("entry_year", g_strdup_printf("%d", tuple->year));
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
382
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
383 if (tuple->track_number != 0)
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
384 fileinfo_entry_set_text_free("entry_track", g_strdup_printf("%d", tuple->track_number));
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
385
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
386 tmp = fileinfo_recursive_get_image(tuple->file_path, tuple->file_name, 0);
1371
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
387
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
388 if(tmp)
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
389 {
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
390 fileinfo_entry_set_image("image_artwork", tmp);
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
391 g_free(tmp);
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
392 }
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
393
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
394 gtk_widget_show(fileinfo_win);
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
395 }
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
396
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
397 static gboolean
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
398 has_front_cover_extension(const gchar *name)
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
399 {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
400 char *ext;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
401
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
402 ext = strrchr(name, '.');
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
403 if (!ext) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
404 /* No file extension */
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
405 return FALSE;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
406 }
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
407
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
408 return g_strcasecmp(ext, ".jpg") == 0 ||
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
409 g_strcasecmp(ext, ".jpeg") == 0 ||
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
410 g_strcasecmp(ext, ".png") == 0;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
411 }
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
412
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
413 static gboolean
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
414 cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_empty)
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
415 {
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
416 gboolean result = FALSE;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
417 gchar **splitted;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
418 gchar *current;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
419 gchar *lname;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
420 gint i;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
421
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
422 if (!filter || strlen(filter) == 0) {
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
423 return ret_on_empty;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
424 }
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
425
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
426 splitted = g_strsplit(filter, ",", 0);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
427
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
428 lname = g_strdup(name);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
429 g_strdown(lname);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
430
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
431 for (i = 0; !result && (current = splitted[i]); i++) {
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
432 gchar *stripped = g_strstrip(g_strdup(current));
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
433 g_strdown(stripped);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
434
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
435 result = result || strstr(lname, stripped);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
436
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
437 g_free(stripped);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
438 }
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
439
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
440 g_free(lname);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
441 g_strfreev(splitted);
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
442
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
443 return result;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
444 }
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
445
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
446 /* Check wether it's an image we want */
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
447 static gboolean
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
448 is_front_cover_image(const gchar *imgfile)
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
449 {
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
450 return cover_name_filter(imgfile, cfg.cover_name_include, TRUE) &&
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
451 !cover_name_filter(imgfile, cfg.cover_name_exclude, FALSE);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
452 }
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
453
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
454 static gboolean
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
455 is_file_image(const gchar *imgfile, const gchar *file_name)
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
456 {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
457 char *imgfile_ext, *file_name_ext;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
458 size_t imgfile_len, file_name_len;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
459 gboolean matches;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
460
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
461 imgfile_ext = strrchr(imgfile, '.');
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
462 if (!imgfile_ext) {
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
463 /* No file extension */
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
464 return FALSE;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
465 }
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
466
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
467 file_name_ext = strrchr(file_name, '.');
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
468 if (!file_name_ext) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
469 /* No file extension */
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
470 return FALSE;
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
471 }
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
472
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
473 imgfile_len = (imgfile_ext - imgfile);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
474 file_name_len = (file_name_ext - file_name);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
475
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
476 if (imgfile_len == file_name_len) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
477 return (g_ascii_strncasecmp(imgfile, file_name, imgfile_len) == 0);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
478 } else {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
479 return FALSE;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
480 }
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
481 }
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
482
1371
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
483 gchar*
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
484 fileinfo_recursive_get_image(const gchar* path,
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
485 const gchar* file_name, gint depth)
1371
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
486 {
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
487 GDir *d;
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
488
1429
a360afd8df52 [svn] Make annoying recursion that consistently returns wrong art, optional.
nemo
parents: 1413
diff changeset
489 if (cfg.recurse_for_cover && depth > cfg.recurse_for_cover_depth)
1371
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
490 return NULL;
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
491
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
492 d = g_dir_open(path, 0, NULL);
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
493
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
494 if (d) {
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
495 const gchar *f;
1413
878c7f8d0a8c [svn] - filepopup albumart stuff, via hansmi
nenolod
parents: 1402
diff changeset
496
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
497 if (cfg.use_file_cover && file_name) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
498 /* Look for images matching file name */
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
499 while(f = g_dir_read_name(d)) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
500 gchar *newpath = g_strconcat(path, "/", f, NULL);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
501
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
502 if (!g_file_test(newpath, G_FILE_TEST_IS_DIR) &&
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
503 has_front_cover_extension(f) &&
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
504 is_file_image(f, file_name)) {
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
505 g_dir_close(d);
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
506 return newpath;
1371
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
507 }
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
508
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
509 g_free(newpath);
1306
d44e5df149dc [svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents: 1304
diff changeset
510 }
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
511 g_dir_rewind(d);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
512 }
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
513
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
514 /* Search for files using filter */
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
515 while (f = g_dir_read_name(d)) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
516 gchar *newpath = g_strconcat(path, "/", f, NULL);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
517
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
518 if (!g_file_test(newpath, G_FILE_TEST_IS_DIR) &&
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
519 has_front_cover_extension(f) &&
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
520 is_front_cover_image(f)) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
521 g_dir_close(d);
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
522 return newpath;
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
523 }
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
524
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
525 g_free(newpath);
1303
a9aba74678fc [svn] - nemo's patch applied to fileinfo
nenolod
parents: 1302
diff changeset
526 }
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
527 g_dir_rewind(d);
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
528
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
529 /* checks whether recursive or not. */
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
530 if (!cfg.recurse_for_cover) {
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
531 g_dir_close(d);
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
532 return NULL;
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
533 }
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
534
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
535 /* Descend into directories recursively. */
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
536 while (f = g_dir_read_name(d)) {
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
537 gchar *newpath = g_strconcat(path, "/", f, NULL);
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
538
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
539 if(g_file_test(newpath, G_FILE_TEST_IS_DIR)) {
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
540 gchar *tmp = fileinfo_recursive_get_image(newpath,
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
541 NULL, depth + 1);
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
542 if(tmp) {
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
543 g_free(newpath);
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
544 g_dir_close(d);
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
545 return tmp;
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
546 }
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
547 }
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
548
1666
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
549 g_free(newpath);
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
550 }
77baac5f7439 [svn] - make fileinfo_recursive_get_image() breadth first search.
yaz
parents: 1611
diff changeset
551
1306
d44e5df149dc [svn] - not sure what all of that cur_dir stuff was, but I think somebody was smoking crack
nenolod
parents: 1304
diff changeset
552 g_dir_close(d);
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
553 }
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
554
1371
ca4f3115d33c [svn] - recursively locate album art, by external contributor Oliver Lumpton.
nenolod
parents: 1358
diff changeset
555 return NULL;
1262
186f774fa30b [svn] - ui_fileinfo goodness (not hooked up yet)
nenolod
parents:
diff changeset
556 }
1267
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
557
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
558 void
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
559 filepopup_show_for_tuple(TitleInput *tuple)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
560 {
2006
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
561 gchar *tmp = NULL;
1312
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
562 gint x, y, x_off = 3, y_off = 3, h, w;
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
563
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
564 static gchar *last_artwork = NULL;
2006
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
565 const static char default_artwork[] = DATA_DIR "/images/audio.png";
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
566
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
567 if (tuple == NULL)
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
568 return;
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
569
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
570 gtk_widget_realize(filepopup_win);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
571
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
572 filepopup_entry_set_text("label_title", tuple->track_name);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
573 filepopup_entry_set_text("label_artist", tuple->performer);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
574 filepopup_entry_set_text("label_album", tuple->album_name);
1287
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
575 filepopup_entry_set_text("label_genre", tuple->genre);
1309
816ea8bbde1c [svn] - if tuple->length == -1 then don't show a length
nenolod
parents: 1307
diff changeset
576
816ea8bbde1c [svn] - if tuple->length == -1 then don't show a length
nenolod
parents: 1307
diff changeset
577 if (tuple->length != -1)
816ea8bbde1c [svn] - if tuple->length == -1 then don't show a length
nenolod
parents: 1307
diff changeset
578 filepopup_entry_set_text_free("label_length", g_strdup_printf("%d:%02d", tuple->length / 60000, (tuple->length / 1000) % 60));
1287
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
579
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
580 if (tuple->year != 0)
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
581 filepopup_entry_set_text_free("label_year", g_strdup_printf("%d", tuple->year));
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
582
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
583 if (tuple->track_number != 0)
e778f43a74fb [svn] - make tuples more verbose (they might be a bit big though)
nenolod
parents: 1286
diff changeset
584 filepopup_entry_set_text_free("label_track", g_strdup_printf("%d", tuple->track_number));
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
585
2006
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
586 tmp = fileinfo_recursive_get_image(tuple->file_path, tuple->file_name, 0);
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
587 if (tmp) { // picture found
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
588 if (!last_artwork || strcmp(last_artwork, tmp)) { // new picture
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
589 filepopup_entry_set_image("image_artwork", tmp);
1964
f027afc2ca2e [svn] - avoid freeing a NULL pointer in ui_fileinfo.c
nenolod
parents: 1960
diff changeset
590 g_free(last_artwork);
2006
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
591 last_artwork = tmp;
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
592 }
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
593 else { // same picture
1710
43ae2a1bfdee [svn] improvement of filepopup:
yaz
parents: 1666
diff changeset
594 }
1296
b7d8e6e77ba6 [svn] - initial album art support
nenolod
parents: 1292
diff changeset
595 }
2006
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
596 else { // no picture found
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
597 if (!last_artwork || strcmp(last_artwork, default_artwork)) {
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
598 filepopup_entry_set_image("image_artwork", default_artwork);
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
599 g_free(last_artwork);
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
600 last_artwork = g_strdup(default_artwork);
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
601 }
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
602 else {
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
603 }
beaeb1990cb4 [svn] - now filepopup can find newly added images immediately.
yaz
parents: 1964
diff changeset
604 }
1889
597bd579d9af [svn] Patch by Michael Hanselmann to fetch a per-song image file.
nemo
parents: 1864
diff changeset
605
1312
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
606 gdk_window_get_pointer(NULL, &x, &y, NULL);
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
607 gtk_window_get_size(GTK_WINDOW(filepopup_win), &w, &h);
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
608 if (gdk_screen_width()-(w+3) < x) x_off = (w*-1)-3;
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
609 if (gdk_screen_height()-(h+3) < y) y_off = (h*-1)-3;
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
610 gtk_window_move(GTK_WINDOW(filepopup_win), x + x_off, y + y_off);
f7244db08f40 [svn] - solve the blink issue
nenolod
parents: 1309
diff changeset
611
1283
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
612 gtk_widget_show(filepopup_win);
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
613 }
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
614
19b1d3f22e10 [svn] - when hovering over a playlist tuple, describe the tuple via a tooltip-like popup
nenolod
parents: 1270
diff changeset
615 void
1269
681b629322c4 [svn] - hook up fileinfo box stuff
nenolod
parents: 1268
diff changeset
616 fileinfo_show_for_path(gchar *path)
1267
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
617 {
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
618 TitleInput *tuple = input_get_song_tuple(path);
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
619
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
620 if (tuple == NULL)
1268
97fd96ee4b84 [svn] - generic info box support
nenolod
parents: 1267
diff changeset
621 return input_file_info_box(path);
1267
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
622
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
623 fileinfo_show_for_tuple(tuple);
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
624
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
625 bmp_title_input_free(tuple);
1588
15d92c51bde6 [svn] - modified time (mtime) has been introduced into tuple
yaz
parents: 1541
diff changeset
626 tuple = NULL;
1267
d5361c48bb18 [svn] - more fun
nenolod
parents: 1263
diff changeset
627 }