diff options
author | 2010-05-25 22:27:24 +0200 | |
---|---|---|
committer | 2010-05-25 22:27:24 +0200 | |
commit | 7821e3ac30b13829600250f88e803c5d89c274c9 (patch) | |
tree | d79aa5c13e28981aa5a5e8e88765cc4a916b1ee2 | |
parent | afd09bfad49e8b5c34aab65a09b8dc5c325c3ac3 (diff) | |
parent | ed7386e42133dc2251b361b443347cdd2aa6887e (diff) |
Merge branch 'master' into i18n
Conflicts:
plugins/gtkui/progress.c
-rw-r--r-- | playlist.c | 2 | ||||
-rw-r--r-- | plugins/flac/flac.c | 16 | ||||
-rw-r--r-- | plugins/gtkui/coverart.c | 7 | ||||
-rw-r--r-- | plugins/gtkui/ddblistview.c | 30 | ||||
-rw-r--r-- | plugins/gtkui/gtkui.c | 1 | ||||
-rw-r--r-- | plugins/gtkui/prefwin.c | 18 | ||||
-rw-r--r-- | plugins/gtkui/progress.c | 19 | ||||
-rw-r--r-- | plugins/gtkui/progress.h | 3 | ||||
-rw-r--r-- | plugins/gtkui/trkproperties.c | 2 | ||||
-rw-r--r-- | plugins/vorbis/vorbis.c | 2 |
10 files changed, 63 insertions, 37 deletions
@@ -957,7 +957,7 @@ pl_insert_cue_from_buffer (playItem_t *after, playItem_t *origin, const uint8_t // copy metadata from embedded tags playItem_t *first = ins ? ins->next[PL_MAIN] : playlist->head[PL_MAIN]; uint32_t f = pl_get_item_flags (origin); - f |= DDB_TAG_CUESHEET; + f |= DDB_TAG_CUESHEET | DDB_IS_SUBTRACK; if (pl_find_meta (origin, "cuesheet")) { f |= DDB_HAS_EMBEDDED_CUESHEET; } diff --git a/plugins/flac/flac.c b/plugins/flac/flac.c index c841a08f..61e40b16 100644 --- a/plugins/flac/flac.c +++ b/plugins/flac/flac.c @@ -545,10 +545,12 @@ cflac_init_metadata_callback(const FLAC__StreamDecoder *decoder, const FLAC__Str } } deadbeef->pl_add_meta (it, "title", NULL); - uint32_t f = deadbeef->pl_get_item_flags (it); - f &= ~DDB_TAG_MASK; - f |= DDB_TAG_VORBISCOMMENTS; - deadbeef->pl_set_item_flags (it, f); + if (vc->num_comments > 0) { + uint32_t f = deadbeef->pl_get_item_flags (it); + f &= ~DDB_TAG_MASK; + f |= DDB_TAG_VORBISCOMMENTS; + deadbeef->pl_set_item_flags (it, f); + } } } @@ -714,7 +716,6 @@ cflac_insert_fail: int cflac_read_metadata (DB_playItem_t *it) { - deadbeef->pl_delete_all_meta (it); int err = -1; FLAC__Metadata_Chain *chain = NULL; FLAC__Metadata_Iterator *iter = NULL; @@ -736,6 +737,7 @@ cflac_read_metadata (DB_playItem_t *it) { trace ("cflac_read_metadata: FLAC__metadata_iterator_new failed\n"); goto error; } + deadbeef->pl_delete_all_meta (it); FLAC__metadata_iterator_init (iter, chain); do { FLAC__StreamMetadata *data = FLAC__metadata_iterator_get_block (iter); @@ -766,6 +768,10 @@ error: if (chain) { FLAC__metadata_chain_delete (chain); } + if (err != 0) { + deadbeef->pl_delete_all_meta (it); + deadbeef->pl_add_meta (it, "title", NULL); + } return err; } diff --git a/plugins/gtkui/coverart.c b/plugins/gtkui/coverart.c index 778d83f1..d5f34c26 100644 --- a/plugins/gtkui/coverart.c +++ b/plugins/gtkui/coverart.c @@ -145,7 +145,12 @@ loading_thread (void *none) { GError *error; GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_scale (queue->fname, queue->width, queue->width, TRUE, &error); if (!pixbuf) { - pixbuf = gdk_pixbuf_new_from_file (DEFAULT_COVER_PATH, NULL); + unlink (queue->fname); + fprintf (stderr, "gdk_pixbuf_new_from_file_at_scale %s %d failed, error: %s\n", queue->fname, queue->width, error->message); + pixbuf = gdk_pixbuf_new_from_file_at_scale (DEFAULT_COVER_PATH, queue->width, queue->width, TRUE, &error); + if (!pixbuf) { + fprintf (stderr, "gdk_pixbuf_new_from_file_at_scale %s %d failed, error: %s\n", DEFAULT_COVER_PATH, queue->width, error->message); + } } if (!pixbuf) { // make default empty image diff --git a/plugins/gtkui/ddblistview.c b/plugins/gtkui/ddblistview.c index 3ddd3568..0412581b 100644 --- a/plugins/gtkui/ddblistview.c +++ b/plugins/gtkui/ddblistview.c @@ -670,7 +670,19 @@ ddb_listview_list_render (DdbListview *listview, int x, int y, int w, int h) { int filler = grpheight - (listview->grouptitle_height + listview->rowheight * grp->num_items); if (filler > 0) { - gtk_paint_flat_box (treeview->style, listview->backbuf, GTK_STATE_NORMAL, GTK_SHADOW_NONE, NULL, treeview, "cell_even_ruled", x, grp_y - listview->scrollpos + listview->grouptitle_height + listview->rowheight * grp->num_items, w, filler); + int theming = !gtkui_override_listview_colors (); + if (theming) { + gtk_paint_flat_box (treeview->style, listview->backbuf, GTK_STATE_NORMAL, GTK_SHADOW_NONE, NULL, treeview, "cell_even_ruled", x, grp_y - listview->scrollpos + listview->grouptitle_height + listview->rowheight * grp->num_items, w, filler); + } + else { + GdkColor clr; + GdkGC *gc = gdk_gc_new (listview->backbuf); + gdk_gc_set_rgb_fg_color (gc, (gtkui_get_listview_even_row_color (&clr), &clr)); + gdk_draw_rectangle (listview->backbuf, gc, TRUE, x, grp_y - listview->scrollpos + listview->grouptitle_height + listview->rowheight * grp->num_items, w, filler); + g_object_unref (gc); + } + + ddb_listview_list_render_row_foreground (listview, NULL, grp->head, 0, 0, grp->num_items * listview->rowheight, -listview->hscrollpos, grp_y - listview->scrollpos + listview->grouptitle_height + listview->rowheight * grp->num_items, listview->totalwidth, filler); } @@ -1956,15 +1968,15 @@ ddb_listview_list_track_dragdrop (DdbListview *ps, int y) { ps->drag_motion_y = ddb_listview_get_row_pos (ps, sel) - ps->scrollpos; } - draw_begin ((uintptr_t)widget->window); - GtkStyle *style = gtk_widget_get_style (GTK_WIDGET (ps)); - float clr[3] = { style->fg[GTK_STATE_NORMAL].red, style->fg[GTK_STATE_NORMAL].green, style->fg[GTK_STATE_NORMAL].blue }; - draw_set_fg_color (clr); + GdkColor clr; + gtkui_get_listview_cursor_color (&clr); + GdkGC *gc = gdk_gc_new (widget->window); + gdk_gc_set_rgb_fg_color (gc, &clr); + gdk_draw_rectangle (widget->window, gc, TRUE, 0, ps->drag_motion_y-1, widget->allocation.width, 3); + gdk_draw_rectangle (widget->window, gc, TRUE, 0, ps->drag_motion_y-3, 3, 7); + gdk_draw_rectangle (widget->window, gc, TRUE, widget->allocation.width-3, ps->drag_motion_y-3, 3, 7); + g_object_unref (gc); - draw_rect (0, ps->drag_motion_y-1, widget->allocation.width, 3, 1); - draw_rect (0, ps->drag_motion_y-3, 3, 7, 1); - draw_rect (widget->allocation.width-3, ps->drag_motion_y-3, 3, 7, 1); - draw_end (); if (y < 10) { ps->scroll_pointer_y = y; ps->scroll_mode = 1; diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c index 88bc8557..a7f41cbb 100644 --- a/plugins/gtkui/gtkui.c +++ b/plugins/gtkui/gtkui.c @@ -913,6 +913,7 @@ gtkui_thread (void *ctx) { cover_art_free (); eq_window_destroy (); trkproperties_destroy (); + progress_destroy (); gtk_widget_destroy (mainwin); gtk_widget_destroy (searchwin); gdk_threads_leave (); diff --git a/plugins/gtkui/prefwin.c b/plugins/gtkui/prefwin.c index f30d41f5..fc8649e8 100644 --- a/plugins/gtkui/prefwin.c +++ b/plugins/gtkui/prefwin.c @@ -543,6 +543,7 @@ on_preferences_activate (GtkMenuItem *menuitem, gtk_dialog_run (GTK_DIALOG (prefwin)); gtk_widget_destroy (prefwin); + deadbeef->conf_save (); prefwin = NULL; } @@ -677,23 +678,6 @@ on_pref_pluginlist_cursor_changed (GtkTreeView *treeview, gtk_widget_set_sensitive (lookup_widget (prefwin, "configure_plugin"), p->configdialog ? TRUE : FALSE); } -gboolean -on_prefwin_delete_event (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) -{ - prefwin = NULL; - return FALSE; -} - -void -on_pref_close_clicked (GtkButton *button, - gpointer user_data) -{ - gtk_widget_hide (prefwin); - gtk_widget_destroy (prefwin); -} - void on_configure_plugin_clicked (GtkButton *button, gpointer user_data) diff --git a/plugins/gtkui/progress.c b/plugins/gtkui/progress.c index dcf89fbc..d986a162 100644 --- a/plugins/gtkui/progress.c +++ b/plugins/gtkui/progress.c @@ -28,6 +28,7 @@ #include "callbacks.h" #include "support.h" #include "progress.h" +#include "gtkui.h" static GtkWidget *progressdlg; static GtkWidget *progressitem; @@ -35,21 +36,31 @@ static int progress_aborted; void progress_init (void) { - extern GtkWidget *mainwin; progressdlg = create_addprogress (); gtk_window_set_transient_for (GTK_WINDOW (progressdlg), GTK_WINDOW (mainwin)); progressitem = lookup_widget (progressdlg, "progresstitle"); } void +progress_destroy (void) { + if (progressdlg) { + gtk_widget_destroy (progressdlg); + progressdlg = NULL; + } +} + +void progress_settext (const char *text) { gtk_entry_set_text (GTK_ENTRY (progressitem), text); } void progress_show (void) { - extern GtkWidget *mainwin; progress_aborted = 0; + GtkWidget *playlist = lookup_widget (mainwin, "playlist"); + if (playlist) { + gtk_widget_set_sensitive (playlist, FALSE); + } progress_settext (_("Initializing...")); gtk_widget_show_all (progressdlg); gtk_window_present (GTK_WINDOW (progressdlg)); @@ -59,6 +70,10 @@ progress_show (void) { void progress_hide (void) { gtk_widget_hide (progressdlg); + GtkWidget *playlist = lookup_widget (mainwin, "playlist"); + if (playlist) { + gtk_widget_set_sensitive (playlist, TRUE); + } } void diff --git a/plugins/gtkui/progress.h b/plugins/gtkui/progress.h index f4b43da2..49b20248 100644 --- a/plugins/gtkui/progress.h +++ b/plugins/gtkui/progress.h @@ -23,6 +23,9 @@ void progress_init (void); void +progress_destroy (void); + +void progress_show (void); void diff --git a/plugins/gtkui/trkproperties.c b/plugins/gtkui/trkproperties.c index 1439a09b..d122b3cf 100644 --- a/plugins/gtkui/trkproperties.c +++ b/plugins/gtkui/trkproperties.c @@ -223,7 +223,7 @@ show_track_properties_dlg (DB_playItem_t *it) { } } - if (dec && dec->write_metadata/* && deadbeef->conf_get_int ("enable_tag_writing", 0)*/) { + if (dec && dec->write_metadata) { allow_editing = 1; } } diff --git a/plugins/vorbis/vorbis.c b/plugins/vorbis/vorbis.c index a7b95b29..f419633a 100644 --- a/plugins/vorbis/vorbis.c +++ b/plugins/vorbis/vorbis.c @@ -403,7 +403,7 @@ cvorbis_insert (DB_playItem_t *after, const char *fname) { it->filetype = "OggVorbis"; it->tracknum = stream; deadbeef->pl_set_item_duration (it, duration); - if (nstreams > 0) { + if (nstreams > 1) { it->startsample = currentsample; it->endsample = currentsample + totalsamples; deadbeef->pl_set_item_flags (it, DDB_IS_SUBTRACK); |