Strawberry Music Player
=======================
ChangeLog

0.7.2:

  BugFixes:
    * Fixed installation directory for translations.
    * Fixed collection sorting for non-ASCII characters.
    * Fixed closing connected devices on exit.

0.7.1:

  Bugfixes:
    * Fixed incorrectly mapped global shortcuts keys "2" and "3".
    * Fixed Last.fm scrobbling to correctly start array notation for parameters at 0 and not 1.
    * Fixed sending trackNumber correctly for Last.fm and Libre.fm scrobbling.
    * Fixed collection search when using special characters in the search query.
    * Fixed reading and saving MP4 lyrics tag.
    * Fixed reading ASF comment tag.
    * Fixed adding playlist songs outside the collection when there are multiple files with the same URL.
    * Fixed the rescan songs option to work with local songs outside of the collection.
    * Fixed problems with editing song metadata in the playlists.
    * Fixed saving and restoring playlist scrollbar position when switching between playlists.
    * Fixed minor issue in cue parser with date and genre.
    * (macOS) Fixed gst-libav plugin issue resulting in MP3 not working.

  Enhancements:
    * Simplified and improved startup behaviour code.
    * Adapted all source code to be compatible with Qt 6, and increased required Qt version to 5.8.
    * Added option to compile with Qt 6 (-DWITH_QT6=ON).
    * Base warning for show in file browser on unique directories to avoid unneeded warning about opening many files.
    * Use album artist instead of artist for album repeat mode when available.
    * Added extra safety for overwriting files for filesystem storages when organizing files.
    * Remove diacritics in FTS search.
    * Improved playlist context menu.
    * Added fatal CMake error for missing protobuf compiler.
    * Added support for parsing radio streams metadata with tilde in title.
    * Added CMake option to install translation files.
    * Increased maximum time step for seeking to 60.
    * (Unix) Added playback actions to desktop file.
    * (macOS) Hide behaviour settings that are unavailable on macOS.
    * (macOS) Fixed compile warnings.
    * (macOS) Added Sparkle integration to notify on new versions.
    * (Windows) Added QtSparkle support to notify on new versions.

  Removed features:
    * Removed Xine engine support.
    * Removed broken imobiledevice (iPhone) support.

0.6.13:

  Bugfixes:
    * Fixed cut-off text in about dialog.
    * Fixed increasing play count when stop after track is enabled.
    * Fixed showing/hiding playing widget when playback is started while window is hidden.
    * Fixed "Show in file browser" to also work on local songs that are not in the collection.
    * Fixed "Show in file browser" to work with PCManFM file manager.
    * Fixed audio analyzer to work with S24LE and F32LE audio formats.
    * Fixed playlist background image not loading.
    * Fixed a memory leak when switching between playlists.
    * Removed use of HTML in systemtray tooltip on KDE, since KDE no longer renders HTML in the systemtray.

  Enhancements:
    * Replaced use of C style casts.
    * Adapted use of C++11 override.
    * Improved CMake build files.
    * Added new on startup options to show maximized or minimized.
    * Builtin TagLib code is updated and improved.
    * Made most icon sizes configurable in the settings, and increased default sizes for icons.
    * Improved fancy tabbar to use font sizes from the theme instead of fixed sizes.
    * Moving the currently playing song to the top when the playlist is manually shuffled.
    * Added "a taste of Strawbs" background image.
    * Fixed unit test for testing playlist model.
    * Added new unit tests for tagreader.

0.6.12:

  Bugfixes:
    * Fixed height of about dialog.

  Enhancements:
    * Only save settings for pages that actually has been changed.
    * Replaced use of deprecated Qt functionality as of 5.15.
    * Made scrobbler show error dialog for all errors when show error dialog option is on.
    * Dont append disc to album titles for Subsonic and Tidal.
    * Sort folders added from file view.
    * Changed default collection grouping to album - disc.

