summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-05-25 22:27:24 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-05-25 22:27:24 +0200
commit7821e3ac30b13829600250f88e803c5d89c274c9 (patch)
treed79aa5c13e28981aa5a5e8e88765cc4a916b1ee2
parentafd09bfad49e8b5c34aab65a09b8dc5c325c3ac3 (diff)
parented7386e42133dc2251b361b443347cdd2aa6887e (diff)
Merge branch 'master' into i18n
Conflicts: plugins/gtkui/progress.c
-rw-r--r--playlist.c2
-rw-r--r--plugins/flac/flac.c16
-rw-r--r--plugins/gtkui/coverart.c7
-rw-r--r--plugins/gtkui/ddblistview.c30
-rw-r--r--plugins/gtkui/gtkui.c1
-rw-r--r--plugins/gtkui/prefwin.c18
-rw-r--r--plugins/gtkui/progress.c19
-rw-r--r--plugins/gtkui/progress.h3
-rw-r--r--plugins/gtkui/trkproperties.c2
-rw-r--r--plugins/vorbis/vorbis.c2
10 files changed, 63 insertions, 37 deletions
diff --git a/playlist.c b/playlist.c
index c48514c9..360f2f7d 100644
--- a/playlist.c
+++ b/playlist.c
@@ -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);