[Pkg-mpd-commits] [sonata] annotated tag upstream/1.7_b1 created (now 8e3ac44)

Simon McVittie smcv at debian.org
Tue Jul 26 08:33:53 UTC 2016


This is an automated email from the git hooks/post-receive script.

smcv pushed a change to annotated tag upstream/1.7_b1
in repository sonata.

        at  8e3ac44   (tag)
   tagging  bdc1603652d4043e0ab75d67314025f1ac883674 (commit)
  replaces  upstream/1.6.2.1
 tagged by  Simon McVittie
        on  Sun May 22 18:28:10 2016 +0100

- Log -----------------------------------------------------------------
Upstream version 1.7~b1

Adam Dane [:hobophobe] (1):
      Rework setting search filter entry invalid

Anton Lashkov (12):
      Add context menu icons.
      Add consume mode.
      Remove unused ";"
      Simplified usage of library_[get|set]_data
      Fix opening file without gedit.
      Loads and starts plugins earlier
      Rename "tabs" to "tab_construct".
      Make playlists and streams not a plugins.
      Add plugin README.
      Sonata automatically fetches lyrics in a new thread.
      Log which plugin downloaded lyrics
      lyrics: new, simpler, lyricswiki plugin

Daniel (1):
      Go fullscreen by dbus

Jaesung BANG (1):
      translations: add Korean translation

John McNeil (1):
      Fix bad calculation of played song time for audioscrobbling.

