Commit Graph

251 Commits

Author SHA1 Message Date
Andreas 059aa7f832 Move `watcher->deleteLater();` at the end of the `BlockingSearchFinished()` function to ensure the `watcher` object is still available when emitting the signals. 2015-05-04 16:25:49 +02:00
John Maguire e1ea116bfb Remove Grooveshark support.
Well that was nice while it lasted.
2015-05-01 11:57:59 +01:00
Arnaud Bienner 20583b8b0a Correct typo 2015-04-25 18:01:32 +02:00
Joel Bradshaw 0cc7801d33 Add comments and declare `artist` in tighter scope 2015-04-19 21:05:55 -07:00
Joel Bradshaw ddd641b1ae Improve handling of Spotify Top Tracks and compilations
Two improvements to handling of Spotify albums:
 - Remove single-track results if they also show up in the album
results.  This eliminates duplicates showing up in albums.
 - For each album, choose the majority artist attribution to
specify as the Album Artist.  For users who group by Album Artist,
this prevents splitting albums into multiple entries when there
are contributing artists.

Squashes following commits:

    commit d8bf17e13f50c7642ba491228f31608f4861d3b6
    Author: Joel Bradshaw <cincodenada@gmail.com>
    Date:   Tue Oct 28 19:56:36 2014 -0700

        Improve handling of Spotify Top Tracks and compilations

        Two improvements to handling of Spotify albums:
         - Combine individual tracks into a "Top Tracks" album by just
        setting the album name to "Top Tracks"
         - For each album, choose the majority artist attribution to
        specify as the Album Artist.  For users who group by Album Artist,
        this prevents splitting albums into multiple entries when there
        is a contributing artist.

    commit 228650a1d7122e5d1947133ba793afaffaa69cb4
    Author: Joel Bradshaw <cincodenada@gmail.com>
    Date:   Wed Oct 29 10:00:21 2014 -0700

        Style cleanup, including run of make format

        Also wrapped Top Tracks with tr()

    commit a4f6c1ecd9bcc8338a956b1a45c2f184ee9d660d
    Author: Joel Bradshaw <cincodenada@gmail.com>
    Date:   Sun Feb 15 13:38:52 2015 -0800

        Simply remove duplicate entries from the "Top Tracks" section

        Don't create the fake "Top Tracks" album, but remove entries
        from it if they show up in the album results.  This will
        eliminate the main problem - duplicates showing up in albums -
        and avoid issues with actual single-track results showing up
        erroneously as "Top Tracks"

    commit 859abc93b3491cc526d89df19a85dc4cf9bce1c8
    Author: Joel Bradshaw <cincodenada@gmail.com>
    Date:   Sat Apr 18 09:17:50 2015 -0700

        Clean up stray f and make format

    commit 333de1c4aa947c7cbe785429565bf4f08f98d476
    Author: Joel Bradshjaw <cincodenada@gmail.com>
    Date:   Sat Apr 18 09:19:10 2015 -0700

        Update majority_count so it works

        Fixes issue with it just picking the last artist on the album
        as the album artist
2015-04-18 09:23:45 -07:00
Chocobozzz 8b226c2171 Update non optionnals sources to qt5 2015-04-11 23:24:07 +02:00
Chocobozzz 7e9f8d75c6 Change sky.fm to radiotunes.com 2015-01-15 18:48:27 +01:00
Krzysztof Sobiecki fa9ea6ec5f Fix compilation with moved files in internet/ 2014-12-18 23:35:21 +01:00
Arnaud Bienner f7924905d2 Also add internet_service method for other search providers which have a internet services.
Shouldn't change anything in practice, but better to have items correctly inserted as Internet items FWIW. And will avoid other "custom context menu not working" issues if one day we implement one for
these services.
2014-12-03 22:33:29 +01:00
Arnaud Bienner 05d43e27a9 Add internet_service to SpotifySearchProvider so custom context menu is correctly shown on playlist items created from the global search 2014-12-03 22:27:43 +01:00
John Maguire a6514617cf Merge pull request #4596 from Homulvas/master
Sorting by disc in advanced grouping
2014-10-29 18:00:51 +01:00
Ignas Kaziukenas a2df43c830 Reverted changes amde to groupby_performer 2014-10-27 15:49:11 +02:00
Ignas Kaziukenas 7516438c8b Added disc to the groupby interface. Replced groupby_performer to groupby_disc 2014-10-27 14:47:04 +02:00
Andreas dba79a7e99 Revert "Add option to show year next to album name in library and global search."
This reverts commit e17fc06be1.

