Mercurial > audlegacy
comparison src/audacious/ui_playlist.c @ 2640:66e128528d54 trunk
[svn] improve save/load playlist UI:
- Load/Save List dialog remembers last used directory for playlist.
- centering some error dialogs.
author | yaz |
---|---|
date | Thu, 22 Mar 2007 00:38:29 -0700 |
parents | 517d13842fe7 |
children | c06b07b17fb5 |
comparison
equal
deleted
inserted
replaced
2639:ed67025aeea5 | 2640:66e128528d54 |
---|---|
775 GTK_MESSAGE_ERROR, | 775 GTK_MESSAGE_ERROR, |
776 GTK_BUTTONS_OK, | 776 GTK_BUTTONS_OK, |
777 _("Error writing playlist \"%s\": %s"), | 777 _("Error writing playlist \"%s\": %s"), |
778 filename, strerror(errno)); | 778 filename, strerror(errno)); |
779 | 779 |
780 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); /* centering */ | |
780 gtk_dialog_run(GTK_DIALOG(dialog)); | 781 gtk_dialog_run(GTK_DIALOG(dialog)); |
781 gtk_widget_destroy(dialog); | 782 gtk_widget_destroy(dialog); |
782 } | 783 } |
783 | 784 |
784 static gboolean | 785 static gboolean |
823 GTK_DIALOG_DESTROY_WITH_PARENT, | 824 GTK_DIALOG_DESTROY_WITH_PARENT, |
824 GTK_MESSAGE_ERROR, | 825 GTK_MESSAGE_ERROR, |
825 GTK_BUTTONS_OK, | 826 GTK_BUTTONS_OK, |
826 _(markup), | 827 _(markup), |
827 filename); | 828 filename); |
829 | |
830 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); /* centering */ | |
828 gtk_dialog_run(GTK_DIALOG(dialog)); | 831 gtk_dialog_run(GTK_DIALOG(dialog)); |
829 gtk_widget_destroy(dialog); | 832 gtk_widget_destroy(dialog); |
830 } | 833 } |
831 | 834 |
832 static void | 835 static void |
856 { | 859 { |
857 Playlist *playlist = playlist_get_active(); | 860 Playlist *playlist = playlist_get_active(); |
858 | 861 |
859 g_return_if_fail(filename != NULL); | 862 g_return_if_fail(filename != NULL); |
860 | 863 |
861 str_replace_in(&cfg.playlist_path, g_strdup(filename)); | 864 str_replace_in(&cfg.playlist_path, g_path_get_dirname(filename)); |
862 | 865 |
863 playlist_clear(playlist); | 866 playlist_clear(playlist); |
864 mainwin_clear_song_info(); | 867 mainwin_clear_song_info(); |
865 mainwin_set_info_text(); | 868 mainwin_set_info_text(); |
866 | 869 |
876 gchar *filename; | 879 gchar *filename; |
877 | 880 |
878 g_return_val_if_fail(title != NULL, NULL); | 881 g_return_val_if_fail(title != NULL, NULL); |
879 | 882 |
880 dialog = make_filebrowser(title, FALSE); | 883 dialog = make_filebrowser(title, FALSE); |
884 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), cfg.playlist_path); | |
881 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), default_filename); | 885 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), default_filename); |
886 gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); /* centering */ | |
882 | 887 |
883 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) | 888 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) |
884 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); | 889 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); |
885 else | 890 else |
886 filename = NULL; | 891 filename = NULL; |
893 on_static_toggle(GtkToggleButton *button, gpointer data) | 898 on_static_toggle(GtkToggleButton *button, gpointer data) |
894 { | 899 { |
895 Playlist *playlist = playlist_get_active(); | 900 Playlist *playlist = playlist_get_active(); |
896 | 901 |
897 playlist->attribute = | 902 playlist->attribute = |
898 gtk_toggle_button_get_active(button) & PLAYLIST_STATIC ? PLAYLIST_STATIC : PLAYLIST_PLAIN; | 903 gtk_toggle_button_get_active(button) ? |
899 g_print("static_toggle: e: attribute = %d\n", playlist->attribute); | 904 playlist->attribute | PLAYLIST_STATIC : |
900 } | 905 playlist->attribute & ~PLAYLIST_STATIC; |
901 | 906 } |
902 | 907 |
903 static gchar * | 908 static gchar * |
904 playlist_file_selection_save(const gchar * title, | 909 playlist_file_selection_save(const gchar * title, |
905 const gchar * default_filename) | 910 const gchar * default_filename) |
906 { | 911 { |
909 GtkWidget *toggle; | 914 GtkWidget *toggle; |
910 | 915 |
911 g_return_val_if_fail(title != NULL, NULL); | 916 g_return_val_if_fail(title != NULL, NULL); |
912 | 917 |
913 dialog = make_filebrowser(title, TRUE); | 918 dialog = make_filebrowser(title, TRUE); |
919 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), cfg.playlist_path); | |
914 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), default_filename); | 920 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), default_filename); |
915 | 921 |
916 /* static playlist */ | 922 /* static playlist */ |
917 toggle = gtk_check_button_new_with_label("Save as a Static Playlist"); | 923 toggle = gtk_check_button_new_with_label("Save as Static Playlist"); |
918 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), | 924 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), |
919 (playlist_get_active()->attribute & PLAYLIST_STATIC) ? TRUE : FALSE); | 925 (playlist_get_active()->attribute & PLAYLIST_STATIC) ? TRUE : FALSE); |
920 gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(dialog), toggle); | 926 gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(dialog), toggle); |
921 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(on_static_toggle), dialog); | 927 g_signal_connect(G_OBJECT(toggle), "toggled", G_CALLBACK(on_static_toggle), dialog); |
922 | 928 |