comparison src/audacious/ui_equalizer.c @ 2514:7934ac463591 trunk

[svn] - removed unused function bmp_menu_translate() - removed playlist_file_selection_browser() and replaced it with make_filebrowser() - modified make_filebrowser() behaviour - adapted equalizer file loading/saving functions to new make_filebrowser()
author mf0102
date Tue, 13 Feb 2007 06:09:50 -0800
parents 204d1bab71f9
children 319b10203d7c
comparison
equal deleted inserted replaced
2513:1e6d2d719876 2514:7934ac463591
973 } 973 }
974 974
975 static void 975 static void
976 equalizerwin_delete_selected_presets(GtkTreeView *view, gchar *filename) 976 equalizerwin_delete_selected_presets(GtkTreeView *view, gchar *filename)
977 { 977 {
978 gchar *text; 978 gchar *text;
979 979
980 GtkTreeSelection *selection = gtk_tree_view_get_selection(view); 980 GtkTreeSelection *selection = gtk_tree_view_get_selection(view);
981 GtkTreeModel *model = gtk_tree_view_get_model(view); 981 GtkTreeModel *model = gtk_tree_view_get_model(view);
982 982
983 /* 983 /*
984 * first we are making a list of the selected rows, then we convert this 984 * first we are making a list of the selected rows, then we convert this
985 * list into a list of GtkTreeRowReferences, so that when you delete an 985 * list into a list of GtkTreeRowReferences, so that when you delete an
986 * item you can still access the other items 986 * item you can still access the other items
987 * finally we iterate through all GtkTreeRowReferences, convert them to 987 * finally we iterate through all GtkTreeRowReferences, convert them to
988 * GtkTreeIters and delete those one after the other 988 * GtkTreeIters and delete those one after the other
989 */ 989 */
990 990
991 GList *list = gtk_tree_selection_get_selected_rows(selection, &model); 991 GList *list = gtk_tree_selection_get_selected_rows(selection, &model);
992 GList *rrefs = NULL; 992 GList *rrefs = NULL;
993 GList *litr; 993 GList *litr;
994 994
995 for (litr = list; litr; litr = litr->next) 995 for (litr = list; litr; litr = litr->next)
996 { 996 {
997 GtkTreePath *path = litr->data; 997 GtkTreePath *path = litr->data;
998 rrefs = g_list_append(rrefs, gtk_tree_row_reference_new(model, path)); 998 rrefs = g_list_append(rrefs, gtk_tree_row_reference_new(model, path));
999 } 999 }
1000 1000
1001 for (litr = rrefs; litr; litr = litr->next) 1001 for (litr = rrefs; litr; litr = litr->next)
1002 { 1002 {
1003 GtkTreeRowReference *ref = litr->data; 1003 GtkTreeRowReference *ref = litr->data;
1004 GtkTreePath *path = gtk_tree_row_reference_get_path(ref); 1004 GtkTreePath *path = gtk_tree_row_reference_get_path(ref);
1005 GtkTreeIter iter; 1005 GtkTreeIter iter;
1006 gtk_tree_model_get_iter(model, &iter, path); 1006 gtk_tree_model_get_iter(model, &iter, path);
1007 1007
1008 gtk_tree_model_get(model, &iter, 0, &text, -1); 1008 gtk_tree_model_get(model, &iter, 0, &text, -1);
1009 1009
1010 if (filename == "eq.preset") 1010 if (filename == "eq.preset")
1011 equalizer_presets = equalizerwin_delete_preset(equalizer_presets, text, filename); 1011 equalizer_presets = equalizerwin_delete_preset(equalizer_presets, text, filename);
1012 else if (filename == "eq.auto_preset") 1012 else if (filename == "eq.auto_preset")
1013 equalizer_auto_presets = equalizerwin_delete_preset(equalizer_auto_presets, text, filename); 1013 equalizer_auto_presets = equalizerwin_delete_preset(equalizer_auto_presets, text, filename);
1014 1014
1015 gtk_list_store_remove(GTK_LIST_STORE(model), &iter); 1015 gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
1016 } 1016 }
1017 } 1017 }
1018 1018
1019 1019
1020 static GList * 1020 static GList *
1021 import_winamp_eqf(VFSFile * file) 1021 import_winamp_eqf(VFSFile * file)
1103 gtk_widget_destroy(equalizerwin_save_window); 1103 gtk_widget_destroy(equalizerwin_save_window);
1104 } 1104 }
1105 1105
1106 static void 1106 static void
1107 equalizerwin_save_select(GtkTreeView *treeview, GtkTreePath *path, 1107 equalizerwin_save_select(GtkTreeView *treeview, GtkTreePath *path,
1108 GtkTreeViewColumn *col, gpointer data) 1108 GtkTreeViewColumn *col, gpointer data)
1109 { 1109 {
1110 gchar *text; 1110 gchar *text;
1111 1111
1112 GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); 1112 GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview);
1113 GtkTreeModel *model; 1113 GtkTreeModel *model;
1114 GtkTreeIter iter; 1114 GtkTreeIter iter;
1115 1115
1116 if (selection) 1116 if (selection)
1117 { 1117 {
1118 if (gtk_tree_selection_get_selected(selection, &model, &iter)) 1118 if (gtk_tree_selection_get_selected(selection, &model, &iter))
1119 { 1119 {
1120 gtk_tree_model_get(model, &iter, 0, &text, -1); 1120 gtk_tree_model_get(model, &iter, 0, &text, -1);
1121 gtk_entry_set_text(GTK_ENTRY(equalizerwin_save_entry), text); 1121 gtk_entry_set_text(GTK_ENTRY(equalizerwin_save_entry), text);
1122 equalizerwin_save_ok(NULL, NULL); 1122 equalizerwin_save_ok(NULL, NULL);
1123 1123
1124 g_free(text); 1124 g_free(text);
1125 } 1125 }
1126 } 1126 }
1127 } 1127 }
1128 1128
1129 static void 1129 static void
1130 equalizerwin_load_ok(GtkWidget *widget, gpointer data) 1130 equalizerwin_load_ok(GtkWidget *widget, gpointer data)
1131 { 1131 {
1132 gchar *text; 1132 gchar *text;
1133 1133
1134 GtkTreeView* view = GTK_TREE_VIEW(data); 1134 GtkTreeView* view = GTK_TREE_VIEW(data);
1135 GtkTreeSelection *selection = gtk_tree_view_get_selection(view); 1135 GtkTreeSelection *selection = gtk_tree_view_get_selection(view);
1136 GtkTreeModel *model; 1136 GtkTreeModel *model;
1137 GtkTreeIter iter; 1137 GtkTreeIter iter;
1138 1138
1139 if (selection) 1139 if (selection)
1140 { 1140 {
1141 if (gtk_tree_selection_get_selected(selection, &model, &iter)) 1141 if (gtk_tree_selection_get_selected(selection, &model, &iter))
1142 { 1142 {
1143 gtk_tree_model_get(model, &iter, 0, &text, -1); 1143 gtk_tree_model_get(model, &iter, 0, &text, -1);
1144 equalizerwin_load_preset(equalizer_presets, text); 1144 equalizerwin_load_preset(equalizer_presets, text);
1145 1145
1146 g_free(text); 1146 g_free(text);
1147 } 1147 }
1148 } 1148 }
1149 gtk_widget_destroy(equalizerwin_load_window); 1149 gtk_widget_destroy(equalizerwin_load_window);
1150 } 1150 }
1151 1151
1152 static void 1152 static void
1153 equalizerwin_load_select(GtkTreeView *treeview, GtkTreePath *path, 1153 equalizerwin_load_select(GtkTreeView *treeview, GtkTreePath *path,
1154 GtkTreeViewColumn *col, gpointer data) 1154 GtkTreeViewColumn *col, gpointer data)
1155 { 1155 {
1156 equalizerwin_load_ok(NULL, treeview); 1156 equalizerwin_load_ok(NULL, treeview);
1157 } 1157 }
1158 1158
1159 static void 1159 static void
1160 equalizerwin_delete_delete(GtkWidget *widget, gpointer data) 1160 equalizerwin_delete_delete(GtkWidget *widget, gpointer data)
1161 { 1161 {
1162 equalizerwin_delete_selected_presets(GTK_TREE_VIEW(data), "eq.preset"); 1162 equalizerwin_delete_selected_presets(GTK_TREE_VIEW(data), "eq.preset");
1163 } 1163 }
1164 1164
1165 static void 1165 static void
1166 equalizerwin_save_auto_ok(GtkWidget *widget, gpointer data) 1166 equalizerwin_save_auto_ok(GtkWidget *widget, gpointer data)
1167 { 1167 {
1175 gtk_widget_destroy(equalizerwin_save_auto_window); 1175 gtk_widget_destroy(equalizerwin_save_auto_window);
1176 } 1176 }
1177 1177
1178 static void 1178 static void
1179 equalizerwin_save_auto_select(GtkTreeView *treeview, GtkTreePath *path, 1179 equalizerwin_save_auto_select(GtkTreeView *treeview, GtkTreePath *path,
1180 GtkTreeViewColumn *col, gpointer data) 1180 GtkTreeViewColumn *col, gpointer data)
1181 { 1181 {
1182 gchar *text; 1182 gchar *text;
1183 1183
1184 GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview); 1184 GtkTreeSelection *selection = gtk_tree_view_get_selection(treeview);
1185 GtkTreeModel *model; 1185 GtkTreeModel *model;
1186 GtkTreeIter iter; 1186 GtkTreeIter iter;
1187 1187
1188 if (selection) 1188 if (selection)
1189 { 1189 {
1190 if (gtk_tree_selection_get_selected(selection, &model, &iter)) 1190 if (gtk_tree_selection_get_selected(selection, &model, &iter))
1191 { 1191 {
1192 gtk_tree_model_get(model, &iter, 0, &text, -1); 1192 gtk_tree_model_get(model, &iter, 0, &text, -1);
1193 gtk_entry_set_text(GTK_ENTRY(equalizerwin_save_auto_entry), text); 1193 gtk_entry_set_text(GTK_ENTRY(equalizerwin_save_auto_entry), text);
1194 equalizerwin_save_auto_ok(NULL, NULL); 1194 equalizerwin_save_auto_ok(NULL, NULL);
1195 1195
1196 g_free(text); 1196 g_free(text);
1197 } 1197 }
1198 } 1198 }
1199 } 1199 }
1200 1200
1201 static void 1201 static void
1202 equalizerwin_load_auto_ok(GtkWidget *widget, gpointer data) 1202 equalizerwin_load_auto_ok(GtkWidget *widget, gpointer data)
1203 { 1203 {
1204 gchar *text; 1204 gchar *text;
1205 1205
1206 GtkTreeView *view = GTK_TREE_VIEW(data); 1206 GtkTreeView *view = GTK_TREE_VIEW(data);
1207 GtkTreeSelection *selection = gtk_tree_view_get_selection(view); 1207 GtkTreeSelection *selection = gtk_tree_view_get_selection(view);
1208 GtkTreeModel *model; 1208 GtkTreeModel *model;
1209 GtkTreeIter iter; 1209 GtkTreeIter iter;
1210 1210
1211 if (selection) 1211 if (selection)
1212 { 1212 {
1213 if (gtk_tree_selection_get_selected(selection, &model, &iter)) 1213 if (gtk_tree_selection_get_selected(selection, &model, &iter))
1214 { 1214 {
1215 gtk_tree_model_get(model, &iter, 0, &text, -1); 1215 gtk_tree_model_get(model, &iter, 0, &text, -1);
1216 equalizerwin_load_preset(equalizer_auto_presets, text); 1216 equalizerwin_load_preset(equalizer_auto_presets, text);
1217 1217
1218 g_free(text); 1218 g_free(text);
1219 } 1219 }
1220 } 1220 }
1221 gtk_widget_destroy(equalizerwin_load_auto_window); 1221 gtk_widget_destroy(equalizerwin_load_auto_window);
1222 } 1222 }
1223 1223
1224 static void 1224 static void
1225 equalizerwin_load_auto_select(GtkTreeView *treeview, GtkTreePath *path, 1225 equalizerwin_load_auto_select(GtkTreeView *treeview, GtkTreePath *path,
1226 GtkTreeViewColumn *col, gpointer data) 1226 GtkTreeViewColumn *col, gpointer data)
1227 { 1227 {
1228 equalizerwin_load_auto_ok(NULL, treeview); 1228 equalizerwin_load_auto_ok(NULL, treeview);
1229 } 1229 }
1230 1230
1231 static void 1231 static void
1232 equalizerwin_delete_auto_delete(GtkWidget *widget, gpointer data) 1232 equalizerwin_delete_auto_delete(GtkWidget *widget, gpointer data)
1233 { 1233 {
1234 equalizerwin_delete_selected_presets(GTK_TREE_VIEW(data), "eq.auto_preset"); 1234 equalizerwin_delete_selected_presets(GTK_TREE_VIEW(data), "eq.auto_preset");
1235 } 1235 }
1236
1237
1238 typedef void (*ResponseHandler)(const gchar *filename);
1239
1240 static void
1241 equalizerwin_file_chooser_on_response(GtkWidget * dialog,
1242 gint response,
1243 gpointer data)
1244 {
1245 GtkFileChooser *file_chooser = GTK_FILE_CHOOSER(dialog);
1246 ResponseHandler handler = (ResponseHandler) data;
1247 gchar *filename;
1248
1249 gtk_widget_hide(dialog);
1250
1251 switch (response)
1252 {
1253 case GTK_RESPONSE_ACCEPT:
1254 filename = gtk_file_chooser_get_filename(file_chooser);
1255 handler(filename);
1256 g_free(filename);
1257 break;
1258
1259 case GTK_RESPONSE_REJECT:
1260 break;
1261 }
1262
1263 gtk_widget_destroy(dialog);
1264 }
1265
1266 1236
1267 1237
1268 static void 1238 static void
1269 load_preset_file(const gchar *filename) 1239 load_preset_file(const gchar *filename)
1270 { 1240 {
1374 const gchar *action_name, 1344 const gchar *action_name,
1375 GCallback action_func, 1345 GCallback action_func,
1376 GCallback select_row_func) 1346 GCallback select_row_func)
1377 { 1347 {
1378 GtkWidget *vbox, *scrolled_window, *bbox, *view; 1348 GtkWidget *vbox, *scrolled_window, *bbox, *view;
1379 GtkWidget *button_cancel, *button_action; 1349 GtkWidget *button_cancel, *button_action;
1380 GList *node; 1350 GList *node;
1381 1351
1382 GtkListStore *store; 1352 GtkListStore *store;
1383 GtkTreeIter iter; 1353 GtkTreeIter iter;
1384 GtkTreeModel *model; 1354 GtkTreeModel *model;
1385 GtkCellRenderer *renderer; 1355 GtkCellRenderer *renderer;
1386 GtkTreeSelection *selection; 1356 GtkTreeSelection *selection;
1387 GtkTreeSortable *sortable; 1357 GtkTreeSortable *sortable;
1388 1358
1389 1359
1390 1360
1391 *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 1361 *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
1392 gtk_window_set_title(GTK_WINDOW(*window), title); 1362 gtk_window_set_title(GTK_WINDOW(*window), title);
1405 scrolled_window = gtk_scrolled_window_new(NULL, NULL); 1375 scrolled_window = gtk_scrolled_window_new(NULL, NULL);
1406 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), 1376 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
1407 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); 1377 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
1408 1378
1409 1379
1410 /* fill the store with the names of all available presets */ 1380 /* fill the store with the names of all available presets */
1411 store = gtk_list_store_new(1, G_TYPE_STRING); 1381 store = gtk_list_store_new(1, G_TYPE_STRING);
1412 for (node = preset_list; node; node = g_list_next(node)) 1382 for (node = preset_list; node; node = g_list_next(node))
1413 { 1383 {
1414 gtk_list_store_append(store, &iter); 1384 gtk_list_store_append(store, &iter);
1415 gtk_list_store_set(store, &iter, 1385 gtk_list_store_set(store, &iter,
1416 0, ((EqualizerPreset*)node->data)->name, 1386 0, ((EqualizerPreset*)node->data)->name,
1417 -1); 1387 -1);
1418 } 1388 }
1419 model = GTK_TREE_MODEL(store); 1389 model = GTK_TREE_MODEL(store);
1420 1390
1421 1391
1422 sortable = GTK_TREE_SORTABLE(store); 1392 sortable = GTK_TREE_SORTABLE(store);
1423 gtk_tree_sortable_set_sort_column_id(sortable, 0, GTK_SORT_ASCENDING); 1393 gtk_tree_sortable_set_sort_column_id(sortable, 0, GTK_SORT_ASCENDING);
1424 1394
1425 1395
1426 view = gtk_tree_view_new(); 1396 view = gtk_tree_view_new();
1427 renderer = gtk_cell_renderer_text_new(); 1397 renderer = gtk_cell_renderer_text_new();
1428 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view), -1, 1398 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(view), -1,
1429 _("Presets"), renderer, 1399 _("Presets"), renderer,
1430 "text", 0, NULL); 1400 "text", 0, NULL);
1431 gtk_tree_view_set_model(GTK_TREE_VIEW(view), model); 1401 gtk_tree_view_set_model(GTK_TREE_VIEW(view), model);
1432 g_object_unref(model); 1402 g_object_unref(model);
1433 1403
1434 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view)); 1404 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
1435 gtk_tree_selection_set_mode(selection, sel_mode); 1405 gtk_tree_selection_set_mode(selection, sel_mode);
1436 1406
1437 1407
1438 1408
1439 1409
1440 gtk_container_add(GTK_CONTAINER(scrolled_window), view); 1410 gtk_container_add(GTK_CONTAINER(scrolled_window), view);
1441 gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0); 1411 gtk_box_pack_start(GTK_BOX(vbox), scrolled_window, TRUE, TRUE, 0);
1442 1412
1443 if (entry) { 1413 if (entry) {
1444 *entry = gtk_entry_new(); 1414 *entry = gtk_entry_new();
1445 g_signal_connect(*entry, "activate", action_func, NULL); 1415 g_signal_connect(*entry, "activate", action_func, NULL);
1459 1429
1460 button_action = gtk_button_new_from_stock(action_name); 1430 button_action = gtk_button_new_from_stock(action_name);
1461 g_signal_connect(button_action, "clicked", G_CALLBACK(action_func), view); 1431 g_signal_connect(button_action, "clicked", G_CALLBACK(action_func), view);
1462 GTK_WIDGET_SET_FLAGS(button_action, GTK_CAN_DEFAULT); 1432 GTK_WIDGET_SET_FLAGS(button_action, GTK_CAN_DEFAULT);
1463 1433
1464 if (select_row_func) 1434 if (select_row_func)
1465 g_signal_connect(view, "row-activated", G_CALLBACK(select_row_func), NULL); 1435 g_signal_connect(view, "row-activated", G_CALLBACK(select_row_func), NULL);
1466 1436
1467 1437
1468 gtk_box_pack_start(GTK_BOX(bbox), button_action, TRUE, TRUE, 0); 1438 gtk_box_pack_start(GTK_BOX(bbox), button_action, TRUE, TRUE, 0);
1469 1439
1470 gtk_widget_grab_default(button_action); 1440 gtk_widget_grab_default(button_action);
1600 1570
1601 void 1571 void
1602 action_equ_load_preset_file(void) 1572 action_equ_load_preset_file(void)
1603 { 1573 {
1604 GtkWidget *dialog; 1574 GtkWidget *dialog;
1575 gchar *filename;
1605 1576
1606 dialog = make_filebrowser(Q_("Load equalizer preset"), FALSE); 1577 dialog = make_filebrowser(Q_("Load equalizer preset"), FALSE);
1607 g_signal_connect(dialog , "response", 1578 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
1608 G_CALLBACK(equalizerwin_file_chooser_on_response), 1579 {
1609 load_preset_file); 1580 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
1581 load_preset_file(filename);
1582 g_free(filename);
1583 }
1584 gtk_widget_destroy(dialog);
1610 } 1585 }
1611 1586
1612 void 1587 void
1613 action_equ_load_preset_eqf(void) 1588 action_equ_load_preset_eqf(void)
1614 { 1589 {
1615 GtkWidget *dialog; 1590 GtkWidget *dialog;
1591 gchar *filename;
1616 1592
1617 dialog = make_filebrowser(Q_("Load equalizer preset"), FALSE); 1593 dialog = make_filebrowser(Q_("Load equalizer preset"), FALSE);
1618 g_signal_connect(dialog, "response", 1594 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
1619 G_CALLBACK(equalizerwin_file_chooser_on_response), 1595 {
1620 load_winamp_file); 1596 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
1597 load_winamp_file(filename);
1598 g_free(filename);
1599 }
1600 gtk_widget_destroy(dialog);
1621 } 1601 }
1622 1602
1623 void 1603 void
1624 action_equ_import_winamp_presets(void) 1604 action_equ_import_winamp_presets(void)
1625 { 1605 {
1626 GtkWidget *dialog; 1606 GtkWidget *dialog;
1607 gchar *filename;
1627 1608
1628 dialog = make_filebrowser(Q_("Load equalizer preset"), FALSE); 1609 dialog = make_filebrowser(Q_("Load equalizer preset"), FALSE);
1629 g_signal_connect(dialog, "response", 1610 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
1630 G_CALLBACK(equalizerwin_file_chooser_on_response), 1611 {
1631 import_winamp_file); 1612 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
1613 import_winamp_file(filename);
1614 g_free(filename);
1615 }
1616 gtk_widget_destroy(dialog);
1632 } 1617 }
1633 1618
1634 void 1619 void
1635 action_equ_save_preset(void) 1620 action_equ_save_preset(void)
1636 { 1621 {
1676 } 1661 }
1677 1662
1678 void 1663 void
1679 action_equ_save_default_preset(void) 1664 action_equ_save_default_preset(void)
1680 { 1665 {
1681 equalizer_presets = equalizerwin_save_preset(equalizer_presets, Q_("Default"), 1666 equalizer_presets =
1682 "eq.preset"); 1667 equalizerwin_save_preset(equalizer_presets, Q_("Default"), "eq.preset");
1683 } 1668 }
1684 1669
1685 void 1670 void
1686 action_equ_save_preset_file(void) 1671 action_equ_save_preset_file(void)
1687 { 1672 {
1688 GtkWidget *dialog; 1673 GtkWidget *dialog;
1674 gchar *filename;
1689 gchar *songname; 1675 gchar *songname;
1690 Playlist *playlist = playlist_get_active(); 1676 Playlist *playlist = playlist_get_active();
1691 1677
1692 dialog = make_filebrowser(Q_("Save equalizer preset"), TRUE); 1678 dialog = make_filebrowser(Q_("Save equalizer preset"), TRUE);
1693 g_signal_connect(dialog, "response", 1679 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
1694 G_CALLBACK(equalizerwin_file_chooser_on_response), 1680 {
1695 save_preset_file); 1681 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
1682 save_preset_file(filename);
1683 g_free(filename);
1684 }
1696 1685
1697 songname = playlist_get_filename(playlist, playlist_get_position(playlist)); 1686 songname = playlist_get_filename(playlist, playlist_get_position(playlist));
1698 if (songname) { 1687 if (songname) {
1699 gchar *eqname = g_strdup_printf("%s.%s", songname, 1688 gchar *eqname = g_strdup_printf("%s.%s", songname,
1700 cfg.eqpreset_extension); 1689 cfg.eqpreset_extension);
1701 g_free(songname); 1690 g_free(songname);
1702 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), 1691 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog),
1703 eqname); 1692 eqname);
1704 g_free(eqname); 1693 g_free(eqname);
1705 } 1694 }
1695
1696 gtk_widget_destroy(dialog);
1706 } 1697 }
1707 1698
1708 void 1699 void
1709 action_equ_save_preset_eqf(void) 1700 action_equ_save_preset_eqf(void)
1710 { 1701 {
1711 GtkWidget *dialog; 1702 GtkWidget *dialog;
1703 gchar *filename;
1712 1704
1713 dialog = make_filebrowser(Q_("Save equalizer preset"), TRUE); 1705 dialog = make_filebrowser(Q_("Save equalizer preset"), TRUE);
1714 g_signal_connect(dialog, "response", 1706 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
1715 G_CALLBACK(equalizerwin_file_chooser_on_response), 1707 {
1716 save_winamp_file); 1708 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
1709 save_winamp_file(filename);
1710 g_free(filename);
1711 }
1712 gtk_widget_destroy(dialog);
1717 } 1713 }
1718 1714
1719 void 1715 void
1720 action_equ_delete_preset(void) 1716 action_equ_delete_preset(void)
1721 { 1717 {