Doesn't work as I thought.
2014-10-05 15:06:56 +02:00
Andreas e17fc06be1 Add option to show year next to album name in library and global search. 2014-10-05 14:14:24 +02:00
Andreas a667dceb29 Check if the blob is availabe in Spotify search provider. 2014-09-29 18:44:20 +02:00
Arnaud Bienner bc1d56f935 When clicking on a provider, on the global search result list, add all results from this provider to the playlist.
Fixes issue 3132.
2014-09-13 22:57:58 +02:00
Arnaud Bienner 8be65b8565 Better check (avoid to add invalid results, leading to a crash when adding this invalid item).
Fixes issue 3132, but I would like to improve this in a second step: clicking the provider adding all the songs for this provider to the playlist.
2014-09-13 21:31:33 +02:00
David Sansome 2134e13b53 Make CloudFileServices show logged in state and settings dialog properly in
global search.
2014-03-30 17:11:31 +11:00
John Maguire 4ab4bbc23f Remove Last.fm radio support.
Fixes #4259
2014-03-28 14:55:04 +01:00
Maltsev Vlad a7b0accd93 Add Vk.com plugin. 2014-03-08 00:58:50 +07:00
John Maguire 5146bcdebc Some more NULL -> nullptr conversions. 2014-02-21 17:30:46 +01:00
John Maguire 192b60d965 Use nullptr as parent parameter default everywhere 2014-02-10 16:03:54 +01:00
John Maguire 3323c2d094 Convert all instances of foreach() to a C++11 for
find ext src -name '*.cpp' -exec \
    sed -i -e 's/foreach(\([^,]\+\),/for (\1 :/' {} \;
2014-02-10 14:43:32 +01:00
Mladen Pejaković da535d6429 More disambiguations 2014-02-08 15:11:06 +01:00
John Maguire bebd781fdf Reformat all non-3rd-party C/C++/Objective-C++.
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
 -style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
John Maguire 71893e4847 Use nullptr instead of NULL everywhere. 2014-02-06 17:29:59 +01:00
John Maguire d309d4ab27 Use c++11 instead of boost where possible. 2014-02-06 16:51:39 +01:00
Mladen Pejaković 033d266fe9 Add contexts to some translation strings 2014-02-03 21:54:02 +01:00
GitAnt a39e559425 Implemented sort by bitrate 2013-12-17 16:07:20 +01:00
GitAnt d53bcde897 Consistently added GroupBy_Bitrate enum item 2013-12-16 19:18:02 +01:00
David Sansome 264d5ee0fa Add Radio GFM 2013-04-13 14:28:42 +10:00
Uwe Klotz a6d3b48231 Extend tag support: performer, grouping
The transaction handling while upgrading the database schema had to be revised.
Furthermore some QSqlQuery statements needed to be finished properly.

Fixes issue 2556
2013-03-10 18:16:03 +11:00
John Maguire 91233dd8d1 Increase album search limit in spotify global search.
Fixes issue #3485
2013-02-12 12:33:22 +01:00
Joel Bradshaw 9578c6c647 Adding spot for a unique album ID and implementing on Spotify
To resolve albums with duplicate tracks

Fixes issue 3429
2013-02-02 15:05:11 +01:00
Arnaud Bienner a3dbfc0674 Avoid unnecessary copy 2013-01-25 01:48:39 +01:00
Arnaud Bienner 8dfaac8bfb Sort providers according to user's preference instead of name 2013-01-19 16:06:48 +01:00
John Maguire b41a2b5308 Revert "Try out C++11 strongly typed enums."
This reverts commit 4e74c7af2b.
2012-12-05 09:36:22 +00:00
John Maguire 4e74c7af2b Try out C++11 strongly typed enums. 2012-12-04 16:22:09 +00:00
Arnaud Bienner c16e46e41a Remove useless connect from unexisting SoundClouse service SIGNALs.
From copy/pasted code :/
2012-09-01 00:45:07 +02:00
Arnaud Bienner 567274e9d3 Set current index to the item we have actually selected if no valid/playable indexes were selected 2012-09-01 00:41:31 +02:00
Arnaud Bienner 04c4d97930 Play the first item of the result list when pressing "Enter" in global search 2012-09-01 00:29:31 +02:00
David Sansome 5940b0ead1 Make SongKick results a bit prettier 2012-08-27 12:25:33 +01:00
Arnaud Bienner 2bf84f77d9 Add soundcloud in the global search 2012-08-08 23:23:49 +02:00
John Maguire 0443232ecd Use backwards-compatible boost random types. 2012-07-12 17:07:13 +02:00
John Maguire dbf9970c76 Add suggestions from Spotify starred & top 100. 2012-07-12 16:35:09 +02:00
John Maguire e928ac0349 Support selectAll() in QSearchField. 2012-06-28 12:27:32 +02:00
John Maguire 20d740f385 Port global search & album cover search to QSearchField and remove MacLineEdit. 2012-06-28 11:40:13 +02:00
David Sansome 33e1a61ee4 Increase the maximum number of results from a search provider 2012-06-24 21:14:40 +01:00
David Sansome 3ec22e3cc6 When getting children of global search results for adding to the playlist, get them through the proxy model to maintain their order. 2012-06-24 21:08:33 +01:00
Arnaud Bienner 4ac867ca37 Alphabetical order in fwd-decl 2012-06-19 23:32:15 +02:00
Arnaud Bienner a8ce1ba17b Use InternetSongMimeData in global search when possible (i.e. for search providers which have an Internet service) 2012-06-19 23:25:15 +02:00
David Sansome 45104adca9 Change the Jamendo logic a bit:
Instead of prompting the user to download the catalogue when the library
backend is initialised (which is now always), only do it when the service
node in the InternetView is expanded, or the global search provider is enabled.