0.6.11:

  Bugfixes:
    * Fixed MPRIS missing art url when playing albums with embedded cover.
    * Fixed updating local non collection songs when manually unsetting cover.
    * Fixed infinite loop and preceding crash when CSS background-color was set in qt5ct.
    * Fixed UI freeze when updating the database from a large Subsonic or Tidal collection.
    * Fixed crash when CD loading fails in devices.
    * Fixed CD devices showing up with having 0 songs after loading.
    * Fixed the album cover loading indicator being stuck if no cover providers were available.
    * Fixed the playing widget not updating artist, album or title after metadata has changed for a song when no album cover was loaded.

  Enhancements:
    * Sort songs in collection by song title instead of track if previous grouping is not the album.
    * Added option to switch on/off automatically searching for album covers to context settings.
    * Reset last played song when playlist is finished.
    * Checking content type of received HTTP request for image when receiving album covers.
    * Added option to scrobbler setting for turning off login error popup.
    * Made MusicBrainz and Discogs cover providers respect rate limiting.

  New features:
    * Added option to show/hide sidebar.
    * Added settings for selecting album cover and lyrics providers.
    * Added album covers from Musixmatch and Spotify.
    * Added lyrics from Genius, Musixmatch and ChartLyrics.

0.6.10:

  Bugfixes:
    * Fixed Subsonic album covers not working for albums with non ASCII charcters.
    * Fixed reading date and genre from individual tracks in CUE sheets.
    * Fixed resume playback on startup for CUE songs.
    * Fixed album cover manager not showing complete album titles in the list of album covers.
    * Fixed save album cover to file saving "no cover" image instead of actual album cover.
    * Fixed device state text color in devices not being visible when using a dark theme.
    * Fixed engine and device in context using too large icons when icons were loaded from the system theme.
    * Fixed "Secure connection setup failed" problem on Windows when playing streams.
    * Fixed margin for song title text in context.
    * Fixed UNC paths with non ASCII charcters not working.

  Enhancements:
    * Allowing all characters except slash and backslash when organising music unless options to strip characters is checked.
    * New option in organising music to remove problematic filename characters that removes less characters than the FAT option.
    * General improvements to the album cover loader and album cover providers code.
    * Fixed loading album cover images from album directory for songs added to the playlist from outside of the collection.
    * Made automatic album cover search work for songs outside of the collection and for streams.
    * Made album cover search work based on artist + title if album title is not present for providers supporting song/track search.
    * Update art manual in playlist for local files, devices and CDDA to avoid loading covers multiple times.
    * Made lyrics search work for streams.
    * Added "add stream" to menu.
    * Only showing song length in context when available.
    * Sort album cover search results by score and pick the best 3 first before trying others to improve album cover search speed.
    * Make scrobbler work for streams.
    * Added search for lyrics as a seperate option in context.
    * Made font and font sizes in context configurable.
    * Splitting artist and song title to the relevant metadata when artist and song title is sent as title seperated by a dash in streams.
    * Added label to show collection pixmap disk cache used in settings.
    * Icreased default collection pixmap disk cache to 360.

  New features:
    * Added back Tidal streaming support.
    * Added Qobuz album cover provider.

  Removed features:
    * Removed Phonon engine support.

Version 0.6.9:

  BugFixes:
    * Fixed playlist metadata updating interfering with manual tag editing.
    * Fixed order of tabs in all windows.
    * Fixed playlist right click using wrong songs for determining menu options when playlist was filtered.
    * Fixed possible crashes on playlist right click.
    * Fixed possible null pointer crash in OSD pretty.
    * Fixed track and title in playlist not being movable.
    * Fixed Subsonic support to handle numeric Json values like track and disc both as strings and integers.
    * Fixed Subsonic compatibility with LMS (Lightweight Music Server).
    * Disabled "open Audio CD" from menu on Windows where CD support is currently not supported.
    * Fixed files containing "MAC" being detected as Monkey's Audio.

  Enhancements:
    * Improved support for High DPI displays.
    * Added CMake check for backtrace() to fix compilation with musl libc.
    * Made album cover in context adjust to width.
    * Made settings, cover manager, organise dialog and transcode music dialog center on the same display where the mainwindow is located.
    * Removing empty directories when organizing music.
    * Made file selection work in "Show file in browser" for Dolphin and Nautilus.
    * Implemented disk caching of album thumbnails in collection tree.
    * Use a shorter playlist name when songs are added from file view.
    * Disabled optical drives in copy to device menu.
    * Added better error handling for CDDA loading.
    * Added Polish, Hungarian and Korean translations.

  Removed features:
    * Chartlyrics support (Unstable API).
    * Tidal support (No agreement).
    * QObuz support (No agreement).

