summaryrefslogtreecommitdiff
path: root/plugins/gtkui/plcommon.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gtkui/plcommon.c')
-rw-r--r--plugins/gtkui/plcommon.c42
1 files changed, 29 insertions, 13 deletions
diff --git a/plugins/gtkui/plcommon.c b/plugins/gtkui/plcommon.c
index 748bd90b..3a00503c 100644
--- a/plugins/gtkui/plcommon.c
+++ b/plugins/gtkui/plcommon.c
@@ -30,6 +30,7 @@
#include "interface.h"
#include "parser.h"
#include "actions.h"
+#include "search.h"
#define min(x,y) ((x)<(y)?(x):(y))
//#define trace(...) { fprintf(stderr, __VA_ARGS__); }
@@ -189,20 +190,20 @@ void draw_column_data (DdbListview *listview, cairo_t *cr, DdbListviewIter it, D
}
}
float fg[3] = {(float)color->red/0xffff, (float)color->green/0xffff, (float)color->blue/0xffff};
- draw_set_fg_color (fg);
+ draw_set_fg_color (&listview->listctx, fg);
- draw_init_font (gtk_widget_get_style (GTK_WIDGET (listview)));
+ draw_init_font (&listview->listctx, gtk_widget_get_style (GTK_WIDGET (listview)));
if (gtkui_embolden_current_track && it && it == playing_track) {
- draw_init_font_bold ();
+ draw_init_font_bold (&listview->listctx);
}
if (calign_right) {
- draw_text (x+5, y + 3, cwidth-10, 1, text);
+ draw_text (&listview->listctx, x+5, y + 3, cwidth-10, 1, text);
}
else {
- draw_text (x + 5, y + 3, cwidth-10, 0, text);
+ draw_text (&listview->listctx, x + 5, y + 3, cwidth-10, 0, text);
}
if (gtkui_embolden_current_track && it && it == playing_track) {
- draw_init_font_normal ();
+ draw_init_font_normal (&listview->listctx);
}
}
if (playing_track) {
@@ -224,7 +225,8 @@ main_add_to_playback_queue_activate (GtkMenuItem *menuitem,
deadbeef->pl_item_unref (it);
it = next;
}
- playlist_refresh ();
+ main_refresh ();
+ search_redraw ();
}
void
@@ -242,7 +244,8 @@ main_remove_from_playback_queue_activate
deadbeef->pl_item_unref (it);
it = next;
}
- playlist_refresh ();
+ main_refresh ();
+ search_redraw ();
}
void
@@ -253,8 +256,16 @@ main_reload_metadata_activate
DdbListview *ps = DDB_LISTVIEW (g_object_get_data (G_OBJECT (menuitem), "ps"));
DB_playItem_t *it = deadbeef->pl_get_first (PL_MAIN);
while (it) {
- const char *decoder_id = deadbeef->pl_find_meta (it, ":DECODER");
- if (deadbeef->pl_is_selected (it) && deadbeef->is_local_file (deadbeef->pl_find_meta (it, ":URI")) && decoder_id) {
+ deadbeef->pl_lock ();
+ char decoder_id[100];
+ const char *dec = deadbeef->pl_find_meta (it, ":DECODER");
+ if (dec) {
+ strncpy (decoder_id, dec, sizeof (decoder_id));
+ }
+ int match = deadbeef->pl_is_selected (it) && deadbeef->is_local_file (deadbeef->pl_find_meta (it, ":URI")) && dec;
+ deadbeef->pl_unlock ();
+
+ if (match) {
uint32_t f = deadbeef->pl_get_item_flags (it);
if (!(f & DDB_IS_SUBTRACK)) {
f &= ~DDB_TAG_MASK;
@@ -274,7 +285,8 @@ main_reload_metadata_activate
deadbeef->pl_item_unref (it);
it = next;
}
- playlist_refresh ();
+ main_refresh ();
+ search_redraw ();
trkproperties_fill_metadata ();
}
@@ -344,8 +356,9 @@ on_remove_from_disk_activate (GtkMenuItem *menuitem,
DB_playItem_t *it = deadbeef->pl_get_first (PL_MAIN);
while (it) {
- if (deadbeef->pl_is_selected (it) && deadbeef->is_local_file (deadbeef->pl_find_meta (it, ":URI"))) {
- unlink (deadbeef->pl_find_meta (it, ":URI"));
+ const char *uri = deadbeef->pl_find_meta (it, ":URI");
+ if (deadbeef->pl_is_selected (it) && deadbeef->is_local_file (uri)) {
+ unlink (uri);
}
DB_playItem_t *next = deadbeef->pl_get_next (it, PL_MAIN);
deadbeef->pl_item_unref (it);
@@ -848,11 +861,13 @@ init_column (col_info_t *inf, int id, const char *format) {
}
}
+int editcolumn_title_changed = 0;
void
on_add_column_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
+ editcolumn_title_changed = 0;
GtkWidget *dlg = create_editcolumndlg ();
gtk_dialog_set_default_response (GTK_DIALOG (dlg), GTK_RESPONSE_OK);
gtk_window_set_title (GTK_WINDOW (dlg), _("Add column"));
@@ -899,6 +914,7 @@ on_edit_column_activate (GtkMenuItem *menuitem,
}
gtk_entry_set_text (GTK_ENTRY (lookup_widget (dlg, "title")), title);
+ editcolumn_title_changed = 0;
int idx = 10;
if (inf->id == -1) {
if (inf->format) {