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