Version 0.6.8:

    * Fixed stuck tabbar and collection GUI with some themes.
    * Fixed possible crashes related to QProxyStyle.
    * Fixed a bug where metadata in the playlist was not updated when editing metadata for the current playing track.
    * Fixed crash when deleting a folder with playlists.
    * Fixed restoring to correct screen when maximized.
    * Increased lyrics score if lyrics text is larger than 60 characters to avoid using "no lyrics available" text.
    * Made context title and summary changeable.
    * Added option to disable playlist clear button.
    * Added confirmation dialog before clearing playlists with more than 500 songs.
    * Added German, French, Italian and Indonesian translations.
    * Added StartupWMClass to desktop file.
    * Replaced use of Qt deprecated functionality as of 5.14.
    * (macOS) Fixed filesystem watcher to correctly pick up changed collection directories.
    * (Windows) Fixed translations not being included.

Version 0.6.7:

    * Fixed crash when cancelling scrobbler authentication
    * Fixed "Double clicking a song in the playlist" behaviour setting
    * Fixed "Pressing Previous in player" behaviour setting
    * Fixed updating compilations where there are spaces or special characters in filenames
    * Fixed cases where songs were stuck in "Various Artists" because not all songs in
      the same compilation was removed from the model before readded with actual artist.
    * Fixed a bug when importing playlists where metadata was reset
    * Fixed scrobbler to also scrobble songs without album title
    * Fixed text for replay gain setting not loading in backend setting
    * Added back lyrics from Chartlyrics
    * Added ability to show fullsize cover on double-click in playing widget
    * Added separator between "unset cover" and "show fullsize" in popup menu
    * Removed left click on analyzer to popup menu
    * (Windows) Added killproc executable to terminate running process before uninstalling

Version 0.6.6:

    * Fixed lowercased album artist in playlist column
    * Fixed compiling with different optional features turned off
    * Fixed hang in stream discoverer with certain formats
    * Fixed Subsonic to correctly read disc
    * Fixed preventing system logoff or shutdown
    * Fixed correctly updating compilations
    * Simplified gstreamer pipeline code
    * Disabled showing analyzer for bit depths not supported by the analyzer
    * Made stereo balancer independent from equalizer
    * Added option to prefer album artist when sending scrobbles
    * Removed lines in settings
    * Added limit for number of tagreader processes to 2
    * Improved system theme icon option to better pick correct icons
    * Added option to automatically select current playing track
    * (Windows) Added support for WASAPI

Version 0.6.5:

    * Fixed scrobbler not to send scrobbles multiple times when metadata is updated
    * Fixed Listenbrainz scrobbler not don't send "various artists" as album artist
    * Fixed missing cover image in OSD pretty reposition image
    * Fixed OSD pretty upper left positioning
    * Fixed OSD pretty positioning on Windows on screens with negative geometry
    * Fixed appdata file to pass full validation

Version 0.6.4:

    * Added setting for fancy tabbar background color
    * Added setting to make marking songs unavailable optional
    * Added lyrics from lyrics.ovh and lololyrics.com
    * Fixed so that Subsonic verify certificate setting takes affect immediately
    * Fixed all services to follow redirects
    * Fixed so that songs with different albums are not treated as duplicates
    * Fixed SingleApplication to use native system calls on Linux for getting username
    * Added stream discoverer to gstreamer pipeline to detect stream filetype, samplerate and bit depth
    * Disabled video in gstreamer pipeline
    * Fixed ampache compatibility
    * Fixed lyrics searcher not to try search for lyrics with empty song artist or title
    * Fixed Qobuz login to send mac address as device manufacturer id on login
    * Fixed Qobuz invalid signature parameter error when retrieving stream urls
    * Fixed player not using preloaded stream url causing gapless playback to break
    * Increased preload gap for gstreamer to make sure gapless playback works better
    * Fixed setting and resetting temporary metadata for next playlist item
    * Replaced media buttons with more correct ones
    * Fixed windows thumbbar
    * Lowered required Subsonic API version to 1.11.0
    * Fixed Subsonic to allow empty artist and album in song replies
    * Added Russian translations
    * Fixed some services API urls using http to use https
    * Fixed restoring to original window size when restoring from system tray
    * Updated 3rdparty taglib

