diff options
author | Andrej Shadura <andrewsh@debian.org> | 2019-02-20 19:35:42 +0100 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-02-20 19:35:42 +0100 |
commit | 1a988068635ca5f8a74c4654098d07f92bc0dcf4 (patch) | |
tree | 04ab5d5c0ffbdc6d60621be489508bf7140c7b34 /src/libaudgui | |
parent | 20b38fea7b2b8e6dd31a62dbc5ec9e4c2888a013 (diff) |
New upstream version 3.10.1
Diffstat (limited to 'src/libaudgui')
-rw-r--r-- | src/libaudgui/eq-preset.cc | 29 | ||||
-rw-r--r-- | src/libaudgui/infowin.cc | 35 |
2 files changed, 34 insertions, 30 deletions
diff --git a/src/libaudgui/eq-preset.cc b/src/libaudgui/eq-preset.cc index a2f1c9d..159fef9 100644 --- a/src/libaudgui/eq-preset.cc +++ b/src/libaudgui/eq-preset.cc @@ -188,6 +188,9 @@ static void revert_changes () static void cleanup_eq_preset_window () { + // also hide the preset browser window + audgui_hide_unique_window (AUDGUI_PRESET_BROWSER_WINDOW); + if (changes_made) { save_list (); @@ -312,22 +315,14 @@ static void merge_presets (const Index<EqualizerPreset> & presets) EXPORT void audgui_import_eq_presets (const Index<EqualizerPreset> & presets) { - if (list) - { - /* import via presets window if it exists */ - audgui_list_delete_rows (list, 0, preset_list.len ()); - merge_presets (presets); - audgui_list_insert_rows (list, 0, preset_list.len ()); + // make sure the presets window is displayed + if (! list) + return; - changes_made = true; - gtk_widget_set_sensitive (revert, true); - } - else - { - /* otherwise import directly to ~/.config/audacious/eq.preset */ - populate_list (); - merge_presets (presets); - save_list (); - preset_list.clear (); - } + audgui_list_delete_rows (list, 0, preset_list.len ()); + merge_presets (presets); + audgui_list_insert_rows (list, 0, preset_list.len ()); + + changes_made = true; + gtk_widget_set_sensitive (revert, true); } diff --git a/src/libaudgui/infowin.cc b/src/libaudgui/infowin.cc index b36c1a6..8f62856 100644 --- a/src/libaudgui/infowin.cc +++ b/src/libaudgui/infowin.cc @@ -141,22 +141,32 @@ static GtkWidget * small_label_new (const char * text) } static void set_entry_str_from_field (GtkWidget * widget, const Tuple & tuple, - Tuple::Field field, bool editable, bool clear) + Tuple::Field field, bool editable, bool clear, bool & changed) { String text = tuple.get_str (field); + if (! text && ! clear) + { + if (gtk_entry_get_text_length ((GtkEntry *) widget) > 0) + changed = true; return; + } gtk_entry_set_text ((GtkEntry *) widget, text ? text : ""); gtk_editable_set_editable ((GtkEditable *) widget, editable); } static void set_entry_int_from_field (GtkWidget * widget, const Tuple & tuple, - Tuple::Field field, bool editable, bool clear) + Tuple::Field field, bool editable, bool clear, bool & changed) { int value = tuple.get_int (field); + if (value <= 0 && ! clear) + { + if (gtk_entry_get_text_length ((GtkEntry *) widget) > 0) + changed = true; return; + } gtk_entry_set_text ((GtkEntry *) widget, (value > 0) ? (const char *) int_to_str (value) : ""); gtk_editable_set_editable ((GtkEditable *) widget, editable); @@ -424,19 +434,20 @@ static void infowin_show (Playlist list, int entry, const String & filename, can_write = writable; bool clear = aud_get_bool ("audgui", "clear_song_fields"); + bool changed = false; - set_entry_str_from_field (widgets.title, tuple, Tuple::Title, writable, clear); - set_entry_str_from_field (widgets.artist, tuple, Tuple::Artist, writable, clear); - set_entry_str_from_field (widgets.album, tuple, Tuple::Album, writable, clear); - set_entry_str_from_field (widgets.album_artist, tuple, Tuple::AlbumArtist, writable, clear); - set_entry_str_from_field (widgets.comment, tuple, Tuple::Comment, writable, clear); + set_entry_str_from_field (widgets.title, tuple, Tuple::Title, writable, clear, changed); + set_entry_str_from_field (widgets.artist, tuple, Tuple::Artist, writable, clear, changed); + set_entry_str_from_field (widgets.album, tuple, Tuple::Album, writable, clear, changed); + set_entry_str_from_field (widgets.album_artist, tuple, Tuple::AlbumArtist, writable, clear, changed); + set_entry_str_from_field (widgets.comment, tuple, Tuple::Comment, writable, clear, changed); set_entry_str_from_field (gtk_bin_get_child ((GtkBin *) widgets.genre), - tuple, Tuple::Genre, writable, clear); + tuple, Tuple::Genre, writable, clear, changed); gtk_label_set_text ((GtkLabel *) widgets.location, uri_to_display (filename)); - set_entry_int_from_field (widgets.year, tuple, Tuple::Year, writable, clear); - set_entry_int_from_field (widgets.track, tuple, Tuple::Track, writable, clear); + set_entry_int_from_field (widgets.year, tuple, Tuple::Year, writable, clear, changed); + set_entry_int_from_field (widgets.track, tuple, Tuple::Track, writable, clear, changed); String codec_values[CODEC_ITEMS]; @@ -455,9 +466,7 @@ static void infowin_show (Playlist list, int entry, const String & filename, infowin_display_image (filename); - /* nothing has been changed yet */ - gtk_widget_set_sensitive (widgets.apply, false); - + gtk_widget_set_sensitive (widgets.apply, changed); gtk_widget_grab_focus (widgets.title); if (! audgui_reshow_unique_window (AUDGUI_INFO_WINDOW)) |