Fixes issue 3009
2012-06-19 21:07:58 +01:00
David Sansome 57865f82c2 Make the grouping of global search results configurable 2012-06-17 16:20:40 +01:00
David Sansome 45a8b3af59 Fix some remaining UI issues with global search:
- Add a "Configure global search" item to the context menu, and show the
    context menu when right clicking in the help screen as well.
  - Don't crash when nothing is selected.
  - Add Ctrl+F and Ctrl+L shortcuts to focus the search field.
  - Switch to the search tab when clicking one of the tags in Artist Info.
2012-06-16 21:26:06 +01:00
David Sansome 0b754b9b66 Handle various artists properly in the global search tree, and make pressing Esc in the results list put the focus back on the search box 2012-06-11 21:06:26 +01:00
David Sansome 7b4ff1d2ee Update the Search settings page, use the configured provider order 2012-06-11 16:26:33 +01:00
David Sansome 9d6b72b4ab Add global search suggestions 2012-06-10 23:05:30 +01:00
David Sansome fe4e214a78 Read the pretty cover setting explicitly instead of relying on LibraryView reading it first. Make the URL provider set a title on its results 2012-06-10 22:08:00 +01:00
David Sansome c163046e6f Add a context menu, and up, down, enter and escape key handlers 2012-06-10 21:56:17 +01:00
David Sansome f000bd9242 Support dragging items from the global search view into the playlist 2012-06-10 21:27:00 +01:00
David Sansome 97b4298002 Split some bits of GlobalSearchView into a GlobalSearchModel 2012-06-10 21:11:55 +01:00
David Sansome c9745bca5d Use a common LoadTracks implementation for most search providers 2012-06-10 20:55:51 +01:00
David Sansome 99463215bf UI tweaks to the global search help page 2012-06-10 20:14:16 +01:00
David Sansome 6e41a20e61 Add a helpful message to the Search view when no query has been entered 2012-06-10 19:00:51 +01:00
David Sansome b669dd64fa Search simple providers properly, use the bigger album cover icon, disable the divider items, align the dividers' icons properly 2012-06-10 17:36:40 +01:00
David Sansome 41fab25569 Auto-expand tree items and lazy load album cover art 2012-06-10 17:15:32 +01:00
David Sansome 9c36cfa199 Replace the global search widget with a "Search" view on the sidebar. Organise results in a tree automatically. 2012-06-10 16:36:15 +01:00
Arnaud Bienner 0969432820 emit GS albums songs results as long as we get them, instead of waiting to have all the results available. 2012-03-05 00:54:24 +01:00
Arnaud Bienner a7332d1c83 Add album size info to GS albums, now that we load GS albums in a synchronous way 2012-02-28 23:27:37 +01:00
Arnaud Bienner 747e0f510f When (global) searching GS albums, retrieve albums' songs at the same time (instead of album load time).
Albums search is slower, but we can display songs in search results, which is IMHO really nicer.
2012-02-26 16:51:11 +01:00
David Sansome ab5ccf69da Refactoring: remove BackgroundThread 2012-02-26 15:05:46 +00:00
David Sansome bacef04405 Refactoring: remove a couple of the AlbumCoverLoader instances and instead use a shared CurrentArtLoader. 2012-02-26 14:40:51 +00:00
David Sansome 48f15c9fc7 Refactoring: instead of passing individual pointers to useful core classes (like TaskManager or LibraryBackend) to each class that uses them, pass one singleton-like Application instance everywhere. 2012-02-26 14:40:51 +00:00
David Sansome bbf99fdd0b Change Spotify to use the new MessageHandler, remove SpotifyMessageHandler 2012-01-08 15:10:11 +00:00
David Sansome 68a379ef26 Use pb::spotify instead of spotify_pb for the protobuf namespace 2012-01-07 23:26:27 +00:00
David Sansome 9be641ee87 The external tagreader mostly works now:
* Make TagReaderClient a singleton until it's easier to pass dependencies around
 * Add a WaitForSignal() that uses a local event loop to wait for a signal to be emitted
 * Add a WaitForFinished() to _MessageReplyBase that blocks using a semaphore
 * Add blocking versions of all TagReaderClient methods
 * Use the TagReaderClient everywhere that Song::InitFromFile and friends were used before