Version 0.6.3:

    * Fixed crash when using internet services.
    * Fixed musicbrainz tagfetcher only showing 1 result per song.
    * Fixed collection watcher to unwatch deleted directories.
    * Added "album - disc" grouping.

Version 0.6.2:

    * Disabled fatal error for FTS5 cmake test.

Version 0.6.1:

    * Compare artist and album case-insensitive when generating score for album covers.
    * Fixed broken return value of sendMessage() in SingleApplication causing application to be started twice.
    * Improved error handling in local redirectserver.
    * Added new tabs view with search and favorites to Tidal.
    * Fixed gst_pad_send_event lock in gstreamer pipeline.
    * Made Xine analyzer optional to fix compilation with newer Xine.
    * Implemented offset and queue to all Tidal requests.
    * Added new artist, album and song ids to songs schemas to add/remove favorites.
    * Improved lyrics searcher.
    * Fixed disabling fading option in backend settings when volume control is disabled.
    * Added x-scheme-handler/tidal to desktop file to handle tidal songs and allow OAuth redirect url.
    * Added love button for scrobblers.
    * Fixed gapless playback when using url handler.
    * Fixed enabling/disabling fading options in backend settings.
    * Added support for Subsonic streaming.
    * Added support for Qobuz streaming.
    * Added confirmation box for opening songs in file browser to avoid users accidentally opening too many songs.
    * Added OSD notification on playback resume option.
    * Fixed MusicBrainz tag fetcher to respect rate limiting when fetching tags.
    * Fixed hardcoded systemtray icon.
    * Added live scanning and option to rescan songs.
    * Added playlist background image stretch option to zoom image with cutting the height.
    * Replaced use of QDesktopWidget with QDesktop
    * Replaced all uses of QSignalMapper with lambda expressions
    * Fixed collection album covers stuck to old ones when new album covers are fetched
    * Fixed all Json services to check HttpStatusCodeAttribute in addition to checking network errors
    * Fixed track change hang
    * Fixed playlist sorting to ignore articles
    * Fixed MessageReply crash in tagreader
    * Fixed MTP support
    * Fixed possible crashes with libimobiledevice devices
    * Removed older devicekit udisks backend
    * Using iconv to replace non-ascii characters when organising files
    * Fixed IPod support when listed from UDisks2
    * Fixed memory leaks when establishing database connections and in database backup.
    * Fixed dangling database connections when loading collection, playlists and devices.
    * Fixed closing and deleting backends to free memory and database connections on exit.
    * Fixed dangling pointers causing crashes when loading new album covers in collection.
    * Fixed playlist shortcuts being broken because they were hidden in playlist right click menu.
    * Replaced FTS3 and custom tokenizer with FTS5 with unicode61.
    * Fixed certain cases where track slider popup was stuck.
    * Fixed certain cases where the playing widget gets stuck when switching fast between context and other widgets.
    * Removed ChartLyrics provider (service have been down for a long time).

Version 0.5.5:

    * Fixed Tidal API url

Version 0.5.4:

    * Changed description for offline mode scrobbling for less confusion
    * Fixed scrobbler to not send "playing now" when in offline mode
    * Added common RPM spec file for openSUSE, Fedora, RedHat, CentOS and Mageia
    * Improved cover manager score system
    * Added Deezer and Tidal cover providers
    * Added ChartLyrics lyrics provider
    * Added HTTPS workaround for Last.Fm OAuth to solve redirect https to http (localhost) problems
    * Added Moodbar
    * Fixed incorrect desktop file returned by mpris2
    * Fixed mpris2 CanPlay
    * Fixed updating play and skip count properly
    * Fixed track seeking with mouse wheel
    * Fixed CDDA tracks being invalidated (greyed) in the playlist
    * Fixed problems using transcoder when other engines were selected
    * Improved song loader error handling
    * Fixed enabling equalizer having no affect
    * Disable notification art setting when tray icon notification is selected
    * Applying settings immediately when pressing Apply in settings dialog instead of just saving
    * Disable scroll over icon to change track setting on non-X11 systems and KDE
    * Removed nvidia workaround on exit which is no longer needed
    * Fixed chromaprinter unref buffer crash when using complete tags automatically
    * Fixed crash on exit using VLC engine when using static taglib caused by tagblib linking collision
    * Fixed context background to follow base colors instead of always white
    * Fixed fancy tabbar small sidebar mode width
    * Added some missing taglib configure checks
    * Saving geometry, tabbar, playlist column settings on exit only to reduce wear on SSD's and fix sluggish resizing with non-SSD
    * Fixed and improved snap including upgrading to core18 and adding proper alsa support
    * Fixed resume playback on startup not working for other than the first playlist