Jonathan Ballet (313):
      Improved support for Gtk Status icon
      Fix UI play/pause/... buttons on reconnection
      Fixed a TODO item \o/
      systray: remove the useless callback on the popup-menu event for gtk.StatusIcon
      ui-connection: display the 'offline' UI if mpd doesn't run at Sonata startup
      ui-connection: explained a possible race condition while updating the connection state
      lyrics: rewrite the lyrics location function to make it clearer
      lyrics: ask the lyrics plugin to force the retrieval of new lyrics
      lyrics: refactor the get_lyrics function to avoid repetition and makes it clearer
      lyrics: fetching lyrics from lyrics.wikia.com now works again
      Merge branch 'fix-fetch-lyrics' into integration
      launcher: make the main launcher cleaner
      Don't try to display an egg.trayicon if we don't know its size yet
      Merge branch 'refactor-tray-icon' into integration
      Add support to run tests (unittests & doctests)
      Merge branch 'refactor-launcher' into integration
      Add a README file about my own repository
      Cleaner interface to the MPD server
      Simpler and cleaner way to call a method on the MPD client
      Remove useless alias to MPD's currentsong command
      Add logging support
      Allow to change log level from the command line
      Rename MPD handler object name into something better
      Add more logging information on plugins and MPD helper
      Add support for logging module
      Make cleaner accessing the MPD object
      Update README with logging + cleanup merges
      Reindent setup.py file
      Use pkg_resources to access icons files and store them in the egg.
      Rename the method to find the path to an icon
      Install data files in a "share/" sub-directory instead of everything in the egg
      Forgot to add a logger initializationin the pugin system
      Merge branch 'logging-support' into integration
      Fix installation location of data files
      Simplify the build process: don't over clean and be smarter about what to build
      Generate the list of translation files on the fly, instead of being hardcoded
      Simplify the packaging/build process by doing only what's required
      Add README information about packaging improvement
      Remove "old" (< 0.80.0) DBus Python support
      Remove fix for broken ZSI on Ubuntu
      Remove support for egg.trayicon
      Remove check for PyGtk < 2.12.0
      Remove fix for gtk.LinkButton.link_button_set_uri_hook()
      Make the list of default plugins a real Python list
      Add README entry about the constants refactoring.
      Merge branch 'refactor-consts' into integration
      Provide information on how to send me some changes
      py3: Sonata now requires Python 3
      py3: the version is now a string, not a list a bytes
      Don't crash if Sonata can't connect to MPD at startup.
      ui: new function to safely display values in labels
      Fix code indentation
      doc: update Changelog with playlist fixes from Zhihao Yuan
      Merge branch 'other/lichray/fix-playlist-menu' into integration
      compatibility: remove code paths related to MPD <= 0.14
      Merge branch 'remove-deprecated' into integration
      Merge remote-tracking branch 'lichray/fix-new-dbus' into integration
      gtk3: fix an exception due to signature change in library.get_visible_range()
      Assuming the fork, and taking over the 'master' branch.
      Fix crashes when using Sonata command line
      New consume mode + use more stock icons
      Various cleanups
      Localization fixes + up-to-date German translation
      Merge branch 'master' into gtk3
      Correctly handle change of the playlist formatting
      py3:  really fix the version information this time...
      py3: version is a str() again, and fix usage of sonata.genversion
      mpd: don't overreact if Sonata can't connect to MPD
      gtk3: reintroduce some fixes which have been removed when migrating to Gtk 3
      Allow to exit the application with Ctrl+C from the terminal
      mpd: our mpdhelper wrapper completely wraps the mpd module, and use unicode by default
      mpd: don't need to over-disconnect before connecting
      cli: fix result of "status", broken since b242a39e
      Merge branch 'gtk3' into gtk3-builder
      gtk3: set alternative background color on tree view lines
      gtk3: align the progress bar with the toolbar buttons
      gtk3: use the custom CrumbBox once again
      gtk-builder: merge all preferences_*.ui files into preferences.ui
      Remove logging of MPD calls, handled now by python-mpd
      mpd: don't need to over-disconnect before connecting
      cli: fix result of "status", broken since b242a39e
      Consume mode works again
      gtk3: fix accelerators on check boxes in the preferences window
      py3: change Python version checks from 2.x to 3.2+
      i18n: translation files are now usable even while developping
      gtk3: fix Gtk.UIManager issue when loading UI description with non-C locales
      One big step forward: Merge branch 'gtk3'
      Remove some TODO which are done.
      doc: updated the Changelog and readme files
      Merge branch 'master' into gtk3-builder
      gtk3: fix popup menu on the main window
      i18n: fix and add translation strings
      i18n: up-to-date French translation
      gtk3: fix typos, from 7a33ea8f
      packaging: fix setup.py after renaming files in 7f232f
      gtk3: fix computation of cover size
      gtk3: fix column sorting and call to GObject.idle_add()
      gtk3: provide a convenient function to create GtkBuilder objects
      gtk3: packaged .ui files
      doc: more changelog entry
      There is no such things as "window_owner", Sonata is always the owner of its window
      gtk3: use GtkApplication to handle application uniqueness
      gtk3: remove Gnome session support, which should be handled by GtkApplication now.
      lyricswiki: don't be so noisy if an error occurs
      py3: correctly set the process name viewable in ps and xprop on Linux
      i18n: updated script to generate translation file to support .ui files
      gtk3: some icons now have the same size as before (tabs & library breadcrumb)
      py3: open files using UTF-8, no matter what the default system encoding is
      ui: remove unused functions
      i18n: move translation strings from Python to Glade
      i18n: mark some strings as "not translatable" and update list of translatable files
      i18n: correctly set the translation system for Python & C libraries
      i18n: clearer comments when looking for the right translation directory
      i18n: up-to-date French translation
      i18n: look for translations string in Glade files
      i18n: allow to update only specific .po files
      i18n: updated the TRANSLATORS doc with new contact informations
      gtk3: remove useless function sonata.ui.image()
      gtk3: remove useless calls to sonata.ui.label()
      gtk3: fix custom icon setting whild drag'an'dropping
      Renamed ui.provider() ui.css_provider() and simplify Gtk resources loading
      Merge remote-tracking branch 'others/hobophobe/gtk3-builder' into gtk3-builder
      gtk3: use GtkBuilder to build the user interface, thanks to Adam Dane
      doc: updated changelog
      config: refactor the configuration module to remove duplicates
      Backward compatible fix when loading some  wrongly-serialized values
      Provide a basic Song object to start the removal of mpdhelper.get()
      Properly implement comparison for Song objects
      Implement Song.track to return the track number of the song
      Implement Song.pos to return the position of the song in the playlist
      Implement Song.time
      Implement Song.artist
      Implement Song.disc
      Implement Song.album
      Implement Song.file
      Implement Song.title
      Implement Song.date
      Remove call to mpdh.get(xxx, 'directory'), it's not a Song information
      Return a special object for MPD.count() with integer values
      Don't use mpdh.get() to access the results of MPD.playlists()
      Implement Song.name
      Remove last use of mpdhelper.get()
      Be smarter when accessing SongResult attributes
      MPD.listallinfo() still returns a simple dict
      Remove .mpdhelper.get() and _sanitize() functions
      Merge branch 'master' into refactor-song-info
      gtk: replace deprecated call to GLib functions through GObject
      Rename SongResult class to the more explicit MPDSong
      Rename CountResult class to the more explicit MPDCount
      Merge branch 'master' into improve-lyrics
      lyrics: simplified lyricwiki plugin
      lyrics: fixed lyricswiki plugin and improved overral lyrics plugin support
      config: simplify the configuration file management
      Wrap the result of some MPD's commands for easier access
      config: "port" in profile is an int
      plugin: custom plugins are now stored in ~/.config/sonata/plugins/
      test: unittest2 is not used anymore
      py3: remove some Python 2 crufts
      covers_lastfm: Fetch covers from Last.fm
      covers_lastfm: Handle multiple images and errors checking
      covers-lastfm: make the plugin executable by finding some test cover
      covers lastfm: new API key
      covers: fix size of covers in the search remote covers dialog
      Remove broken Rhapsody covers plugin
      covers lastfm: port to JSON, bump to revision 1.0 (for what it's worth)
      covers: use Last.fm services instead of (broken) Rhapsody to find covers
      doc: update changelog with new covers plugin
      covers: provide new API to simplify writing of covers plugins
      cover: log and images detection is done by Sonata itself
      covers lastfm: detect errors
      covers: allow to pass a reason to the error callback
      doc: start to add a documentation to explain how the plugin system works
      plugin: simplified cover fetching API for plugin writers
      doc: updated changelog with new format
      mpd: if a song attribute exists several times, keep only the first one
      Remove some MPD caching, causing troubles with password authentication
      Add more tests for weird disc values
      Fix mpdhelper ValueError on weird disc values
      Better translation support and formatting for time-related strings
      i18n: the content of POTFILES.in is now stable (always sorted)
      i18n: up-to-date French translation
      Simplified and homogenized use of icons in Sonata
      Reindent Glade files using Glade
      covers: some albums exist on Last.fm without covers, deal with them
      doc: revamped README file
      Fix configuration loading when no config file available
      scrobbler: allow to scrobble again
      Deal with file names and paths using strings instead of bytes
      doc: recommends PyGObject 3.7.4 or more
      doc: more informations for the PyGObject dependency
      packaging: increment version number in docs and code
      Searching the library wasn't working at all.
      Remove unused maintenance scripts
      Fix DND of songs in the current playlist
      Factorized code which moves songs in the current playlist on DND
      Scroll to the selection after DND songs in the current playlist.
      Simplify "center song in list" function.
      Scrolling on the tray icon now changes the volume.
      scrobbler: fix scrobbling
      doc: add CHANGELOG entry for f2349f3761b2c836d5e180f56d1f8cc1c57a670f
      lyrics: follow redirect pages on LyricsWiki
      Update Changelog entry with DND issues
      Fix multiple issues related to drang-and-drop in the current playlist
      lyrics: homogenize lyrics search patterns before calling plugins
      lyrics: more logging informations
      Remove manual computation of pop-up menu position
      More TODO!
      current: rename attributes to 'store' and 'view', which is clearer
      current: fix and simplify searching songs in the current tab.
      current: Fix removing of a song
      current: remove songs' caching, and use current's ListStore for them instead
      current: fix lagging bold row when using the consume mode
      current: simplify keeping position in the playlist
      current: attributes name cleaning
      cli: fix wrong usage of the MPDClient in the CLI
      current: fix filtering, less memory usage, simplification & code cleanup
      gtk3: fix encoding issue while setting the Audioscrobbler password
      covers: download bigger covers from Last.fm
      fullscreen: extract fullscreen management
      gtk3: fix drag-and-drop of a custom artwork image in the main window
      fullscreen: fix typo introduced in 5b24bb55ea
      library: fix warning when opening an album while in artist view
      Add CHANGELOG for 0503f3
      gtk3: CSS's font-size needs an unit, assuming pixel
      Revert "gtk3: CSS's font-size needs an unit, assuming pixel"
      current: centering the song on the current playlist also selects the song
      i18n: update translation files and set up a Transifex project
      i18n: fix broken translation files so they can be uploaded to Transiflex
      i18N: add a README information about translation
      i18n: now use Transifex as a translation plateform
      doc: updated CHANGELOG with Transifex
      doc: update CHANGELOG with new translations
      tabs: correctly save current tabs visibility flag
      tray: better name for callbacks
      tray: remove duplicated 'activate' signal handler
      tray: simplify logic to decide either to hide or show the main window
      tray: fix hiding/showing the main window even if it's not the active widget
      tray: fix hiding/showing the main window even if it's not the active widget
      stream: fix streams parsing since Python 3 port
      stream: improve code readibility of stream parsing, simplify logic
      stream: renaming
      stream: simplify logic
      stream: move stream parsing processing to a dedicated function
      stream: read more of a playlist, if possible
      current: deleting a track doesn't toggle the filter bar
      main: log errors if something happens during status updating
      mpd: support disabling crossfade in MPD >= 0.18
      doc: add links for Archlinux and Gentoo packaging
      doc: need tagpy >= 2013.1 (for Python 3 compatibility)
      Prepare for 1.7a2 release
      thread: name threads and show them in log
      lyrics: better separation between threads when updating lyrics
      lyrics: log lyrics saving (and failures as well)
      doc: add Changelong entry
      gtk: fix segfault on Gtk.TextView while updating lyrics
      gtk: call Gtk.main_iteration() only if there are events to process
      Correctly use GtkApplication 'activate' signal, fix 'withdrawn' mode
      stream: fix adding binary stream
      library: detach library's model while updating the library view
      library: don't overupdate the library's artworks
      doc: update CHANGELOG with library perf improvements
      thread: use Gio instead of threads to download DNDed covers
      thread: MPD connections are not in a thread anymore
      threading: remove some not-so-useful threads
      gkt: fix withdrawn mode due to incorrect usage of threads
      artwork: move functions related to artwork filenames into sonata.artwork
      artwork: dedent code
      artwork: fix art cache loading/saving
      artwork: split of artwork._library_artwork_update to remove entangled code
      artwork: move artwork cache to a dedicated class
      config: shortcut to access current music dir
      artwork: add tests for artwork path manipulation functions
      artwork: fix broken local artwork chooser dialog
      typo: python-mpd -> python-mpd2
      info: redirect to the localized Wikipedia according to the user's local
      artwork: simplify, reduce, test code related to artwork paths handling
      artwork: fix artwork caching, artwork-related code cleanup
      ui: keep the selected tab when hiding/showing using the tray icon
      artwork: fix artwork path computation with CUSTOM + empty filename
      website: website import from Berlios
      website: update URLs towards this Github repository
      website: update copyright
      website: update mailing list location
      website: update deployment script
      website: ensure the download page in UTF-8 due to non-ASCII names
      doc: explain where to download official and development releases
      download: update Fedora's link
      makefile: update help
      website: move everything into a website subdirectory
      Merge branch 'website' into 'master'
      website: add mising whitespace
      website: pushing the website mirrors completely the website/ directory
      notification: don't notify twice at startup
      log: only display MPD logs when asking for a lot of debug info
      Merge branch 'albumshuffle' of github.com:f0rki/sonata into f0rki-albumshuffle
      Simplify the "shuffle by albums" code
      Remove albumlist module and inline AlbumList code into a function
      doc: updated Changelog
      feature: new "Shuffle by Album" feature
      i18n: use gettext.bindtextdomain() instead of locale's one
      doc: Sonata doesn't depend directly on taglib
      doc: update copyright and license notice
      audioscrobbler: add license
      website: the website and mailing list are now on www.nongnu.org/sonata/
      test: add more tests on cleanup_numeric
      doc: update CHANGELOG with the bad track/disc value fix
      core: correctly handle tracks with very wrong track/disc values
      locale: move locale setting default code path out of the exception block
      locale: replace print() usage with logger.error()
      doc: updated CHANGELOG with Glade dialogs translation fix
      locale: fix translation of Glade dialogs
      about: fix opening the About window.
      Prepare for 1.7b1 release

Jörg Thalheim (71):
      import new pygobject instead of pygtk
      python3 needs explicit package to import local ...
      rename some python modules to its modern version
      fix obivious python3 incompatibilities
      Port ui from pygtk to pygobject
      drop custom UnicodeEntry, python3 use already utf8
      drop egg-trayicon
      update Configparser
      port lyricswiki-plugin to new urllib & new webapi
      Port rhapsodycover plugin to new urllib
      pluginsystem.py use new ConfigParser
      fix invisible cursor in fullscreen mode
      misc.py update default webbrowser list
      deprecate mmkeys
      setup.py fix print statement
      Use default unittest suite instead of unittest2
      preferences.py remove syntax error (colon)
      Refactor misc.convert_time() to be more readable
      remove sugar integration
      Remove last unicode() occurence
      fix red marking in search filter
      Adapt to new set_cursor API in search filter
      lyricwiki_editlink was renamed by accident
      fullscreencoverart is painted black again
      Adapt change_cursor to gtk3
      library.py fix arguments for set_cursor
      progressbar show playtime again
      Fix bad indentation change_cursor(): 8->4 spaces
      library.py refactor data model
      about.py rework shown text
      Fix argument list of menu popups
      Fix systemtray wheel scrolling
      extract SongRecord in to own module
      cli.py fix imports
      cly.py adapt usage of config module to new api
      cly.py remove recoding from info printing
      mpdhelper.py include self in __set_supress_errors
      mpd.py use constant in Gtk.icon_size_lookup
      main.py port various usage of urllib to new api
      library.py select_range expect now Treepath as arg
      Don't set utf-8 as default str encoding
      main.py fix module that was shadowed by variable
      library.py fix search partial
      library.py fix indentation
      library.py set_tooltip_text doesn't like None ...
      library.py rename Treepath.append -> append_index
      make SongRecord compareable
      song.py SongRecord: more general comparision
      Replace Constant class with plain variables
      document SongRecord for great good
      mpdhelper fix error on malformed track number
      fix #1959: library search makes sonata crash...
      library.py variable in wrong scope due indentation
      Fix argument list order of menu.popup
      make add_display_info show hours, minutes, seconds
      Fix broken parts caused by SongRecord refactoring
      run-test don't assume to be in the git root path
      Refactor MPDHelper.call and __getattr__
      library.py readability++ through shorter variable
      fix get_path_child_filenames()
      Remove ui.progressbar()
      Return an empty dictionary, if status command fail.
      make call function private by prepending '_'
      make boldrow() working again
      Merge branch 'integration' into gtk3
      breadcrumbs draw crumbs again
      Don't disable automatic scrollbars in current page
      Embed a interactive shell for debugging purpose
      ui.py remove unneeded except block
      mpdhelper: query commands like "urlhandlers" once
      misc: py3 -> os.path.walk() => os.walk()

Kirill Lashuk (18):
      My first humble attempt to make sonata a little bit more friendly. If user modified his custom artwork location in display preferences the combobox still shos senseless 'SONG_DIR/custom'. This patch replace it with actual file name (preceded with 'SONG_DIR/').
      Fix a bug Destroy dialog after all data is read from it. Otherwise artist_entry.get_text() returns empty string
      Fix typo
      lyricwiki: update site to lyrics.wikia.com (to avoid redirect)
      misc: fix nested tags bug in wiki_to_html
      lyricwiki: strip fetched lyrics
      info: don't escape html tags in lyrics
      info: fix calling method on NoneType object
      info: add support for '<b>' and '<i>' tags in lyrics
      Merge remote branch 'multani/refactor-tray-icon' into master-pacodastre
      Merge remote branch 'multani/fix-ui-connection' into master-pacodastre
      Changes on file tray.py: PEP8 compliant
      Changes on file scrobbler.py: PEP8 compliant
      main: add some items to tray menu
      scrobbler: scrobble after seeking to the beginning
      fullscreen: hide cursor, add some space under the artwork
      multi-CD albums: prevent multiple entries, improve art search
      main: withdraw_app_undo shows sonata on current workspace

Michael Rodler (3):
      Added functionality to shuffle albums (exposed via the sort submenu)
      Merge branch 'master' of https://github.com/multani/sonata into albumshuffle
      Removed unused code and added improved shuffling of albums by using song ids to move the songs, instead of ranges.

Oleg Smirnov (1):
      misc: add support for Chromium browser

Paco (22):
      Merge branch 'fix-ui-connection'
      Merge branch 'refactor-tray-icon'
      Fix a bug when we close the window. The window can now be hided
      Changes on file about.py: PEP8 compliant
      Changes on file artwork.py: PEP8 compliant
      Changes on file audioscrobbler.py: PEP8 compliant
      Changes on file breadcrumbs.py: PEP8 compliant
      Changes on file cli.py: PEP8 compliant
      Changes on file config.py: PEP8 compliant
      Changes on file consts.py: PEP8 compliant
      Changes on file current.py: PEP8 compliant
      Changes on file dbus_plugin.py: PEP8 compliant
      Changes on file img.py: PEP8 compliant
      Changes on filse formatting.py and info.py: PEP8 compliant
      Changes on file library.py: PEP8 compliant
      Changes on file lyricwiki.py: PEP8 compliant
      Fix some syntax errors
      Changes on file main.py: PEP8 compliant
      Changes on file misc.py: PEP8 compliant
      Changes on file mpdhelper.py: PEP8 compliant
      Changes on file playlists.py: PEP8 compliant
      Fixed a little syntax

Peter Helbing (13):
      add missing POTFILE
      Correct setter function definition.
      Add missing import.
      Fix usage of ngettext.
      Update translation: de
      packaging: include Glade files in distribution
      Library search: fix wrong parentheses
      MPDSong: provide values() method
      Enable gettext translation for glade dialogs.
      Only call locale.bindtextdomain() if provided.
      Add comments explaining additional gettext initialization.
      cleanup_numeric: check against whitespace only strings
      Uniform handling of locale initialization.

Robert Hartl (1):
      translations: update Slovak translations

Scott Horowitz (1089):
      initial import
      added shortcuts, updated docs, etc
      FINALLY fixed the damn player width issue. added WillySilly's icon. readying for initial 0.5 release...
      quick fix for if mpd is not running
      oops, replace was broken :P
      fix incompatibility with pygmy by incrementing mpdclient; fix systray bug
      bump to 0.5.1; open documentation in background
      try gnome-open and exo-open first for loading help; background process
      pref to show album art; correctly update interface upon updating library (stripped a bit too much out of pygmy :p)
      pref to stop playback on exit
      minor bugfixes
      increase iteration time if a connection is timing out to make gui more responsive
      lets also add a timeout for the socket just to be on the safe side...
      tray tooltip image follows pref
      pref to minimize to systray on close
      really fix opening help
      ctrl-q to quit; use stock icon instead of custom playlist icon
      ctrl-q for quit; menu key to popup menu
      add 'show player' toggle to tray menu
      allow right-click popup menu from anywhere on player, not just treeviews
      don't popup main menu when right-clicking on image, only popup image menu
      don't popup main menu when right-clicking on image, only popup image menu
      position popup from 'menu' key to be in the first selected row that is visible in the treeview
      added ability to translate strings; readying for 0.5.2 release, just need to do bug hunting
      use dbus (optional) to prevent multiple instances
      open prefs on initial load if the mpd connection fails
      fix dbus code (putting SystemExit() inside a try doesn't work so well...)
      prefs for window: sticky, above; cleaned up prefs dialog; readying for 0.5.2 again
      update TODO, CHANGELOG; 0.5.2 here we come
      oops, update messages.po
      'delete' key works again
      added ctrl-u shortcut for updating entire library (same as menu item); added ctrl-shift-u shortcut for updating only selected paths
      Add support for playlists (save, load, queue, delete)
      (Re-)display systray icon if tray is (re-)opened
      ability to use local image for cover
      initial attempt at being able to use multimedia keys; requires gcc (and python-dev on some distros), and may require pygtk2.8, i need to investigate that
      use correct(?) signal callback arguments for mmkeys
      allow fetching covers if only an artist is specified, but no album
      fix for multimedia keys (hopefully)
      fix2 for multimedia keys
      allow double-clicking on images in cover chooser dialog
      readying for 0.6 release; bugfix for right-clicking on some area of the album art and getting two popups
      backspace to go to parent dir; retain selection of all dirs (excluding '/' and '..')
      show previous instace if user tries to open a second instance of Sonata [Mike Massonnet patch]; 'escape' key minimizes to systemtray (if pref enabled)
      --toggle argument for the app's visibility (requires dbus)
      bugfix for when dbus is installed but sonata is unable to connect
      small improvement to retaining selection
      Show larger image on left-click of cover art; tweaks to logic for retaining treeview selection and position
      move 'update library' menuitem to library menu only
      Fix crash when playing ogg streams [patch]
      bugfix for inability to delete multiple playlists at once
      add --version, --help; print usage; commit fr translation
      missed a string; update messages.po
      more translatable strings
      additional shortcuts
      reduce iteration timer to 1 second (from pygmy's 250ms) and use self.iterate_now() on user's actions to keep the interface responding quickly
      added automatic lyrics retrieval (optional); cleaned up prefs dialog; activate display prefs on toggle, not when prefs dialog is closed
      lets disable lyrics by default
      fix lyrics tab showing/hiding
      alt-4 to change to lyrics tab
      change bgcolor for lyrics; add left margin to text
      change bgcolor for lyrics; add left margin to text
      add ability to search library by type (can be disabled in prefs); add some shortcuts, fix problems with others; use id3tags for displaying music files in library
      bugfix that should show lyrics for more songs
      bugfix to update repeat/shuffle in mpd if mpd is restarted
      switch to leo's lyrics
      revert lyrics stuff; maybe at some future point
      preferences bugfixes - only retry connection if host/port/password has changed, do port comparison as string comparison
      improve tooltip; only show filename, not fullpath, in various labels; when using replace, and in play mode, always start at 1st song; make sure to scroll to the top of a dir we haven't yet been to
      prevent clicking too quickly on the tray icon
      retain selection after drag-n-drop
      clean up cover window
      fix repeat/shuffle
      only show trayalbumart when toggled on from prefs if we're in play/pause mode
      keep width of tooltip fixed
      optional notification popup on song changes (two more items left todo); cleaned up prefs dialog some more
      hack to fix the notification position.. works here ;)
      update notification on pref changes; reduce polling to 750ms, otherwise the user may occassionally see jumps in the progress bar of two seconds
      update messages.po; string freeze for 0.7
      fix notification popup position when playing from stopped state; prevent notification popup on pause/resume
      bleh, svn problems. hopefully the french translation is now actually committed
      0.7, here we come
      fix crash when title, artist, or album isn't specified
      fix crash if dbus is not installed; readying for 0.7.1 release
      display song/artist tags even if the album isn't specified
      fix stupid crash if user changes their mpd connection info in preferences and doesn't have gnome-python-extras installed; prevent a withdrawn app if the user does not have gnome-python-extras installed (i.e. user withdraws app, uninstalls gnome-python-extras, and runs sonata again)
      Allow user formatting of current playlist, library, and app title
      improve config handling
      prevent calling Base.__init__ twice when printing usage, version, etc, with dbus
      updating of album art is threaded to prevent UI blocking
      threading improvements
      correctly retain previous library state when ending search
      better retain selection when dnd'ing multiple items
      better retain selection when dnd'ing multiple items
      oops, didn't mean to commit
      use treeview.freeze_child_notify() and treeview.thaw_child_notify() to speed up populating the treeviews for users with huge lists
      add --status and --info arguments; save prefs right after change (not only on shutdown); remove threads warnings with pygtk 2.10
      some code cleanup
      add playlist to current on row_activated
      prevent occasional UI freezes; add option to update db on start
      Pref to autoconnect on start, connect/disconnect buttons
      prevent some errors while disconnected
      hide volume window when focus leaves sonata
      ...and remove pygmy code
      show volumebutton even when not connected
      give output if unable to connect to dbus, but dbus is installed
      hide volume popup when clicking on various UI elements; change clear keybinding to prevent conflict with ctrl-c for copying
      fix some shortcuts so they work with numslock
      force self.user_connect to True for --status or --info call (ignore the user's connect/disconnect settings)
      pref for song notification location; allow song notification for users without gnome-python-extras or a system tray; keep currently playing song visible in list
      display path when filename is empty or http/ftp prefixes
      apply library formatting to search results; include cursonglabel in test for zero length filenames, etc
      ensure that the host/port/password info is updated when the user presses connect
      sexier tooltip window ;)
      pref for showing playback buttons; correctly update 'show player' menu item when using escape to withdraw app
      add russian translation (Andrew Lukoshko); update messages.po
      oops.. add russian translation, take 2
      clean up prefs; fix notification location
      update messages.po
      update russian translation
      fix occasional sonata --toggle freeze
      update/show notification on pref changes
      improve menu popup position code (and include self.playlists)
      ensure that self.trayeventbox is not None for users without gnome-python-extras
      update fr translation, 0.8 release a-comin'
      added polish translation (tomasz dominikowski)
      prevent update_status crash
      prevent certain keys from causing events
      Correctly send mpd password when using manual connect
      0.8.1 here we come
      apply patches to install mpdclient3 to site-packages, not bin, and remove #!/usr/bin/env python lines (nijel)
      fix --help msg, whoops
      Use local artwork (cover.jpg) if it exists
      lets also check for folder.jpg, that seems to be common too
      break up notification window and main window translations (by request)
      update russian sonata.po
      update polish translation; fix reference to mirage.py :P
      don't save standard local artwork (cover.jpg, folder.jpg_ to sonata covers dir (unlike with a user-specified local image)
      add german translation (paul johnson)
      just some code cleanup
      don't call conn.do.search if searchtext is empty
      prevent crash if at/len is not between 0 and 100 for whatever reason
      Popup song notification on un-pause
      add arguments: play, pause, stop, next, prev, and pp; change --info to info and --status to status
      don't escape html for window title
      end any existing search instead of blanking self.browser when searchtext is empty
      generalize amazon coverart parsing; prevent infrequent crash if amazon returns a non jpg url
      fetch higher res cover art; store art in ~/.covers for consistency with gmpc
      also remove the old sonata covers dir (it doesn't make sense to copy the old covers over because they are lower res..)
      add crossfading option
      small things
      default to song's dir for local image dialog; expand self.musicdir if user uses ~/path; use better default for self.musicdir
      ensure that self.download_image_to_filename is not called multiple simultaneous times
      properly show notification on un-pause from other clients as well
      threading issues fixed? working well so far..
      more attempts to prevent threading freezes
      reduce size of volume increment
      fix typos
      Pick up tooltip album background color from gtk theme
      add more data to coverwindow; update with song changes, etc, and make non-modal; allow access even with no album art available; use sonatacd_large.png when no album art is available
      add sonatacd_large.png
      clear the coverwindow when stopped
      initial stream support
      formatting fixes
      add crossfade to 'sonata status'
      orient coverwindow length-wise
      oops, fix bad typo
      keep library in same order that mpd stores info
      save sonatarc after adding new stream (to prevent losing the stream because of a crash, etc)
      remote images window is now non-blocking (need to add search bar to bottom)
      remove some unused modules
      allow specifying search terms for remote album art
      album art fix
      ensure that we unescape playlists before we try to delete them, since the playlist files are not escaped
      tooltips
      make coverwindow a window, not dialog
      allow editing streams; prevent replace from clearing the current playlist if nothing is selected
      ensure player expands to its previous expanded height
      show hourglass feedback to user when searching for remote images
      prevent threading issue if pressing enter too quickly in the remote image search
      ensure that setting local art is applied to the song for which the user opened the dialog, not the currently playing song
      prevent possible bug when deleting multiple streams; make menu contextual based on treeview selections
      call correct def
      fix bug that doesn't allow searching library for non-english locale
      oops.. now it's fixed
      bold labels in coverwindow, implement min width
      string freeze for pending release, merged po files
      version bump, updated translations
      clear searchtext on end search; 0.9 release
      fix bug that prevents artwork from being set for artists/albums with slashes in their name; attempt to fix potential interface jumping
      update russian translation (ivan)
      more formatting options for text display (genre, song length, elapsed time); correctly make the formatting tab translatable
      use first int when track number is, .e.g, '04/10'
      add year to formatting options
      revert to using GtkStatusIcon if gnome-python-extras isn't installed
      allow drag-n-drop of images to set album art
      If there is only one image in the song's dir, set as art (Ivan)
      Options for choosing album art (local only, remote only, local then remote, or remote then local); more attempts to improve gtk threading
      perform file extension comparison in lowercase; fix missing argument
      parentheses
      threading issues are finally resolved? can it be true?
      add initial statusbar code (optional)
      call dialog without running another mainloop
      call dialog without running another mainloop
      split gtk.StatusIcon tooltip into 3 lines
      play friendlier with other clients for shuffle/repeat
      don't call gc.collect() every iter, this drastically increases cpu usage; open notif window after sonata is loaded so that a black notif window doesn't appear on start
      better gc.collect() implementation
      put threaded gtk calls in gobject.idle_add
      improve statusbar text; strip first digit of hours/mins if 0 and unnecessary
      don't show statusbar when collapsed
      ability to sort current playlist
      random sort option
      reduce initial load (oops, self.update_playlist was executing twice); use swap instead of move to half the number of mpd calls during reverse sort; use built-in shuffle instead of doing random sort manually
      remove unused time module; don't iterate through playlist again for self.update_statusbar
      remove unused time module; don't iterate through playlist again for self.update_statusbar
      fix singular/plural in statusbar; fix total time of current playlist if the user has streams
      update russian .po in order to test, e.g. hour/hours translation
      unbold only last playing song rather than unbolding all songs in playlist (legacy pygmy code) -> more responsive interface when changing songs with large playlist
      eliminate unneeded self.conn.do.lsinfo in self.browse
      more situations to update self.prev_boldrow
      pre to write xmms-info like status file to use with IM, IRC.. (patch by amon)
      speed up treeview by unsetting model when appending and setting fixed row height; dont error on songs without a track.time
      Ability to run on OLPC's Sugar user environment (Owen)
      do less self.conn.do calls when possible in certain situations
      remove (now) unused pickle module
      change 'help' to 'about'
      add sonata_large.png
      add sonata_large.png
      add quit item to menu; fix small aesthetic issue in prefs
      add some ...'s to menu items as appropriate
      commit translation patch for pluralization
      ability to use parantheses in formatting such that all tags must be found for that formatting to be visible
      add translators to about
      also update menu items on treeview click, not just selection change
      ability to format the current song/notif window
      fix translators string
      initial commit for editing song tags (requires optional taglib/tagpy)
      ability to set tags across all selected files; improved look of tag dialog; add bitrate to song info window; f1 for about dialog
      highlight entries text in red if modified by the user; retain selected rows after mpd update; allow activating multiple files with return; pref to automatically playing songs on activate; re-enable gtk.statusicon tooltip code; fix editing streams; allow entering pls/m3u/extm3u streams
      fix auto-numbering of tracks for tag editing; don't allow fileentry text to become red
      use curly brackets {} instead of parantheses for song formatting; save self.currsongformat1/2 appropriately; add border around album art (ivan/quod libet patch); fix gtk.statusicon's notification window bugs
      make tray icon optional; remove 'edit' from streams menu
      clean up notif window sizing code and fix small bug there
      poll more often for cursor with gtk.StatusIcon
      add border to song info window album art; move code to add_border procedure
      fix notif window width
      update sensitivity of minimize pref to reflect trayicon pref
      only withdraw_app() on escape if systray icon is visible
      additionally, only minimize to tray on close if icon is visible
      fix bug that prevents artwork from displaying when self.musicdir is not set
      unselect all paths before attempting to retain selection
      add path checking to accomodate non-standard --prefix paths (reported by mike)
      eugh, duplicate code
      fix locale path checking for --prefix paths as well
      include path in edit tag window; add borders to remote album art
      make genre edit entry into ComboEntry; remove excessive icons; prompt use when deleting playlist/stream
      add half second delay on re-enabling save so that entries will properly update in sonata (no idea why this hack is needed)
      recursively include files of selected dirs for tag editing (only works for first 1017 files, taglib bug?)
      retain album art aspect ratio
      multiple library views (filesystem, artists, albums); use pympd's mpdclient3.py (+ my fixes) so that do.list() works properly; fix bugs if user does not have mpd read access
      new album icon? fix two bugs related to library views
      update icons
      prevent volume window from continually popping up on click
      revert mpdclient3 to old behavior so tags show up as intended
      get crossfade commands from mpd rather than overriding other clients (like repeat/shuffle)
      initial commit for improve song info window; add menu item to open info window for those who have artwork disabled
      tooltip
      browsing fix due to mpdclient revert
      add pixmaps path to find_path
      update fr translation (patch 1786)
      refactor tag editing code to read tags on the fly instead of frontloading; implement lyrics code (Florian) but currently disabled
      add notebook mnemonics; simplify artist view code
      remove case sensitivity in artist/album views (so that 'Paco de Lucia' items are lumped with 'Paco De Lucia')
      use command_list_* for batch jobs for fewer mpd calls; use self.conn.do.search() instead of find() for case insensitivity; ensure browser_get_selected_items_recursive returns unique items
      move checking that file exists to on demand in order to make initial loading of tag editing window faster
      revert command_list_* because of potential socket timeouts (sigh); fix backspace for parent dirs
      allow using multiple arguments with self.conn.do.search() and use for artist view level 3
      fix quirky retaining of selection in artist view; ensure that artist and album searches are exact matches (albeit case insensitive) for view modes
      improve error handling when working dir is no longer in library (work up tree until dir found)
      remove debugging prints
      code cleanup
      allow editing tags from infowindow; allow changing artwork from infowindow (right-click menu, DND); add close button to infowindow
      sort albums in artist view by year; fix small tag editing bug
      simplify edit tag window; preserve order of inputlist items in remove_list_duplicates() when case_sensitive is True
      use more elegant code to define single object in mpdcleitn3.py (whatah)
      lots of code cleanup; order album songs by track number in artist/album view
      revert cosmetic change to prevent any possible conflict
      add song path to info window
      setup.py update
      fix bug for songs without track numbers
      prarse track metadata for track number, since it can be of the form 'curr/tot'
      oops
      fix remove_list_duplicates()
      correctly unbold row when paused then another track is played
      don't allow DND on treeviews other than self.current
      keep root artist/album view contents in memory to increase responsiveness
      keep current song in bold even when stopped
      add 'album info' tab to info window; re-enable command_list_* but just for sorting
      fix bug that prevents editing tags when you've searched in artist/album view
      speed up actions if all artist/album view items are selected
      set threads as setDaemon(True) so that they will die when we call sys.exit()
      print info messages after arguments check so that they are not displayed if the user types, e.g., 'sonata status'
      show mpd stats in about dialog
      bold song on startup; simplifiy bold/unbold code further
      enable lyrics; save lyrics to file instead of always fetching remotely
      small changes
      allow editing tags from current playlist tab
      only use return_root shortcut in self.VIEW_FILESYSTEM
      don't save lyrics when they return 'not found'
      fix for tracks that have YYYY-MM-DD dates; hide 'edit' button if tagpy is not installed
      string freeze for translations
      update TODO
      update TODO
      oops, lyrics message was commented out
      fix tooltip/notification window position for dual-monitor setup (pygmy bug :p)
      use kfmclient to launch browser in kde
      fix kfmclient command
      add ukranian translation
      finally fix all notification window position issues with dual-head displays
      make sure notif window is  never above traymenu; correctly withdraw app on startup with gtk.StatusIcon
      don't show statusbar when starting in expanded mode; improve streaming parsing; keep song visible when going collapsed->expanded
      make song info window resizable, lyrics wrappable; put remote image error into window instead of separate dialog
      fix interface jumping when currsongline2 is blank; prevent playlist from scrolling back to top when streams are played
      save infowindow position and size
      holy problem with indentation batman
      small fix to playlist updating
      really fix interface jumping when currsongline2 is empty; prevent possible update_playlist errors
      prevent interface glitch with ctrl-up/down for expanding/collapsing
      update translations; fix bug when losing connection to mpd
      keep sonata responsive in certain situations
      retain position when removing items from current playlist and other tweaks
      bold bug
      bold bug 2
      don't show stream names in current playlist (side benefit of speeding things up a bit when there are multiple benefits)
      update ru.po, add ability to edit streams
      allow ctrl-w/ctrl-q to close infowindow and main app; prevent infowindow from reappearing if it's closed too quickly
      small usability improvements to gtk.StatusIcon
      prevent infowindow freezing
      fix for olpc's sugar ui (owen); make lyrics support optional
      small stuff
      updated pl translation
      reordering the current playlist via dnd no longer causes a refresh
      ready po files for translations
      allow Sonata to work with older version (0.90.1) of tagpy
      when an edited stream's name already exists, prevent it from being deleted
      hide notification window on click
      prevent error on install if user doesn't have permission to remove /usr/bin/mpdclient3.py
      updated translations
      gc.collect() fix?
      gc.collect() fix continued..
      add ellipses to notification window; don't duplicate filename in cursonglabel when song has no tags
      (un)withdraw info window on systemtray icon click
      attempt at gnome session management
      correctly reset artwork if no local artwork is found and option is set to Local Only
      ensure that lyrics stay synced even when a song's lyrics aren't found
      disable gnome session management (untested) for release; update last translation
      unwithdraw sonata if gtk.statusicon disappears; don't start sonata withdrawns if gtk.statusicon is not available; re-enable gnome session management (need gnome testers)
      allow searching ALL metadata in library; save last used option in library search
      oops, highlight comment field in red when text is changed
      patch for sugar environment (Owen Williams)
      Update code for dbus-python 0.80 API (Jordan)
      ensure buttons have images even if gtk+ themes specify otherwise (Jordan)
      another olpc fix (owen)
      add shuffle/repeat to cli arguments; show if mpd is updating in statusbar
      gnome session support confirmed to be working
      fix bug if mpd is not running and sonata starts hidden
      ellipsize currently playing song (patch by Jordan)
      make notification window scale with monitor width
      Cover art preferences: save to ~/.covers or in file's respective dir
      fix bug if setting artwork across filesystems (os.rename() -> shutil.move())
      fix sensitivity of artwork widgets in prefs
      fix custom filename for album art
      improve ellipsize hack
      improve ellipsize hack, take 2
      have song info window autoscale if user hasn't resized window
      resize cover art to fit song info window
      hacky workaround for gtk+ sensitivity bug (#56070)
      pad single-digit track numbers with 0
      <Ctrl>J for xmms-like search filter (vEX/Eduard)
      small fix for bold/unbolding rows while filter is open
      allow escaping out of playlist search filter
      nice speed increase when toggling open filter bar; fix for infrequent segmentation faults?
      add button for listing of shortcuts to About dialog
      include and use backup volume icons if user's icon theme doesn't have stock_volume-*
      implemented Various Artists logic to allow, e.g., setting cover art for the entire album
      add simplified chinese translation (desmond chang)
      speed up filtering by only searching current model if todo is a subset of self.prevtodo
      revert filter speed increase when len(todo) == 0; fix bolding/unbolding of rows
      when quitting filter, set_model in gobject.idle_add
      fix find-as-you-type in current playlist
      allow up/down arrows for moving selection while the filter entry has focus
      fix using the local/remote method of setting artwork for VA albums
      fix for having translatable strings such as hour/s, song/s, etc (beekeybee)
      cosmetic code cleanup
      ensure that self.songinfo exists when we call artist_for_album_name()
      prevent minor tracebacks when mpd is not running
      update po's for translators
      update po's for translators (remove filenames from translatable strings)
      remove strings that shouldn't be translated from po's
      link artist name in song info window to wikipedia
      link artist name in song info window to wikipedia (small update)
      also make album a link to wikipedia
      attempt to prevent right-click menus from closing right away for some users
      increase min width of notif window
      use wikipedia's Special:Search in links
      small improvements to filterbar
      small improvement to library searchbar too
      allow pressing escape to cancel the library search
      add website to svn
      cleaned up and translatable shortcuts dialog (dan mcgee)
      some code cleanup
      prevent crash from not calculating len(str) in unicode
      volume icon fix
      1.1 here we go OMG WTF ROFL - updated translations, website, minor updates to shortcuts listing
      fix issue with python 2.4 where a second instance of sonata wasn't properly prevented (Sebastian Kemper)
      ensure artist name is correctly reset for songs without album tags
      show info for current song even if mpd is not playing
      put song info inside gtk.ScrolledWindow
      improve handling under tiling WMs like ion3 where requests to be resize the window are overridden
      revert rvn 418
      ensure that we re-check for the artist if any songs are updated
      fix 'sonata pp'
      add swedish translation
      strip spaces in tagpy_set_tag and tagpy_get_tag; fix filename_is_for_current_song when self.single_img_in_dir is not None
      handle track numbers specified as '4,10', put code into sanitize_tracknum() function
      move update library menu item to second group, since it doesn't apply to selected tree items
      oops, small tracknum bugfix
      set_role() for each gtk.window (intrigeri patch)
      set_role() for each gtk.window cont'd (intrigeri patch)
      fix expanding/collapsing under beryl
      fix bugs when track isn't set; ready for 1.1.1 bugfix release
      website version 1.1.1 bump
      move self.window.present to idle_add to try to fix bug 11135
      initial audioscrobbler support (Owen); fix 'by album', 'by artist', etc for translations
      oops, would help to add audioscrobbler.py...
      just to be on the safe side
      hide statusbar in collapse mode when showing from systray
      fix multimedia keys on gnome 2.18
      rename playlists (requires mpd >= 0.13)
      slow down polling when mpd is stopped
      add spanish translation (Xoan Sampaiño)
      check for gnome mmkeys functionality before we import our own
      check for gnome mmkeys functionality before we import our own (small fix)
      remove version from .desktop file, update fedora website link (bug 11282)
      create needed dirs on the fly in case a user deletes one (bug 11241)
      fix gnome 2.18 mmkeys?
      cover artwork filename doesn't use system's locale charset
      improvements to audioscrobbler support; ensure lyrics filename has slashes stripped; update fedora dl link
      re-organize prefs
      better handling if python-soappy not found
      better handling if taglib/tagpy not found
      prevent future searching for artwork (remote and local) if cover art isn't found the first time
      print any socket connection errors
      use show_error_msg def; set password from MPD_HOST var
      allow resetting artwork to the default image
      also remove ~/.covers/ image on reset
      'save all' button for tag editing window
      support for multiple profiles (and, e.g., 'sonata --profile=2')
      bugfix for parse_formatting_for_substring() (vEX)
      if lyrics not found, don't retry over and over
      revamp po handling; add fi translation (lkka Tuohela)
      update TRANSLATORS to new po path
      search for additional artwork filenames
      prevent vertical resizing of app in collapsed view
      MPD status in systray icon
      setup.py improvements
      better ensure sonata catches mpd update after tag editing; use command_list for path-specific updates; bugfixe for editwindow canceling; ensure self.musicdir always has a trailing slash
      connect to mpd in thread (where possible) to prevent gui blocking; prevent egg deprecation warning; always show profilesmenu, even with one profile
      support for specifying lyrics search terms
      fix song info window when no artist/title tag set
      update systray pixmaps
      update messages.po
      prevent 'random' album art with untagged songs
      escape filter text in order to correctly find songs with, e.g., & in them
      python-elementtree not needed for audioscrobbler support if python 2.5 installed
      messages.po; ready for translations
      po's, etc
      sorry Ilkka ;-)
      update po's
      ru po
      update connection radio button on alt-C and alt-D
      updated website; readying for 1.2 release
      fix MPD password error; ready for 1.2.1 release
      attempt to fix mpd socket timeout problem
      don't delete dest filename if dest filename and selected filename are identical
      simplified way.. (and prevent similar issue on dnd)
      fix the connection issue where the user tries to run a sonata argument without having loaded the sonata>=1.2 interface a single time
      just to be safe
      don't load gnome-settings-daemon if it's not running
      fix artwork fetching (stupid amazon)
      bump for 1.2.2 release
      update pl and fr translations
      small interface improvements + patch (wide-eye)
      add italian po (Gianni 'moonwalker' Vialetto)
      use gettext plural forms where applicable
      ensure that shuffle mode starts a random song even after a replace
      oops, more ngettext'ed strings
      revert code that sets sonata with a fixed height in collapsed view due to breakage in some WMs like fluxbox
      fix sv translation, add cz translation
      incorporate disc tag in album sorting (Emmanuel Viaud)
      also check for disc tags of type A/B and A,B
      reduce updating of gtk widgets (should do this for song info window too..)
      update fr.po and add update-po script, both thanks to mike massonnet
      further reduce gtk updating when song info window is open
      owen patch
      add nl translation (olivier)
      nl.po now builds correctly, added to setup
      update it.po
      add stream name as a formatting option
      move save all button so it's not off the window for some locales
      allow update library menu item even when library is empty
      update pl.po
      default cover remains after refetching when not using .covers dir
      foo
      sigh.. this stupid code reduced our chance of fetching artwork since we would tend never to get past the first search.
      ready for 1.2.3 release
      update website
      use different accelerator key for cover art in song info window (bug 11857)
      fix nl.po causing crash
      remember playlist position when adding from library (bug #11862)
      use case insensitive sorting for library; ignore the when sorting library in artist/album views (holy_robot)
      update license to GPLv3
      allow saving/overwriting a playlist (fr #3732)
      fix ellipsizing text for 2nd line of song notif window
      better error msg if file not found when trying to edit song tags
      fix using password in MPD_HOST
      fix desktop file to match current XDG standard; partial fix for encoding issues?
      merge sanitize_tracknum() and sanitize_discnum() to sanitize_mpdtag()
      better logic for sorting playlists and new dir+file option (sed)
      prevent crash in populate_profiles_for_menu() with gtk2 2.12 and pygtk 2.12
      allow using columns in the current playlist (xsdnyd)
      add hidden setting to hide column headers when there are multiple columns
      stupid tabs.. and better logic
      spaces -> tabs (Owen)
      include tracks without tags in search (Owen)
      if playlist is one column, make sure it's autosized
      if the user cancels out of the edit window early, only run mpd update on the edited songs
      column_autosize() produces horiz scrollbar if there's a vertical scrollbar, so use this method instead
      prevent flakey behavior with stick/ontop when withdrawing and unwithdrawing
      allow clicking on column headers to sort playlist
      hide header indicators on playlist dnd
      fix ctrl-j for multiple columns in playlist
      upon prefs window close, only try to connect to mpd if connection info has changed
      no more ctrl-j; custom search filter is now the default
      prevent spaces (and returns?) from opening the filterbar; send page up/down events to the list when the filterbar is open
      allow overwriting streams; don't show 'edit' menu item when no streams are selected
      fixed encoding issues?
      prevent browsing to the parent dir in the library when the user has searched
      correctly sanitize disc and track nums (thanks intrigeri)
      oops.. better sanitizing
      fix sorting in browse_search_album and browse_search_album_with_artist_and_year
      fix sorting in browse_search_album and browse_search_album_with_artist_and_year take 2
      ensure that we only filter once on first character trigger; ignore bold and case sensitivity when sorting from a column header click
      prevent hourglass when clicking on column headers with an empty playlist
      initial playlist queue support (requires mpd-svn)
      fix for mpd < 0.14
      shortcut for editing tags, adding to queue, removing from queue; better/smoother handling of queue when filtering playlist; only wait for trayicon to appear on startup if starting hidden (faster startup)
      prevent horiz scrollbar from appearing on sonata load if it wasn't there when we exited
      better column sorting for song lengths
      better logic for handling horiz scrollbar
      ctrl-i to vertically center current playing song
      hidden config option to set browser
      approaching 1.3 release.. ready for translators
      fix bolding of songs w/queue
      fix song length sorting logic when the format is, e.g., [%L]
      amazon doesn't work with utf8; use latin1 encoding instead
      make sure that sanitize_mpdtag always returns a number (regardless of type int or str)
      fix possible tag editing issues w/non-latin encoding (requires tagpy 0.93)
      why self.choose_dialog instead of choose_dialog fixes assertion errors with newer gtk/pygtk is beyond me; also improved the text vs pixbuf handling for remote cover window
      disconnect treeview model when removing items for speed increase; use command_list when adding songs to playlist; retain view right away rather than in idle_add so that tree view is immediately retained
      small potential sorting speed increase
      eh, revert this, it won't work because of shifted positions
      pt_BR.po (Alex)
      pt_BR.po (Alex) - add the po this time :-P
      update po files; add danish po file; switch from soappy to its predecessor ZSI
      prevent lyrics traceback when lyrics are enabled and no song is playing
      update fr.po
      it.po
      sonata man page; updated website screenshots
      zh_CN.po
      it.po; 1.3 here we come
      fix manpage path (damn you Archlinux)
      make some strings translatable, fix some mnemonics
      allow hiding progress bar
      pl.po
      shortcut to search library
      shortcut to display song info window (f2)
      retain library path on client restart; remove duplicate variable left over from pygmy days..
      nothing
      bugfix: Filter + Edit Tags edits another song than selected
      bugfix: {} displayed in the Current column title
      prevent crash on negative disc/track numbers
      correctly retain library path when in artist view
      merge button_press code; prevent possible filtering crash; retain treeview position on filtered item removal
      prevent audioscrobbler traceback with slow connections
      fix selection problem introduced in rvn 595
      fix non-ascii chars in format strings
      ensure progress bar is always 0<=x<=1 (not sure how it occassionally isn't..)
      if '/' key pressed, show filter but don't put char into text entry
      display error when lyric fetching fails
      Right-click menu can cause accidental actions with some gtk themes
      allow up/down to change volume scale; only update default cover img when it isn't already the visible image
      prevent exception if we create_art_location_none_file() without first creating a .covers dir
      allow screen center for notification popup
      show days in statusbar/about if >24 hours
      vertically center playing song by default
      allow MPD_HOST/PORT to override GUI
      don't do fallback search on just album; it's rarely correct and causes confusion
      display previously fetched lyrics even if zsi is not installed
      save library state more often in case app is killed, etc
      allow saving lyrics to music file's dir
      integrate info window into main player; allow repositioning notebook tabs (hiding to come...); ensure user has a compatible version of zsi; only show save all button in edit window when multiple songs selected; add volume button tooltip
      add be at latin.po (Ihar Hrachyshka)
      prevent lyrics traceback on failed connection
      small improvement to logic for determining Various Artists
      improve main expander tooltip (helpful when text is ellipsized)
      remove hard-coded larger artwork size
      switch to info tab on cover art left-click
      set default tags without extra info; fix size of artist/album
      use gtk theme's link-color if available, otherwise default to blue.. requires gtk 2.12 to retrieve the link-color
      allow hiding tabs via right-click; ensure that artist/album markup labels on info tab have text escaped
      bind alt-# shortcuts to visible tabs; clean up func names
      prevent traceback on mpd disconnect
      remove 'remote only' and 'remote, then local' art options due to confusion and, most likely, its infrequent use
      alt-r shortcut to randomize current playlist
      prevent traceback when using ctrl-r on current/info tabs
      restrict right-click menu for hiding/showing tabs to the tab widgets themselves
      allow adding songs to existing playlists; fix annoying playlist/profile bugs with ampersands; add playlist commands to mpdclient3.py
      try to prevent horiz scrollbar in info window by resizing window in notebook's size-allocate callback
      oops, uncomment exception code in set_image_for_cover
      might as well disable horiz scrollbar too
      in artist view, don't show 0000 for albums without years specified and put them last
      remove playlist_files_unchanged(); only retrieve track format if we're going to display it during a playlist update; only update statusbar text if text changes
      initial artwork revamp (thanks Adrian Chromenko)
      add artist url
      ugh.. only increment self.view_artist_level on a dir click, not a file click. otherwise sonata could get stuck in an infinite loop on startup
      add some comments
      fix crash when statusbar is disabled
      don't show '00' for missing track in info window; don't allow clicking on larger album cover when artwork is not displayed
      force sonata to iterate after sorting for a small potential speedup
      fix audioscrobbler caching; don't fire scrobbler_post() on current song's position change, etc
      updated systray icons, make scalable for larger notification areas; fix traceback when disconnecting because of previous commit
      use label instead of textview for lyrics to prevent different theme colors
      don't hide song tags on larger info window artwork
      make eggtray icon scalable too
      hello 2008
      update to audioscrobble protocol 1.2 (with mveers help); clean up code and fix some edge cases
      print song names, etc, when posting/np'ing; fix order of info sent to nowplaying(); remove try/except and check if self.scrob_post exists
      clean up printing; sonata doesn't need to check if the song is 30 seconds before posting, audioscrobbler.py handles this itself
      cache audioscrobbles across client restarts
      quote artist/album for lyricwiki, fixes retrieving some non-english lyrics
      only use self.ART_LOCATION_NONE if the user explicitly resets the artwork, not if we can't find the artwork
      don't save 'not found' lyrics status.. too ugly if there is a bug somewhere that prevents lyrics from being fetched
      update logo
      ready po's for translations
      updated nl, pl, be po files
      prevent a user from typing into the entries while 'save all' events are happening
      ipv6 support for mpd connection (shane kerr)
      ensure we only np() tracks that have the appropriate song info; fix tabs/spaces
      a number of subtle interface improvements
      better way of keeping track of tab positions
      bump to 1.4
      fr.po
      fix commandline arguments
      cs, da, zh_CN po's
      website bump
      prevent crash with libegg when system tray icon is disabled
      use hand2 for song info links
      prevent possible traceback when enabling audioscrobbler
      fix text background color on tabs (ecik)
      can't click (more) in non-english locales
      add missing text, fix second/seconds handling for translations
      update po files
      disable tag editing link in info tab for streams/remote files
      unescape_html() lyrics after fetching
      enable formatting in lyrics (e.g. <b> or ''' for bold)
      add some error handling in case the formatted lyrics isn't proper html markup
      add album info back in; prevent album/lyrics for creating a horiz scrollbar
      clean up play_on_activate code; only try to sort list if there are items in it
      remove queue feature (removed from mpd, complain there
      bump version, update po's
      nl, pl, be po's
      fr, zh_CN po's
      improve ctrl-t shortcut; some code cleanup; cs.po
      improved re-ordering of playlist songs (including multiple selected songs) - it's now similar to the way thunar handles it
      set main notebook scrollable; support for alpha transparency if the gtk theme supports it
      prevent harmless tracebacks if, e.g., you click on current but not on an item
      da, sv.po
      revert alpha transparency support, revisit for a future release
      use set_visible_window(False) for all eventboxes
      add %D for disc number in format options
      fix parantheses for translatable edit tag string
      document %D in format text
      some improvements to the column names when using disc/track #
      fix seeking in progress bar
      fix left color in notif window
      update changelog
      fix desktop file
      fix arrows in gtknotebook due to gtk bug
      fix potential sorting issue via column heading due to removal of the queue column
      prevent column widths from collapsing when we exit sonata while withdrawn - we can't simply save the current col.get_width()'s since they are unavailable in this situation, so we'll store them right before withdrawing the window
      better handling when no read permission (bad or missing password)
      prevent info from reloading on tab click; prevent info tab from showing text focus; backport & in album info fix; bump to 1.4.2
      replace album view for library with genre view; display covers for albums in artist/genre views; retain selection in lists after removing items
      hidden config option to expand notebook tabs
      make sure we only restrict search results to the specified genre in certain situations (not when, e.g., determining album info for the info tab)
      fix album covers when type returned from check_for_local_images() is 0
      fix missing song title in artist/genre views
      fix missing songdir def if type is MISC or SINGLE
      fix artwork for artists/albums with '/' in them
      fix showing album covers in artist/genre view for covers in file's dir; small cleanup
      small bugfix; remove print debug statement
      switch back to last tab on second cover art click
      prevent possible strange covers in treeview if song is in root dir
      enable ctrl-clicking to toggle items in current playlist
      i'm an idiot
      add 'Untagged' item in genres list
      revert to root of library view on selection even if we're already in that view
      add 'Untagged' item in artists list
      fix egg trayicon when vertical systemtray
      hierarchy change; start of broken out files
      add sonata.py
      sonata dir
      rm .pyc
      prevent harmless warning when trying to select a row that doesn't exist
      fix on_browse_row when path is None
      fix sensitivity of widgets in prefs
      allow dnd of cover art from a browser (Артем)
      when looking for local artwork, give precedence to any image found using the user's specified self.art_location
      add menu items and shortcuts for playing library items after add/replace
      put 'play after' items in submenu; fix bug
      fix prefs bug
      oh, add img.py
      lots of renaming; default to file's dir for setting local images only if self.art_location is not homedirs
      some cleanup; untagged artists/genres is now twice as fast as before (albeit still slowish) by removing a test call in library_browse_verify
      stylized album art (Aidan)
      add case.png
      escape the regex match to prevent errors with special chars (e.g. '[' or '(')
      separate systemtray code from main
      allow dnd of files/dirs in music_dir from a file manager into the playlist
      prevent failure to load if tab positions are saved as None
      fix art_location_single
      make stylized art optional
      overlay case on scaled pix, not original pix, for stylized artwork
      slightly improved case.png
      ui.combo, ui.comboentry
      new blank cds from aidan; give local images preference over sys.prefix for running from source
      update album art in library appropriately on changes
      fix return_album_items_with_artist_and_year() when a year is specified
      fix browser_load; correct menu item names
      more robust amazon xml parsing (requires python 2.5 or python-elementtree)
      correctly accommodate files with 'untagged' tags; return 'no album info' if no other songs in this album
      allow setting artwork for streams
      prevent image in info tab from being cutoff (so weird)
      fix artwork regression when stopping
      clean up remote art expander a bit
      preserve column width percentages across window resizing
      some simplification of column resizing; gtk+ bug 517345 pending...
      work around gtk+ bug
      prevent looking for a -.jpg file
      update fi.po (hiletuohela)
      fix col width percentages from getting slightly off
      speed up mpd-related cli args by skipping importing modules where possible
      small bugfix(es)
      new, faster, python mpd interface from jat; fix .covers dir regression; escape html in lyrics
      add et.po
      use mpdh functions to ensure we only return 1st item of a list for, e.g., a song's genres; fix sonata for python 2.4; prevent aborting if sonatarc is not found; prevent exception on bad mpd connection
      update et.po
      upstream python-mpd fix for update() in a command_list - prevents an error when, e.g., editing multiple songs
      fix saving/renaming playlists (previous mpd interface was more lax about removing a non-existant playlist)
      --popup argument to show popup notification (oleg)
      small bugfixes for notif window; update man page
      prevent gtk warning if systray disabled and song notif enabled
      update readme
      es.po
      fix non-ascii chars for non-utf8 locales; lazy load certain modules to reduce memory
      resize info labels when setting artwork
      prevent horiz scrollbar with raleigh gtk theme
      further improvements for non-utf8 filesystems
      prevent crash with certain locales like turkish (jat)
      improve amazon searching by first using artist/title (thanks qball)
      only show update menu item if connected to mpd
      prevent traceback upon update call if mpd is already updating
      update translations
      update TODO
      translation related update
      sv, be, misc
      et, pl.po
      ensure we disconnect from mpd as appropriate
      fr, zh_CN.po
      oops, shouldn't delete mpd.py yet
      improve retaining current playlist treeview visible rectange with respect to filter; cs.po
      da.po
      next/prev tab shortcuts (pento)
      fix AudioScrobblerQuery (kigurai)
      fix multimedia keys for gnome 2.22
      fix for mmkeys on gnome < 2.22 ?
      use ServiceProxy cachedir argument
      ready for 1.5 release; depend on python-mpd >= 0.2
      improve mpd connection with python-mpd; show error msg if can't connect
      improve artwork searching for genre/artist library views; update website
      play random song in on_add_item() when in shuffle mode
      update es.po
      swap shuffle and random; fix possible traceback with gobject.filename_from_utf8
      document alt-left and alt-right
      fix play/pause with multimedia keys (vinay)
      ca.po (Franc) and ar.po (Ahmad)
      fix random & repeat commands from console
      Songs not tagged with the album name don't show off
      allow connect/disconnect when using MPD_HOST/PORT; fix mnemonic usage when profile names with underscores
      allow option to replace playlists or append songs when doing 'save list to'>'foo'
      fix toggle argument
      fix number formats within brackets
      update po files for translation
      update pos
      update pos
      1.5.1
      update de.po
      fix artwork display in song notification window for RTL languages
      fix untranslatable message
      fix artwork for files with unicode chars
      fix crash if mpd library is empty
      improved artwork/lyric caching through case insensitive searching
      prevent dbus from being required (doh); tr.po
      fix tr credit
      ensure self.eggtrayheight is set even if there is no self.eggtrayfile yet
      oops, add tr.po; nl.po update
      ensure path in file_exists_insensitive exists
      update ru.po
      fix progressbar for rtl langs
      fix bold titles if song changes with filterbar visible
      ensure we scrobble if same song is repeated
      fix when sugar (olpc) is installed but not running
      bump for 1.5.2
      Fix non-ascii characters when scrobbling with non-utf8 locale
      fix traceback when certain error msgs are supposed to be displayed
      don't put artist-title to lyrics (which gets stripped on subsequent loads anyway)
      re-center playlist after exiting searchfilter
      update zh_CN.po
      oops, revert
      update fi.po
      update et.po
      add greek po
      fix song selection on double-click
      use consistent behavior for titlebar
      prevent bad image files from causing problems
      don't sort library search results
      unicode lyrics and better lyric searching with lyricwiki (by capitalizing first letter of each word)
      Fix lost connection when hard drive is spun down
      ensure filenames are escaped in search routine
      store audioscrobbler password as md5 hash
      quick link to edit lyrics in lyricwiki
      readying for 1.5.3 release
      website bump for 1.5.3
      fix bad profile num preventing sonata from starting
      more fixes for bad profile in config
      real-time searching of library
      fix when escaping from library search results in duplicated list of dirs; select first item in treeview on search change
      prevent updating treeview if library search results haven't changed
      prevent flashing when doing library search (why do this work? no idea..); remove self.songs, first step toward using plchanges
      finish using plchanges for faster performance of some actions (e.g. add song to playlist); revert removal of self.songs since i figured out how to continue using it (helps speed up operations like delete and DND)
      library searching now consistent with playlist filtering; reduce mpd calls when library searching; some library searching bugfixes
      prevent duplicate results when searching 'everything'
      prevent doing multiple mpd updates at the same time
      ensure column indicator always shows on a column heading click, even if nothing is sorted
      allow dnd to copy from sonata to a file manager (kamil)
      add a small check to the DND
      fix updating current playlist during format change in prefs (broke with plchanges implementation)
      escape non-ascii chars for dnd to file managers (kamil patch)
      update todo
      show file path in tooltip for library search results; deprecate gtk.tooltips and use gtk.tooltip instead; change use of obsolete <> to != (tuukka patch)
      add to Base.__init__ the attributes that pychecker found were defined elsewhere (tuukka patch)
      fullscreen artwork mode via right-click, initial commit (mips patch)
      add F11 fullscreen shortcut to help, allow f11 to close fullscreen too
      bump TODO
      make the process name 'sonata' on linux
      follow artwork style preference for fullscreen artwork
      whitespace fixes
      some cleanup based on pychecker
      fix bug with cli args when sonata can't connect to mpd
      set fixed height for current treeview
      Only minimize to tray on trayicon click if focused; raise if not focused
      require python 2.5, remove old python 2.4 code, switch from deprecated md5 module to hashlib, bump requirements in README
      fix dnd from a file manager
      ability to add local file outside mpd library to playlist via file manager drag-n-drop. currently won't work because python-mpd needs to add support for unix socket paths for the mpd connection, but the code is there.
      add error handling to all mpd calls; better blanking of interface when disconnected
      show fullscreen mode menu item even when not playing or when song has no tags
      oops, lost a line that broke tag editing for year/track
      fix python version check, 2.5 is apparently different than 2.6
      just use 0 byte file for artwork that has been reset, rather than getting fancy with LOCATION_NONE stuff
      use new listplaylists command if possible, as lsinfo is being deprecated for retrieving playlists. patch to python-mpd sent to support this.
      drop old [format] section from config
      remove buggy column resizing
      add playlist icons in menu; suppress listplaylists error
      add dbus-python as optional dep for multimedia keys and single instance support
      break out consts, config, and preferences modules, thanks to tuukka
      some unicode fixes (patch from tuukka), additional info for albums/artists/genres, start of work on album mode
      add album mode back; cache top level of all library modes for quicker response; additional details for modes
      use search instead of listallinfo wherever possible, since search can return results for songs with no tags; rename some functions; split up self.library_browse()
      merge self.library_browse_artist_albums() and self.library_browse_albums(); simplify self.library_get_path_child_filenames() somewhat
      use proper translatable strings
      fix time calc for VA albums in album mode; hide playlist songs/time in statusbar if no songs
      break off tagedit module (tuukkah patch)
      fix traytips initialization and cleanup (tuukkah)
      testtest
      rmtest
      fix clicking on artwork in info tab to enlarge
      merge library_browse_albums_songs with library_browse_artist_album_songs; some improvements to album view
      fix sonata commands from cli
      fix library searching and current playlist filtering
      refactored code for library views
      modify config for new lib info
      modify config for new lib info, take 2
      don't save delim in config
      add untagged rows back in lib views; some cleanup
      correctly show, e.g., untagged artists/albums within untagged genres, etc., so that the displayed count matches the items listed
      oops, accidentally reverted lower_no_the change
      rm debug print
      correctly order albums and tracks; only short artists in a genre with >0 songs
      fix initialization of self.wd, small config cleanup
      traverse up lib hierarchy if browsing where files moved or tags changed; remove old lib album artwork routine, to be replaced with a btter and more general one across all lib modes; remove self.lib_level, no longer needed; prevent untagged searching when no other search results based on criteria; prevent library_return_list_items results unless all criteria is met
      small fix for handling untagged albums
      clean up artwork search locations preference
      small addt'l refactoring to artwork module
      better fix for VA & untagged items
      allow showing path in tag editing window
      fix lib bug when reconnecting
      better prevent possibility of deleting artwork; update albums in library in separate thread, including fetching of new remote artwork
      fix self.searchtext references in main.py; replace has_key() with 'in' for py3k
      prevent gtk warning for set_cursor when treeview empty
      fix column width comparison
      fix deleting comment tag
      fix resetting image when not using ~/.covers path
      fix sorting for tag editing order, so that filenames are a last resort
      fix unicode-related bug that prevented certain albums from showing up in album view. i wish i could remember what the original code was meant to fix..
      prevent 'untagged' from being displayed in album view
      merge code to show songs in genre/artist/album views
      update audioscrobbling client name
      fix setting column widths in current
      misc fixes found by tuukkah/pychecker
      clean up console output when audioscrobbler has connection issues
      update es.po
      fix updating of artwork cache for library
      Remove useless return statements (Stephen Boyd patch)
      default to updating selected path(s) in library, not entire library; ensure interface updated after tag editing
      store filenames, not pixbufs, for artwork cache; fix harmless true->True; remove debugging print
      add sk.po; find all *.py files for update-po script
      Use os.path.basename instead of string splitting (Stephen Boyd patch)
      Replace & with & in genres (Stephen Boyd patch)
      Replace multiple tag() calls with one call (Stephen Boyd patch)
      Use regular expressions for year/track constraints (Stephen Boyd patch)
      correctly initialize filename in _library_artwork_update, which could cause wrong album image from displaying; some art cache re-organization; start of code to update treeview when artwork set for current song
      wrap .lower() calls with unicode
      move mpd_major_version() to mpdhelper
      uncomment mpd_major_version
      update library art for currently playing song; pop cache filename if not found
      prevent possible traceback in album_return_artist_name
      typo
      better position systray right-click menu (cfreak201 patch)
      update el_GR.po
      fix clearing ui when removing all items in current tab
      suppress warnings with cli args and mpd disconnected; fix traceback if certain cli args passed and mpd disconnected
      save artwork cache across sessions; prevent artwork traceback if no artist/album
      also clear remote queue when navigating treeview
      default to a 2-column view for a new user
      fix path in tooltip for library search results
      set 2-column widths for new user
      disconnect before attempting to connect to a profile
      fix removal of excess songs in current_update
      add build script
      don't create fullscreen pixbuf unless we're in fullscreen mode
      add currently playing song text to fullscreen mode
      update sv.po
      put back % characters in prefs windows
      ensure unique hotkeys in tray menu popup
      add traditional chinese translation (b4283)
      updated finnish translation
      updated zh_TW.po
      fix library artwork bug when enlarging/shrinking image in info tab
      update et.po
      only show Untagged in artist/album modes if num matches > 0
      in library, show only untagged files outside of an artist's albums for mpd<0.14
      rm debug lines
      simple mockup of plugins tab in prefs window
      fix connecting checkbox to treemodel in plugins mockup; add default icon placeholder
      use gtk.aboutdialog for plugins
      #4444 added 'last.fm' text to prefs option; #4463 look for <artist> - <title>.txt files for lyrics compatability with other clients
      fix tooltip from permanently disappearing when you hover over a blank row in a library search
      store lib data as tuple in tree model, not string; remove LIB_DELIM and NODATA from consts.py
      remove small vbox padding in library tab
      in library_return_search_items, prevent 'foobar' results when searching for 'foo'
      when searching 'everything' in library, fix filtering across meta tags; retain search view after editing tracks in lib search
      ensure mpd 'list' call returns a list; on_library_search_combo_change() changes that got lost in the last commit
      ensure statusbar properly displays if sonata opened while collapsed and then expanded
      use mpdh.get() to ensure we return the 1st item when multiple of a tag
      show albums without artists in album view for mpd < 0.14
      fix blank comment regression for editing tags (stephen boyd patch)
      allow manually fetching remote artwork even when local artwork preference is used (Erik)
      fix remove_list_duplicates for case sensitive comparisons
      add update 'selected items' menu item (ctrl-u) that updates selected items or, if nothing selected, the current view; add update 'entire library' menu item (ctrl-shift-u) for full update; workaround for mpd 0.14 limit of <=32 update paths within a command_list
      sort library search results
      some library tab changes, cleanup, etc.
      speed up album view by delaying setting artwork
      when search combo changes, only update interface if in the middle of searching
      update downloads list on website
      show correct album tracks in info tab for VA albums
      add japanese translation (Masato)
      man page fix (nijel)
      swap mousewheel behavior for progressbar, for consistency with other apps
      if app launched while in collapsed/withdrawn state, ensure we display first tab when expanded/unwithdrawn
      allow hiding the window's titlebar via preferences
      update streams tab when connected to mpd
      remove order specificity of library searching
      add slovenian translation (Alan)
      update zh_TW credit
      Fix bug where minimize checkbox would be disabled forever (Stephen Boyd)
      Preferences code cleanup (Stephen Boyd)
      Handle toggle callbacks more generically (Stephen Boyd)
      Use *args where widgets don't matter (Stephen Boyd)
      Only pass the scrobbler object to on_prefs_real (Stephen Boyd)
      Use a callback for simple config settings (Stephen Boyd)
      remember preferences' last open tab (but not across sessions)
      fix tabs' right-click popup menu from instantly closing
      show page name in website title
      Remove crossfade setting from response event (Stephen Boyd)
      Use a SpinButton for port entry in profiles tab (Stephen Boyd)
      Use a FileChooserButton for music dir entry in profiles tab (Stephen Boyd)
      MPD tab HIG compliant (Stephen Boyd)
      Behavior tab HIG compliant (Stephen Boyd)
      Format tab HIG compliant (Stephen Boyd)
      Display tab HIG compliant (Stephen Boyd)
      Extras tab HIG compliant (Stephen Boyd)
      Add access keys to Preferences window entry fields (Stephen Boyd)
      Remove Enable prefix from Preferences checkboxes (Stephen Boyd)
      temporarily disable plugins for upcoming release
      fix error msg if no suitable web browser found
      replace '../file_path' with 'SONG_DIR' for art/lyrics prefs
      some code cleanup based on pychecker output
      Fix a withdrawn startup race condition. notebook_show_first_tab could be uninitialized before the first iterate() tries to access it. (Stephen Boyd)
      remove ui/gtk modules dependency from misc.py
      update po files
      update ar fr et pl ca da de sv ja fi po's
      fix bug where streams with '&' in them couldn't be edited (Stephen Boyd)
      fixes to fullscreen artwork mode
      fix a bug when sanitize_musicdir() is passed None
      update es zh_CN po's
      cs.po
      prevent repeating images in remote art window
      ensure 2 columns in remote art window in gtk 2.16
      update files for pending release, add Tuukka to credits
      oops, forgot actual change in r1133
      update website for 1.6
      prevent traceback if song has multiple date tags
      fix togglebutton underline for breadcrumb buttons
      small refinements to breadcrumbs (spacing, focus)
      breadcrumbs: show only album button in albums mode, show album artwork for albums, reduce button height, etc
      bold current breadcrumb button a la gtk open dialog and thunar
      fix library search
      escape all togglebutton text
      version check: replace platform.python_version_tuple(), which can return strings like '1+', with sys.version_info, which always returns ints for major, minor, micro
      breadcrumbs: use RELIEF_NONE for buttons; use gtk stock icons in lieu of scaled pixbufs where possible
      use smaller icons for filesystem library view
      update ru.po, el_GR.po
      update fr.po
      fix fr.po
      update zh_TW.po
      update zh_TW.po; remove outdated messages.po; add Stephen Boyd to dev list :-)
      disable breadcrumbs/plugins for 1.6.1 release
      ready for 1.6.1 release
      generate messages.po from update-po script
      re-enable breadcrumbs/plugins
      remove iterate_now arg from streams; clarify exception in main.py
      update sl.po
      ready for 1.6.2 release: disable plugins/breadcrumbs, add sboyd to about dialog dev list, update website, etc.
      fix library sorting when adding, e.g., albums to playlist
      Fix window positioning weirdness when unwithdrawing from systray
      Continue to rescan for local artwork if we are displaying the default album image, in case the user has added a local image since we first scanned
      always use unicode when dealing with artwork. this will ensure that certain characters don't cause us to continually refetch artwork in some circumstances.
      use album art style appropriately in library treeview; update style in library treeview when art style changed in prefs
      fix bug #15722: library icons change after adding stream to playlist
      update it.po
      fix cpu spike, tooltips missing in library search results with gtk 2.16.2
      better accommodate artwork for multiple albums with same name
      fix library sorting when adding, e.g., albums to playlist
      Fix window positioning weirdness when unwithdrawing from systray
      use album art style appropriately in library treeview; update style in library treeview when art style changed in prefs
      fix bug #15722: library icons change after adding stream to playlist
      fix cpu spike, tooltips missing in library search results with gtk 2.16.2

Simon McVittie (1):
      Imported Upstream version 1.7~b1

Stas Komashko (2):
      i18n: update uk translation
      i18n: update ru translation

Stephen Boyd (100):
      Correct tab indent and shorten if else to 1 line
      Refactor populate_profiles_for_menu to make it more pythonic
      Refactor list operations to be more pythonic
      Refactor Config to be more pythonic with getattr/enumerate
      Detect ZSI correctly without relying on exceptions
      Use ListStore python iterator support
      Preferences: format entries apply after losing focus
      Preferences: add focus cycle to format entries
      Preferences: behavior toggle buttons apply instantly
      Preferences: xmms-file entry applies after losing focus
      Preferences: refactor tab creation into separate functions
      Preferences: remove redundant prefixes
      Preferences: remove y=0 from labels
      Preferences: refactor callbacks into separate classes
      Preferences: don't pass anything but callbacks to tab functions
      Preferences: move static main callbacks out of on_prefs_real
      on_prefs_real: Don't need to init audioscrobbler again
      Preferences: construct tabs in a dispatcher style using getattr
      Preferences: move prefs_window_response into Preferences class
      Fix bug where '{' at the end of a format string causes an infinite loop
      Preferences: Fix bug where direntry would select the wrong directory
      Info: Use setattr instead of using if else statements
      Use os.path.join() when joining musicdir with another path
      Micro-optimize sanitize_musicdir()
      Use string substitutions instead of string concatenations
      Use pkg_resources instead of __file__ information
      Preferences: Remove duplicated line
      Revert "Use pkg_resources instead of __file__ information"
      ui: Remove debug print statement
      Strings: Add colons to translated strings
      Fix a bug where preferences window loses focus when toggling decorations
      library: Fix bug where an album is wrongly labeled as a VA album
      Revert "library: Fix bug where an album is wrongly labeled as a VA album"
      library: Fix a bug where a duplicated album is labeled various artists
      mpdhelper: Merge getnum() behavior into get()
      Replace int(mpdh.get()) with mpdh.get() with return_int arg set to True
      mpdhelper: Fix traceback in _sanitize()
      info: Sort track listing of an album to fix occasional unorderedness
      formatting: make parse_substrings() more pythonic
      formatting: make parse_colnames() more pythonic
      formatting: Push wintitle and songpos into format functions
      info: Fix a bug where songs with no date tag are missing from album
      main.py: compare to None with "is" not "=="
      cli: migrate to optparse API
      cli: execute_cmd() refactoring and minor fixups
      mpdhelper: fix _sanitize() with zero-length strings
      main: minor refactorings
      main: Use a gtk.VolumeButton instead of a custom one
      main: Set preferences callbacks once
      info: minor refactorings and style cleanups
      info: refactor target_lyrics_filename()
      info: refactor info_update()
      info: remove info_ prefix from helper functions and members
      info: don't store callbacks that are only used locally
      info: use a dict instead of a list of types to labels
      info: split up update()
      info::widgets_initialize() use a table instead of hboxes
      info: add toggle_more() to set more button text
      info: split up widgets_initialize()
      playlists: appending and replacing of playlists from the library
      info: don't expand labels when album is large
      info: don't crash when a stream has no tracks
      library: Fix a bug where a duplicated album is labeled various artists
      info: Sort track listing of an album to fix occasional unorderedness
      info: Fix a bug where songs with no date tag are missing from album
      info: workaround removal of lyricwiki web API
      album-covers: replace amazon.com with rhapsody.com cover fetching
      Sonata 1.6.2.1
      album-covers: replace amazon.com with rhapsody.com cover fetching
      Merge branch 'th/lyricwiki-scrape'
      Merge branch 'sb/rhapsody'
      Merge branch 'maint-1.6.2'
      info: fix some merge issues
      version: migrate to git version generation
      add a .gitignore
      remove website from master
      Merge branch 'sb/git-version' into HEAD
      main: fix centering of current song in current playlist
      Merge branch 'maint-1.6.2'
      rhapsody: download big artwork when requesting single image
      Merge branch 'wb/lyricwiki-redirect' into maint-1.6.2
      Merge branch 'sb/big-artwork-first' into maint-1.6.2
      Merge branch 'maint-1.6.2'
      Merge branch 'jm/fix-scrobbler' into maint-1.6.2
      main: make ctrl-w withdraw app when withdraw app config set
      Merge branch 'sb/withdraw-on-ctrl-w' into maint-1.6.2
      setup: generate mo files better
      translations: update TRANSLATORS file and remove messages.po
      POTFILES: only include files with actual translatable strings
      Merge branch 'sb/translation-cleanup' into maint-1.6.2
      Merge branch 'rh/sk-po-update' into maint-1.6.2
      Merge branch 'jb/ko-translation' into maint-1.6.2
      Merge branch 'maint-1.6.2'
      setup: remove genversion.pyc too
      Fix crashes when files cannot be opened for reading/writing
      Merge branch 'sb/read-only-home' into maint-1.6.2
      Merge branch 'maint-1.6.2'
      library: don't list albums with multiple discs multiple times
      Merge branch 'sb/album-multiple-discs' into maint-1.6.2
      Merge branch 'maint-1.6.2'

Tuukka Hastrup (125):
      break off artwork module
      fix artwork search, clean up pylint warnings
      fix some exceptions in album and artist browsers by doing lower-casing
      fix searches that use non-ascii characters
      document consts and config
      document preferences
      clean up preferences, document tagedit
      about dialog fixes
      break off about module
      break off scrobbler module
      break off info module
      break off library module
      fix exception while playing an album with various artists
      break off streams module
      Fix a warning and an exception related to treeview.get_visible_range
      fix profile deletion disabling when there's only one profile
      fix python-zsi 2.0 and thus lyrics in ubuntu
      break off playlists module
      break off current module
      structure the info tab code like the other tabs
      address a few pychecker warnings
      address some pylint warnings, mostly about shadowing globals
      add a simple frontend for running pychecker
      experiment with diffing pychecker output
      move all D-Bus code into dbus_plugin module
      remove unused startup code
      big startup reorganisation, break off cli module
      fix multimedia keys under gnome, use sys.exit more consistently
      fix drag and drop within playlist
      fix the bell sound when going to parent folder using backspace
      some fixes and cleanup in misc.py
      some cleanup in img.py
      fix process name cleanup code
      fix exceptions on mouse-over of empty library rows while searching
      list some relevant clean-up tasks
      remove a no-op from mpdhelper.call (Stephen Boyd patch)
      if run from an svn checkout, report svn rev in version info
      simplify mpd tag sanitizing (Stephen Boyd patch)
      get svn revision even when svn is localised
      get release version from the svn $HeadURL$, generate version.py in setup.py
      add checks in the startup script for improperly installed modules
      remove ununused encoding and svn keyword headers
      remove misc.capwords (Stephen Boyd patch), extract info.lyricwiki* fixing utf-8
      Use operator.itemgetter instead of misc version (Stephen Boyd patch)
      Remove filename param in library_set_image_for_current_song (Stephen
      Remove useless tray.display function (Stephen Boyd patch)
      Remove useless | of BUTTON_PRESS_MASK variable (Stephen Boyd patch)
      Remove useless imports of gettext module (Stephen Boyd patch)
      use consts singleton instead of inheriting from Constants (Stephen Boyd patch)
      move the LC_CTYPE work-around for turkish and mpd.py to a place where it works
      let the search filter toggle on non-ascii chars by not using event.string
      new option --no-start to not start even if remote d-bus calls fail
      make locale settings, str encoding, process name independent of gtk, gnome
      make pycheck-svndiff work again
      use object composition instead of class inheritance (Stephen Boyd patches)
      clean up the code for formatting help
      document %P and implement its column header; remove path part from %F
      turn off any background texture in fullscreen mode
      tagedit: remove self.filelabel from entries (Stephen Boyd patch)
      tagedit cleanup (Stephen Boyd patches)
      change tags_win_apply_all to take a specific entry (Stephen Boyd patch)
      tags_win_update cleanup (Stephen Boyd patches)
      extract repeating code from on_tags_edit (Stephen Boyd patches)
      tagedit: remove unused code (Stephen Boyd patch)
      extract tab creation into Base.new_tab, call it from the to-be-plugins
      instead of hardcoding, new_tab call defines where focus in a tab goes
      start a plugin system, including a tab plugin for testing
      tweak plugin metadata syntax; some error reporting
      start Plugin class with plugin info
      parse and format plugin version numbers
      simplify code by dropping support for tagedit < 0.91 (Stephen Boyd patches)
      Only revert tag colors if not changed by user (Stephen Boyd patch)
      more tagedit code cleanup (Stephen Boyd patches)
      updates and rewording to CHANGELOG and README
      put the cat back in the bag
      don't expose tags structure to Base.tags_mpd_update (Stephen Boyd patch)
      add missing close tags as required by the xhtml doctype, reindent
      rewrite the overview, clarify the mpd requirement (reported by akahige)
      describe rest of the main parts of the interface
      remove the additional bewel around the info tab
      move faq to mpd wiki
      refactor view data a little
      try replacing the .. entry and the view menu by location breadcrumbs
      start a custom condensed breadcrumbs layout
      move the ugly stats formatting code to the about module
      fix exception when there weren't breadcrumbs
      catch OSErrors from os.listdir
      fix 1.6 release year on the web site (thanks Ponton)
      don't open the about uri doubly in gtk 2.16.0
      start CrumbButton class and a breadcrumbs test main
      enable plugin system again
      load plugins lazily, make it possible to enable and disable plugins
      update the test plugin
      new plugin localmpd: A tab for controlling local MPD
      new plugin capabilites: playing_song_observers and enablables
      appropriately escape label markup in plugins (thanks akahige)
      fix the --profile option
      fix cli mode by including sonata.breadcrumbs in its fake imports
      re-enable breadcrumbs and plugins
      break off formatting module (milestone: pylint can now be run on main.py)
      fix some pylint warnings in main.py
      use less xml and callback functions to describe the ui
      use status_is_play_or_pause in main.py
      disable plugin capabilities in reverse order, don't recreate tabs to close
      add Gajim Tune plugin version 0.0.1
      in plugin list, use a custom CellRendererText which wraps at its width
      update plugin infos
      start of a script for making the screenshots automatically
      localmpd: implement netstat functionality in python, add buttons to admin mpd
      CellRendererTextWrap: be happy to wrap 1 pixel before edge - fixes flicker
      CellRendererTextWrap: fix more flicker
      remember enabled plugins between restarts (Fomin)
      update the mpris plugin (Fomin)
      remove unused PluginSystem.load_plugin
      allow plugin feature names to use dots to refer to object attributes
      start to turn streams and playlists into BuiltinPlugins
      break off lyricwiki module, accessed via lyrics_fetching capability
      add lyrics_fetching example to test plugin
      enable plugins in consts.DEFAULT_PLUGINS not in config.known_plugins
      fix syntax of plugin config
      oops, fetch lyrics in a new thread again
      break off amazoncovers module, accessed via cover_fetching capability
      remove bogus musicbrainz id from scrobbling
      lyricwiki: workaround shutdown of lyricwiki web API
      remove bogus musicbrainz id from scrobbling

Wolfgang Meyer zu Bergsten (wmzb) (1):
      Improve lyricwiki REDIRECT handling

Yann Leboulanger (4):
      Use TextView instead of Label for lyrics and album info
      Fix some string issue (% in song path name, empty artist)
      load only latest version of each plugin
      bits_per_sample must be 8 when creating a Pixbuf

Zhihao Yuan (5):
      Display playlist name with underscore correctly.
      mpd.version is a tuple of integers, not a list.
      Exclude vim backup files.
      Fix asynchronous calls for >= 0.80 only.
      No need to setup dbus.mainloop per-plugin.

hobophobe (92):
      Update urllib imports and consumers
      Update setting of daemon threads to Py 3 API
      Breadcrumb widgets init off their base widget
      Use the built-in blank GTK cursor
      Very basic work on moving to a builder-based UI
      About half-way done with the main UI
      Everything in the main UI except the notebook
      Basic UI work is nearly complete
      More basic UI builder work (preferences)
      Pulled in strings and set the translation domains
      Complete most of Formatting UI rebuild
      Convert prefs->plugin tab to builder ui.
      Convert prefs->extras to builder UI.
      That's the first pass on UI conversion.
      More builder UI cleanup
      Revert: Manually build stream add/edit dialog
      Enable focus on treeviews so that selections work
      Merge branches 'gtk3' and 'gtk3-builder' into gtk3-builder
      Merge branch 'gtk3' into gtk3-builder
      Updates for statusbar
      Quit on SIGINT
      Button cleanup, begin mpd preferences cleanup
      Cleanup Preferences, MPD tab
      Improved margins/label positions for prefs
      Merge branch 'master' of git://github.com/multani/sonata into gtk3-builder
      Make Fullscreen Window use GTK builder
      Merge branch 'gtk3-builder' of git://github.com/multani/sonata into gtk3-builder
      Merge branch 'master' of git://github.com/multani/sonata into gtk3-builder
      Remove invisible_char properties, no longer needed
      Migrate the traytips content to GtkBuilder
      Clean up traytips
      Fix Shortcuts display in About dialog
      Convert info page into GtkBuilder-built UI
      Fix statusbar formatting
      Move remote artwork chooser to GtkBuilder
      Make shortcuts popup properly reusable
      Fix Artwork Chooser to actually function
      Let the Info page resize on its own
      Migrate Playlist Name, Lyrics search to GtkBuilder
      Fix playlist row icon, populating rename dialog
      Make dialogs properly usable
      Migrate streams edit dialog to GtkBuilder
      Remove 'Base.new_tab' method, unused
      Migrate tagedit to GtkBuilder
      Remove duplicated signal handler
      Restore hide/show tabs menu
      Merge branch 'gtk3-builder' of git://github.com/multani/sonata into gtk3-builder
      Merge branch 'master' of git://github.com/multani/sonata into gtk3-builder
      gtk3: Add CSS files to the packaged files
      Fix disabling plugins with tabs
      Improve spacing of some preference widgets
      Have tagedit use ui convenience functions
      Fix centering the current track in current page
      Add padding around the main window album art
      Update notebook page margins
      Update preference>plugin margin, info page margin
      Set tab label eventboxes as visible=False
      Fix tagedit spacing and functionality
      Merge branch 'master' of git://github.com/multani/sonata into gtk3-builder
      Merge branch 'gtk3-builder' of git://github.com/multani/sonata into gtk3-builder
      Rework breadcrumbs
      Entire notebook tab bar responds to signal
      Migrate info page song info to GtkBuilder
      Merge branch 'gtk3-builder' of git://github.com/multani/sonata into gtk3-builder
      Add custom artwork dialog to preferences.ui
      Migrate icons and images to GtkBuilder
      Make info page links not have background on themes
      Replace markup with styles
      Tweak some styles, revert others to markup
      Move password row in preferences>MPD up
      Let Preferences>Plugins Description column wrap
      Replace dummy row with padding style in formats
      Tabs have show/hide menu again
      Merge branch 'gtk3-builder' of git://github.com/multani/sonata into gtk3-builder
      Correct a few GdkPixbuf calls
      Rework info page for sizing issues
      Migrate local art chooser to GtkBuilder
      Move all .ui files to .glade, update their users
      Fix visibility flag of remote artwork, cursor
      Fix localization incompatibility issue
      Move remote artwork search strings to GtkBuilder
      Wrap preferences>format descriptions
      Remove unused ListStore from current
      Merge branch 'gtk3-builder' of git://github.com/multani/sonata into gtk3-builder
      Make preferences>mpd grid more size-flexible
      Merge branch 'gtk3-builder' of git://github.com/multani/sonata into gtk3-builder
      Rework some of the Preferences layout
      Revert unused caching part of a4ebaff
      Port to Python3
      Rework all icons into the iconfactory
      Fix mpdhelper ValueError on weird disc values
      Refactor song time texts

ppnsd (1):
      Fix : SyntaxError for 'return'

-----------------------------------------------------------------------

No new revisions were added by this update.

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mpd/sonata.git



More information about the Pkg-mpd-commits mailing list