diff options
author | waker <wakeroid@gmail.com> | 2011-01-04 21:51:40 +0100 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2011-01-04 21:51:40 +0100 |
commit | 8d3c2eb27ed0d8766e83ee0eaf081076e684e360 (patch) | |
tree | 8112d9786bc4051fdfaf7a479b40c25933b543fe /plugins/gtkui | |
parent | 5091c47c79e83cff01b9c964ed91bcb26cc7d302 (diff) |
added new GUI option to auto-name playlists from folder names
Diffstat (limited to 'plugins/gtkui')
-rw-r--r-- | plugins/gtkui/callbacks.h | 5 | ||||
-rw-r--r-- | plugins/gtkui/deadbeef.glade | 24 | ||||
-rw-r--r-- | plugins/gtkui/fileman.c | 21 | ||||
-rw-r--r-- | plugins/gtkui/interface.c | 9 | ||||
-rw-r--r-- | plugins/gtkui/prefwin.c | 13 |
5 files changed, 68 insertions, 4 deletions
diff --git a/plugins/gtkui/callbacks.h b/plugins/gtkui/callbacks.h index 7462abd2..5693dcbe 100644 --- a/plugins/gtkui/callbacks.h +++ b/plugins/gtkui/callbacks.h @@ -1041,3 +1041,8 @@ on_dsp_up_clicked (GtkButton *button, void on_dsp_down_clicked (GtkButton *button, gpointer user_data); + +void +on_auto_name_playlist_from_folder_toggled + (GtkToggleButton *togglebutton, + gpointer user_data); diff --git a/plugins/gtkui/deadbeef.glade b/plugins/gtkui/deadbeef.glade index 2ac6580a..71cb56b4 100644 --- a/plugins/gtkui/deadbeef.glade +++ b/plugins/gtkui/deadbeef.glade @@ -2952,6 +2952,26 @@ Album</property> </child> <child> + <widget class="GtkCheckButton" id="auto_name_playlist_from_folder"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Auto-name playlists when adding a single folder</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_auto_name_playlist_from_folder_toggled" last_modification_time="Tue, 04 Jan 2011 20:49:15 GMT"/> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> <widget class="GtkHBox" id="hbox64"> <property name="visible">True</property> <property name="homogeneous">False</property> @@ -3066,10 +3086,6 @@ Album</property> <property name="fill">False</property> </packing> </child> - - <child> - <placeholder/> - </child> </widget> <packing> <property name="tab_expand">False</property> diff --git a/plugins/gtkui/fileman.c b/plugins/gtkui/fileman.c index a41f6000..874ffb2c 100644 --- a/plugins/gtkui/fileman.c +++ b/plugins/gtkui/fileman.c @@ -2,6 +2,7 @@ #include <gtk/gtk.h> #include <stdlib.h> #include <ctype.h> +#include <string.h> #include "gtkui.h" #include "ddblistview.h" #include "progress.h" @@ -23,6 +24,25 @@ gtkpl_adddir_cb (gpointer data, gpointer userdata) { void gtkpl_add_dirs (GSList *lst) { + if (g_slist_length (lst) == 1 + && deadbeef->conf_get_int ("gtkui.name_playlist_from_folder", 0)) { + deadbeef->plt_lock (); + int plt = deadbeef->plt_get_curr (); + if (plt != -1) { + char t[1000]; + if (!deadbeef->plt_get_title (plt, t, sizeof (t))) { + char *def = _("New Playlist"); + if (!strncmp (t, def, strlen (def))) { + const char *folder = strrchr ((char*)lst->data, '/'); + if (!folder) { + folder = lst->data; + } + deadbeef->plt_set_title (plt, folder+1); + } + } + } + deadbeef->plt_unlock (); + } g_idle_add (gtkui_progress_show_idle, NULL); g_slist_foreach(lst, gtkpl_adddir_cb, NULL); g_slist_free (lst); @@ -82,6 +102,7 @@ void gtkui_open_files (struct _GSList *lst) { deadbeef->pl_clear (); playlist_refresh (); + intptr_t tid = deadbeef->thread_start (open_files_worker, lst); deadbeef->thread_detach (tid); } diff --git a/plugins/gtkui/interface.c b/plugins/gtkui/interface.c index f30221d2..c811718d 100644 --- a/plugins/gtkui/interface.c +++ b/plugins/gtkui/interface.c @@ -1637,6 +1637,7 @@ create_prefwin (void) GtkWidget *hide_tray_icon; GtkWidget *embolden_current; GtkWidget *hide_delete_from_disk; + GtkWidget *auto_name_playlist_from_folder; GtkWidget *hbox64; GtkWidget *label101; GtkWidget *titlebar_format_playing; @@ -1941,6 +1942,10 @@ create_prefwin (void) gtk_widget_show (hide_delete_from_disk); gtk_box_pack_start (GTK_BOX (vbox9), hide_delete_from_disk, FALSE, FALSE, 0); + auto_name_playlist_from_folder = gtk_check_button_new_with_mnemonic (_("Auto-name playlists when adding a single folder")); + gtk_widget_show (auto_name_playlist_from_folder); + gtk_box_pack_start (GTK_BOX (vbox9), auto_name_playlist_from_folder, FALSE, FALSE, 0); + hbox64 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox64); gtk_box_pack_start (GTK_BOX (vbox9), hbox64, FALSE, FALSE, 0); @@ -2626,6 +2631,9 @@ create_prefwin (void) g_signal_connect ((gpointer) hide_delete_from_disk, "toggled", G_CALLBACK (on_hide_delete_from_disk_toggled), NULL); + g_signal_connect ((gpointer) auto_name_playlist_from_folder, "toggled", + G_CALLBACK (on_auto_name_playlist_from_folder_toggled), + NULL); g_signal_connect ((gpointer) titlebar_format_playing, "changed", G_CALLBACK (on_titlebar_format_playing_changed), NULL); @@ -2790,6 +2798,7 @@ create_prefwin (void) GLADE_HOOKUP_OBJECT (prefwin, hide_tray_icon, "hide_tray_icon"); GLADE_HOOKUP_OBJECT (prefwin, embolden_current, "embolden_current"); GLADE_HOOKUP_OBJECT (prefwin, hide_delete_from_disk, "hide_delete_from_disk"); + GLADE_HOOKUP_OBJECT (prefwin, auto_name_playlist_from_folder, "auto_name_playlist_from_folder"); GLADE_HOOKUP_OBJECT (prefwin, hbox64, "hbox64"); GLADE_HOOKUP_OBJECT (prefwin, label101, "label101"); GLADE_HOOKUP_OBJECT (prefwin, titlebar_format_playing, "titlebar_format_playing"); diff --git a/plugins/gtkui/prefwin.c b/plugins/gtkui/prefwin.c index 978019aa..b27af570 100644 --- a/plugins/gtkui/prefwin.c +++ b/plugins/gtkui/prefwin.c @@ -506,6 +506,9 @@ on_preferences_activate (GtkMenuItem *menuitem, // hide_delete_from_disk gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (w, "hide_delete_from_disk")), deadbeef->conf_get_int ("gtkui.hide_remove_from_disk", 0)); + // auto-rename playlist from folder name + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (w, "auto_name_playlist_from_folder")), deadbeef->conf_get_int ("gtkui.name_playlist_from_folder", 0)); + // titlebar text gtk_entry_set_text (GTK_ENTRY (lookup_widget (w, "titlebar_format_playing")), deadbeef->conf_get_str ("gtkui.titlebar_playing", "%a - %t - DeaDBeeF-%V")); gtk_entry_set_text (GTK_ENTRY (lookup_widget (w, "titlebar_format_stopped")), deadbeef->conf_get_str ("gtkui.titlebar_stopped", "DeaDBeeF-%V")); @@ -1314,3 +1317,13 @@ on_resume_last_session_toggled (GtkToggleButton *togglebutton, deadbeef->conf_set_int ("resume_last_session", active); } + +void +on_auto_name_playlist_from_folder_toggled + (GtkToggleButton *togglebutton, + gpointer user_data) +{ + int active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (togglebutton)); + deadbeef->conf_set_int ("gtkui.name_playlist_from_folder", active); +} + |