2012-01-07 00:26:07 +00:00
John Maguire 0af197f6a1 Use QPalette::BrightText for global search results for better contrast on Mac.
(cherry picked from commit e4070bbb3b)
2011-12-13 14:18:25 +01:00
David Sansome 52a1cc3a08 Remove the global search popup for now until it can be made a bit prettier
(cherry picked from commit 54df30c15d)
2011-12-12 20:50:02 +00:00
David Sansome de1fa1a6be Fix the black background on the global search tooltip on Windows 7 2011-12-10 17:36:57 +00:00
Arnaud Bienner 68a1ac545f Display global search results when focusing on global search box only if reason is 'mouseFocus'
(cherry picked from commit 0322c2bbf1)
2011-12-10 13:22:17 +00:00
Arnaud Bienner 6fc02c364a Connect textChanged signal instead of textEdited, so the search results are updated (cleared) also when clear button is pressed
(cherry picked from commit 33b0c84f03)
2011-12-10 13:22:12 +00:00
Arnaud Bienner 7dfbc2d2e1 Show last global search results again when focusing back in global search box
(cherry picked from commit 898e1e2ed1)
2011-12-10 13:22:08 +00:00
Arnaud Bienner 8441c565c7 Clear global search box when pressing Escape, like in other search boxes
(cherry picked from commit f89fb0db3a)
2011-12-10 13:22:02 +00:00
Arnaud Bienner 777caf7757 Don't start a global search if text is empty; start otherwise, even for short queries
(cherry picked from commit 99bcb5c2a2)
2011-12-10 13:21:55 +00:00
David Sansome 75f2550c31 Don't save the enabled state for a provider if that provider isn't logged in. The enabled state would always get set to false in this case since the checkbox is disabled in the UI, regardless of its actual state. 2011-12-01 14:30:36 +00:00
David Sansome 42a20d6bcb Display di.fm suggestions in the global search box properly 2011-11-29 14:29:48 +00:00
David Sansome 4dc4aa33ac Make the enabled/disabled state of a global search provider separate from its logged in state - means that now Grooveshark and Spotify providers will be enabled as soon as you login 2011-11-28 14:18:20 +00:00
David Sansome b873209d39 Remove the <xiphcomment.h> include from song.h so that windows headers don't infect everything else. Also move other bits of song.h into song.cpp, and reduce the number of includes in song.h. 2011-11-28 13:56:55 +00:00
Arnaud Bienner ceab3bd6f0 Add Grooveshark songs as internet items, when adding them from global search, so user can use all GS custom actions 2011-11-24 00:30:11 +01:00
David Sansome fc0e2c4ea6 Fix the spotify resolver to not crash when not connected to spotify, or after logging out.
Fixes issue 2399
2011-11-12 18:55:04 +00:00
David Sansome 691cb9a392 Treat URLs specially in the global search widget 2011-11-11 22:11:25 +00:00
David Sansome d74d4d65f0 Clicking an artist or tag in the song info tabs now does a global search instead of searching just last.fm 2011-11-11 21:35:25 +00:00
David Sansome 62383d02fc Don't filter FocusIn events into the global search text box (doing so causes all kinds of unusual behaviour), instead just show the popup when pressing up or down. 2011-11-08 22:38:57 +00:00
David Sansome c1230f7b0a Fix a bug where the global search popup would never be shown on the first search 2011-11-08 22:29:52 +00:00
David Sansome ec5f9be27b Reposition the global search tooltip when new results arrive 2011-11-08 22:26:58 +00:00
David Sansome 3d8c0046a8 Don't allow providers to return more than 100 results at a time. 2011-11-08 21:49:20 +00:00
David Sansome d7720223ec Hash the information that's used by GlobalSearchWidget::CanCombineResults, avoiding doing a O(n^2) search when adding new results. 2011-11-08 21:41:41 +00:00
David Sansome b3f6e46c23 Don't re-show the results list if more results arrive after the user has explicitly closed it. Also don't continue to show results when the user has backspaced to < 3 characters. 2011-11-08 20:45:11 +00:00
David Sansome f80ac47931 Use a better search icon for the global search settings page - in the Mint-X theme the old icon was 22x22 only. 2011-11-08 20:20:25 +00:00