1. 21 Dec, 2018 4 commits
  2. 20 Dec, 2018 6 commits
    • Michael Pyne's avatar
      Merge branch 'Applications/18.12' · 3b931e90
      Michael Pyne authored
    • Michael Pyne's avatar
      Disable tag updating from inline editor. · c6afa4c5
      Michael Pyne authored
      This mitigates a potential data-loss situation that might happen when
      adding new music items:
        Juk starts processing the new items in addFiles,
        Results in a new CollectionListItem being created,
        The resultant PlaylistItem superclass calls setFlags,
        This causes Qt to send a *data* changed signal from the QTreeWidget
          holding all the playlist items, saying that a *different*
          QTreeWidgetItem / PlaylistItem has been changed.
        This signal is normally only possible because of user interaction with
          the inline editor. As a result JuK assumes the signal is a user
          request to edit the track's tag, and does so. I have seen this
          cause existing files to take on the same tag values as one of the
          incoming new tracks.
      Although in theory a user could immediately select the "Undo" command to
      fix this, that's not a very good workaround. Since we have a separate
      tag editor already, we'll just use that instead until we can figure out
      a way to ensure that dataChanged signals are sent only when the data
      itself has changed (not just flags caused by unrelated items being
      CHANGELOG: Prevent opening new items from inadvertently editing track metadata on existing items.
    • Michael Pyne's avatar
    • Michael Pyne's avatar
    • Michael Pyne's avatar
      Remove debug spam for power management. · a15af145
      Michael Pyne authored
    • Michael Pyne's avatar
      Prefer QVector to QList for most auxiliary lists. · 6e518da4
      Michael Pyne authored
      Includes template-template parameter usage in playlist.h's createItems
      until all usages of QList gone.
  3. 19 Dec, 2018 3 commits
    • Michael Pyne's avatar
      Apply some cleanup to file loading code. · 13505df0
      Michael Pyne authored
    • Michael Pyne's avatar
      Use a thread pool for the threaded music loader. · eb4a4d15
      Michael Pyne authored
      Large music libraries can cause dozens/hundreds or even more of threads
      to be created at once. But all we really need is to do the loading off
      of the GUI thread, and the I/O will be the bottleneck no matter how many
      threads we use. So use Qt Concurrent to manage a threadpool instead,
      which also simplifies the code somewhat.
      I also fixed the broken global status updating when using threaded
      loader while refactoring to support this.
    • Michael Pyne's avatar
      Move initial music load to a separate thread. · 3cf74c35
      Michael Pyne authored
      I ran into all the problems one might expect from adding threading to an
      old codebase but this variant seems pretty stable.
      The benefit is that the heavy I/O with large music libraries is now off
      of the GUI thread. So even though it will still take awhile to load all
      music until I fix the bug(s) with using cached tags, at least the
      application itself will be responsive while it loads audio.
  4. 12 Dec, 2018 2 commits
  5. 04 Dec, 2018 1 commit
  6. 01 Dec, 2018 3 commits
  7. 26 Nov, 2018 1 commit
  8. 11 Nov, 2018 5 commits
    • Michael Pyne's avatar
      Merge branch 'Applications/18.12' · 6a35bbe0
      Michael Pyne authored
    • Michael Pyne's avatar
      hidpi: Port remaining icon uses to use QIcon for HiDPI support. · 1862b0f6
      Michael Pyne authored
      GUI: This fixes things like the warning icons in the file deletion
      dialog, file renamer, menu icons (such as Create Playlist from Selected
      Items), and the "Jump to Playing Track" button on the status bar.
      The track position slider remains unfixed.
    • Michael Pyne's avatar
      hidpi: Mark cover art as being at native display resolution. · c31920fa
      Michael Pyne authored
      This lets Hi-DPI displays to show cover art (when clicking the cover in
      the "Now Playing" bar) at its native resolution even when using screen
      This is probably suboptimal for smaller covers but most embedded cover
      art I find in the recent few years is already more than large enough to
      show up fine this way.
      CHANGELOG: Show embedded music cover art at native display resolution.
    • Michael Pyne's avatar
      Merge branch 'Applications/18.12' · 89ceeb08
      Michael Pyne authored
    • Michael Pyne's avatar
      Enable Qt support for High DPI icons. · 0ad0ee58
      Michael Pyne authored
      As submitted by Guo Yunhe <i@guoyunhe.me> on kde-multimedia.
      In my testing this only applies with QT_AUTO_SCREEN_SCALE_FACTOR
      environment variable enabled, but does indeed allow for many (not all)
      pixmaps to automatically load high-res versions (such as from
      I consider this a bugfix and the support is non-invasive, so applying to
      18.12 and will merge to master separately.
      Note that the cover art and slider art is still suboptimal.
  9. 10 Nov, 2018 1 commit
  10. 09 Nov, 2018 2 commits
  11. 07 Nov, 2018 1 commit
  12. 20 Oct, 2018 2 commits
    • Michael Pyne's avatar
      Merge branch 'Applications/18.08' · b4cdf1c1
      Michael Pyne authored
    • Michael Pyne's avatar
      systray: Make SHIFT+Mousewheel change the volume, not the song. · e2012e79
      Michael Pyne authored
      This fixes a bug that recently hit its 8 year anniversary. :(
      The big issue was that there was no easy way to tell which keyboard
      modifiers were set for the systray since Qt's event loop didn't actually
      receive the keyboard events.
      There's a separate function you can call, queryKeyboardModifiers, which
      makes a specific query to the desktop, and works even if Qt event loop
      didn't receive keyboard events. This fixes the bug here, and hopefully
      for everyone else.
      In fixing the bug I noticed that we can set out-of-bounds volumes due to
      lack of checking, so I fixed that too.
  13. 19 Oct, 2018 6 commits
  14. 10 Oct, 2018 2 commits
  15. 07 Oct, 2018 1 commit
    • Pino Toscano's avatar
      WebImageFetcher: check better last.fm results · c9b35d4f
      Pino Toscano authored
      - make sure the XML with the album is the one we expect (<lfm> as
        root element)
      - if the status is not "ok", inform whether the album was not found,
        or there was another error
      - handle when the album has no cover
      In all the above situations, WebImageFetcher does not attempt to start
      a StoredTransferJob for an empty URL.