Version 0.5.3:

    * Changed default tagging to albumartist in organise dialog
    * Removed support for older taglib in tagreader
    * Made lyrics selectable in context
    * Added boom and rainbow analyzers
    * Made it possible to use enter in shortcuts
    * Replaced "no album cover" image
    * Capitalized Strawberry in OSD and tooltip
    * Added artist search to Tidal
    * Created systray tooltip workaround for KDE
    * Changed defaults for backend fade setting
    * Changed backend settings to allow setting device back to automatic when a custom device is active
    * Hide ALSA options on non-ALSA systems
    * Showing errors in dialog when editing tags fails
    * Update database immediately when saving tags were successful
    * Show Strawberry icon in OSD when stopping track
    * Added support for translations
    * Renamed desktop and appdata files to follow freedesktop specifications
    * No longer allowing X11 shortcuts on Wayland
    * Fixed handling of UNC paths in gstreamer engine
    * Added option to disable volume control
    * Removed Deezer support (SDK discontinued and streams are encrypted)
    * Added Norwegian and Spanish translations
    * Added setting to allow automatically saving album covers directly to album directory
    * Updated mimetypes
    * Added basic support for system and custom icons
    * Moved loading of device icons to device model
    * Added better support for APE tags
    * Fixed problems identifying song as collection songs when loading playlist files
    * Fixed problems loading Tidal URLs from playlist files
    * Added support for saving and restoring geometry in settings, organise and transcoder dialogs
    * Improved Tidal error handling and automatic login
    * Improved Tidal search to handle duplicate albums
    * Notify collection backend about renamed files when organising files
    * Added more background image options
    * Removed API Seeds lyrics provider (require payment)
    * Added group by format
    * Fixed gstreamer leaks

Version 0.5.2:

    * Added error handling and message for URL handler
    * Added SingleCoreApplication secondary check
    * Fixed memory leaks in devices
    * Fixed more stability issues in devices
    * Remove remastered from album title when searching for lyrics, covers and scrobbling
    * Fixed CMake check for X11 headers
    * Enabled iLister and AFC device
    * Added saving of album cover to gpod devices
    * Fixed AAC/MP4 transcoder
    * Added log to organise error dialog
    * Added warning when enabling X11 shortcuts on Gnome, Cinnamon or KDE
    * Fixed transcoder to use filename suffixes to solve issues when copying files to iPods
    * Added option to copy album cover in organise dialog (filesystem and libgpod devices)
    * Added raise() to make sure window is on top when strawberry is started twice

Version 0.5.1:

    * Added scrobbler with support for Last.fm, Libre.fm and ListenBrainz
    * Fixed key up causing playback to reset
    * New improved last.fm and musicbrainz album cover providers
    * Removed Qt5Xml and liblastfm dependency
    * Replaced sha2 with QCryptographicHash
    * Fixed songs not showing up under devices
    * Removed qxt dependency
    * Replaced globalshortcuts backend for X11 and Windows
    * Made global shortcuts on X11 optional and off by default
    * Added support for Monkey's Audio
    * Fixed crashes in devices
    * Enabled transcoder and organiser in menus
    * Added transcoder for WavPack
    * Changed default group by for collection to album artist
    * Enabled organise without gstreamer
    * Added cmake USE_BUNDLE option for macOS/Windows
    * Fixed broken GSD D-Bus shortcuts backend
    * Fixed broken background image setting
    * Disabling fading when a ALSA device is selected
    * Replaced QtSingleApplication with SingleApplication
    * Fixed scroll over icon to change track feature
    * Fixed freeze when changing appearance settings
    * Made text in about dialog selectable
    * Improved manual pages
    * Fixed typos
    * Updated contributors in about
    * Added debian copyright file
    * Fixed some compile errors

