summaryrefslogtreecommitdiff
path: root/components/music/nautilus-music-view.c
diff options
context:
space:
mode:
authorAndy Hertzfeld <andy@src.gnome.org>2000-10-19 06:58:21 +0000
committerAndy Hertzfeld <andy@src.gnome.org>2000-10-19 06:58:21 +0000
commit9cec510318023b068cfbd14d3f8488da9a2fc24b (patch)
tree64ea4d298db845c9d9bbc0486f8dafcf811af852 /components/music/nautilus-music-view.c
parent370f9df5a2f4b59cbf15aa7076798c3a2e3fe1dd (diff)
downloadnautilus-9cec510318023b068cfbd14d3f8488da9a2fc24b.tar.gz
completed bug 2261, setting images for album covers, by making the set
* components/music/nautilus-music-view.c: (nautilus_music_view_initialize), (set_album_cover), (image_button_callback), (nautilus_music_view_set_album_image): completed bug 2261, setting images for album covers, by making the set album cover button the proper size, and leaving it visible even when there's a cover so you can change it after setting it.
Diffstat (limited to 'components/music/nautilus-music-view.c')
-rw-r--r--components/music/nautilus-music-view.c38
1 files changed, 22 insertions, 16 deletions
diff --git a/components/music/nautilus-music-view.c b/components/music/nautilus-music-view.c
index 9cb4d29c3..26356e7f2 100644
--- a/components/music/nautilus-music-view.c
+++ b/components/music/nautilus-music-view.c
@@ -41,6 +41,7 @@
#include <libnautilus/libnautilus.h>
#include <libnautilus-extensions/nautilus-background.h>
#include <libnautilus-extensions/nautilus-directory-background.h>
+#include <libnautilus-extensions/nautilus-directory-notify.h>
#include <libnautilus-extensions/nautilus-file-attributes.h>
#include <libnautilus-extensions/nautilus-file-utilities.h>
#include <libnautilus-extensions/nautilus-file.h>
@@ -85,7 +86,7 @@ struct _NautilusMusicViewDetails {
GtkWidget *album_title;
GtkWidget *song_list;
GtkWidget *album_image;
- GtkWidget *set_image_button;
+ GtkWidget *image_box;
GtkWidget *dialog;
GtkWidget *control_box;
@@ -182,7 +183,7 @@ static void nautilus_music_view_set_album_image (NautilusMusicView
static void click_column_callback (GtkCList *clist,
gint column,
NautilusMusicView *music_view);
-static void set_image_button_callback (GtkWidget *widget,
+static void image_button_callback (GtkWidget *widget,
NautilusMusicView *music_view);
static void go_to_next_track (NautilusMusicView *music_view);
static void play_current_file (NautilusMusicView *music_view,
@@ -211,6 +212,7 @@ static void
nautilus_music_view_initialize (NautilusMusicView *music_view)
{
GtkWidget *scrollwindow, *label;
+ GtkWidget *button;
char *titles[] = {_("Track "), _("Title"), _("Artist"), _("Year"), _("Bitrate "), _("Time "), _("Album"), _("Comment"), _("Channels"), _("Sample Rate"),};
music_view->details = g_new0 (NautilusMusicViewDetails, 1);
@@ -300,22 +302,25 @@ nautilus_music_view_initialize (NautilusMusicView *music_view)
click_column_callback, music_view);
/* make an hbox to hold the optional cover and other controls */
- music_view->details->control_box = gtk_hbox_new (FALSE, 4);
+ music_view->details->control_box = gtk_hbox_new (FALSE, 2);
gtk_box_pack_start (GTK_BOX (music_view->details->album_container), music_view->details->control_box, FALSE, FALSE, 2);
gtk_widget_show (music_view->details->control_box);
/* make the "set album button" and show it */
- music_view->details->set_image_button = gtk_button_new ();
- gtk_widget_show (music_view->details->set_image_button);
+ music_view->details->image_box = gtk_vbox_new (0, FALSE);
+ gtk_widget_show (music_view->details->image_box);
+ button = gtk_button_new ();
+ gtk_widget_show (button);
+ gtk_box_pack_end (GTK_BOX (music_view->details->image_box), button, FALSE, FALSE, 2);
+ gtk_widget_set_usize (button, -1, 20);
- /* embed the button in a box to stop it from growing vertically */
label = gtk_label_new (_("Set Cover Image"));
gtk_widget_show (label);
- gtk_container_add (GTK_CONTAINER(music_view->details->set_image_button), label);
- gtk_box_pack_end (GTK_BOX(music_view->details->control_box), music_view->details->set_image_button, FALSE, FALSE, 4);
- gtk_signal_connect (GTK_OBJECT (music_view->details->set_image_button), "clicked",
- set_image_button_callback, music_view);
-
+ gtk_container_add (GTK_CONTAINER(button), label);
+ gtk_box_pack_end (GTK_BOX(music_view->details->control_box), music_view->details->image_box, FALSE, FALSE, 4);
+ gtk_signal_connect (GTK_OBJECT (button), "clicked",
+ image_button_callback, music_view);
+
/* prepare ourselves to receive dropped objects */
gtk_drag_dest_set (GTK_WIDGET (music_view),
GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP,
@@ -481,6 +486,9 @@ set_album_cover (GtkWidget *widget, gpointer *data)
nautilus_music_view_set_album_image (music_view, path_uri);
g_free (path_uri);
+ /* tell the world the file changed */
+ nautilus_file_changed (music_view->details->file);
+
/* destroy the file dialog */
gtk_widget_destroy (music_view->details->dialog);
music_view->details->dialog = NULL;
@@ -499,7 +507,7 @@ dialog_destroy (GtkWidget *widget, gpointer data)
/* handle the set image button by displaying a file selection dialog */
static void
-set_image_button_callback (GtkWidget * widget, NautilusMusicView *music_view)
+image_button_callback (GtkWidget * widget, NautilusMusicView *music_view)
{
if (music_view->details->dialog) {
gtk_widget_show(music_view->details->dialog);
@@ -1380,7 +1388,7 @@ nautilus_music_view_set_album_image (NautilusMusicView *music_view, const char *
pixbuf = gdk_pixbuf_new_from_file(image_path);
if (pixbuf != NULL) {
- scaled_pixbuf = nautilus_gdk_pixbuf_scale_down_to_fit(pixbuf, 128, 128);
+ scaled_pixbuf = nautilus_gdk_pixbuf_scale_down_to_fit(pixbuf, 108, 108);
gdk_pixbuf_unref (pixbuf);
gdk_pixbuf_render_pixmap_and_mask (scaled_pixbuf, &pixmap, &mask, NAUTILUS_STANDARD_ALPHA_THRESHHOLD);
@@ -1388,7 +1396,7 @@ nautilus_music_view_set_album_image (NautilusMusicView *music_view, const char *
if (music_view->details->album_image == NULL) {
music_view->details->album_image = gtk_pixmap_new(pixmap, mask);
- gtk_box_pack_end (GTK_BOX(music_view->details->control_box),
+ gtk_box_pack_start (GTK_BOX(music_view->details->image_box),
music_view->details->album_image, FALSE, FALSE, 2);
} else {
@@ -1396,13 +1404,11 @@ nautilus_music_view_set_album_image (NautilusMusicView *music_view, const char *
}
gtk_widget_show (music_view->details->album_image);
- gtk_widget_hide (music_view->details->set_image_button);
g_free(image_path);
}
} else if (music_view->details->album_image != NULL) {
gtk_widget_hide (music_view->details->album_image);
- gtk_widget_show (music_view->details->set_image_button);
}