Version 0.4.2:

    * Updated AppStream data file to newer specifications
    * Fixed Deezer engine to use quality setting
    * Removed unneeded dependency Qt5OpenGL
    * Removed obsolete xine warning and engine reinitialization
    * Added ALSA as optional component in cmake
    * Fixed bug in playlist columns setting all visible
    * Added option to reset playlist columns
    * Fixed/Improved console logging
    * Added queue to play next option
    * (Windows) Corrected uninstalled files on x64 installer
    * (macOS) Fixed poor performance

Version 0.4.1:

    * Fixed crash in analyzer
    * Fixed trying to use systray even if the desktop had no systray
    * Fixed Tidal login loop bug
    * Added Deezer support
    * New improved fancy tabwidget
    * Fixed bug not loading engine settings
    * Moved queue manager into tabbar for easier access
    * Fixed crash when changing appearance colors
    * Improved error handling between player and engine
    * Added setting to allow continue to the next song in the playlist based on error
    * Improved Xine engine code
    * Moved some settings
    * Updated builtin taglib
    * Added AppStream data file
    * Fixed compiling with Qt 5 versions of system QtSingleApplication and Qxt library

Version 0.3.3:

    * Fixed Tidal login

Version 0.3.2:

    * Fixed search error not shown in Tidal search
    * Added URL handler for Tidal, now retrieving URL's when playing instead of when searching
    * Fixed bug in pipeline not setting url
    * Fixed bug setting wrong temporary metadata
    * Removed device module from windows, since it's not implemented for windows
    * Added support for both ALSA hw and plughw
    * Added option to change url stream scheme for Tidal
    * Added encoding of Tidal token in the source code
    * Added encoding of Tidal password in the configuration

Version 0.3.1:

    * Added new lyrics provider with lyrics from AudD and API Seeds
    * New improved context widget with albums and lyrics
    * Fixed playing and context widget getting stuck in play mode when there was an error
    * Changed icons for artists in collection, tidal and cover manager
    * Removed "search" icon from "Search automatically" checkbox (right click) that looked ugly
    * Removed some unused widgets from the src/widgets directory
    * Fixed initial size of window and side panel
    * Fixed saving window size correctly
    * Added Tidal support
    * Disabled Amazon cover provider because of revoked API key
    * Removed broken xine fader
    * Made chromeprint optional
    * Added missing names to about dialog
    * Made xine enabled only for window debug
    * Removed dead code
    * Added DSF and DSDIFF/DFF support
    * Fixed tagreader crash when saving tags to MP3 files
    * Added support for reading/writing lyrics to tags
    * Fixed saving tags (APE) for WavPack files

Version 0.2.1:

    * Fixed crash with newer Qt
    * Fixed setting output/device for Xine and VLC backend
    * Improved backend settings to better support multiple backends
    * Fixed track slider for Xine, VLC and Phonon
    * Fixed compilation on macOS
    * Fixed device selection on macOS
    * Added xine on to windows build

Version 0.1.6:
    * Fixed crash on exit caused by NVIDIA driver
    * Fixed PulseAudio device selection
    * Improvements to device selection

Version 0.1.5:
    * Makefile fixes for building

Version 0.1.4:
    * Fixed compliation with clang compiler
    * This release is mainly to get it working on openbsd and freebsd.

Version 0.1.3:
    * Audio file detection by content
    * Added builtin taglib to 3rdparty to support detecting audio by content instead of just file extension
    * Removed unneeded qsqlite from 3rdparty
    * Added sqldrivers\qsqlite.dll for windows build
    * Replaced incorrect DLL libgstdirectsoundsink.dll (from gst 1.12.4) instead of libgstdirectsound.dll (from gst 1.14.0) for windows build
    * Fixed git versioning

Version 0.1.2:
    * Fixed playback of WavPack files
    * Fixed musicbrainz tagfetcher
    * Use common regex (Song::kCoverRemoveDisc) for removing Disc/CD from album
    * Remove Disc/CD from album when creating hash for album cover filename
    * Fixed imobiledevice support compilation
    * Fixed output device selection on windows
    * Fixed problems with windows build missing some DLL's, only supplying required gstreamer-plugins now
    * Removed redundant code

Version 0.1.1:
    * Initial release
