Commit Graph

251 Commits

Author SHA1 Message Date
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
David Sansome 69275bb0b6 Disable the right fields in the global search settings page the first time the dialog is shown 2011-11-08 20:15:05 +00:00
David Sansome 550c4b4c84 Change another "Search everywhere" 2011-11-08 18:49:05 +00:00
David Sansome 0a655064b2 Change "Search everywhere" back to "Search for anything" - it better describes what we want the user to do with the input box 2011-11-08 18:37:00 +00:00
David Sansome 5dcd1d4890 Initialise the item lists for simple search providers on startup so they can be used to populate the global search suggestions. 2011-11-08 18:35:33 +00:00
Arnaud Bienner 9964eab741 Add a tooltip to the global search box 2011-11-06 19:05:09 +01:00
David Sansome 89c9ea37fa "Search everywhere" instead of "Search for anything", and make "e.g." translatable 2011-11-06 17:27:54 +00:00
David Sansome c6e252326f Make the Configure... button work for di.fm/sky.fm in the search settings page 2011-11-06 16:41:00 +00:00
David Sansome 814c79b183 Use more friendly names for "global search" in the UI 2011-11-06 16:36:47 +00:00
David Sansome 63f39d8dec Show some suggested queries in the global search widget 2011-11-06 16:30:42 +00:00
David Sansome e3b7afbdf2 Add "Your radio streams" global search provider 2011-11-06 15:00:50 +00:00
David Sansome dac6c1bf09 Add a SomaFM search provider 2011-11-06 00:02:32 +00:00
David Sansome 931efb1f70 Add an icecast search provider, refactor a couple of other bits 2011-11-06 00:02:32 +00:00
David Sansome b37f679c36 Implement the options to hide/show the global search box, and to hide/show all other search boxes. 2011-11-05 19:09:37 +00:00
David Sansome a9e1fe0075 Implement the global search tooltip options 2011-11-05 19:09:26 +00:00
David Sansome 1946011919 Update each provider's logged-in state in the global search settings dialog when returning to the global search page. 2011-11-05 17:19:42 +00:00
David Sansome 37166ca19d Give the last.fm global search provider a config dialog 2011-11-05 17:11:02 +00:00
David Sansome e0beff096d Fix the priority ordering of global search results 2011-11-05 17:01:57 +00:00
David Sansome dc05c101a3 Remove the individual provider buttons from the global search widget and replace them with one settings button instead. Also tweak the appearance of the tooltip 2011-11-05 16:57:33 +00:00
David Sansome 6446ef8b9e Use PNG spotify icons instead of SVG 2011-11-05 16:08:56 +00:00
David Sansome a2327c4eb7 Remove some redundant parameters from DigitallyImportedServiceBase and move the subclasses (which are now empty) into the same file. 2011-11-04 22:54:27 +00:00
David Sansome 2b6beb7417 Load the list of sky.fm/di.fm streams using the undocumented API, getting artwork for each stream as well. 2011-11-04 22:31:19 +00:00
John Maguire f241ebf7b9 Sort grooveshark results better in global search and show fewer of them. 2011-11-01 13:00:27 +01:00
David Sansome 246b14d677 Save provider enabled/disabled state and order 2011-10-30 23:31:43 +00:00
David Sansome 08e09ce5dd Add a settings page for global search - doesn't save yet 2011-10-30 18:52:38 +00:00
David Sansome 6d45415b00 Consistently use "Various artists" with a lower case "a" 2011-10-30 16:53:39 +00:00
David Sansome 92c284f9b1 Fix the global search tooltip's background under KDE 2011-10-30 15:21:58 +00:00
David Sansome 1b6ce64532 Comments from revision 9a739a3346 2011-10-23 15:44:24 +01:00
Arnaud Bienner f03d48164f Save providers preferences (enabled/disable) 2011-10-20 16:36:12 +02:00
Arnaud Bienner 1d60cc6c52 Merge branch 'master' of https://code.google.com/p/clementine-player 2011-10-20 15:04:03 +02:00
Arnaud Bienner f0c8703dbc When toggling provider button, check if provider can be used by checking if user is logged-in, it this is necessary to make the provider work 2011-10-20 15:03:47 +02:00
David Sansome 9a739a3346 Add a DBus interface onto the global search engine, and add a KDE krunner plugin that performs global searches in Clementine.
This is optional and is not compiled unless you have the plasma developer packages installed.
2011-10-19 23:17:24 +01:00
David Sansome 348faef9e1 Remove the individual global search provider boolean flags and replace them with with a Q_FLAGS enum. Also add a flag for "probably has remote album art" 2011-10-19 23:08:11 +01:00
David Sansome 452fccc2f5 Make GrooveShark emit a SearchFinished signal, and fix aggregate SearchFinished signals if some providers are disabled 2011-10-19 23:07:41 +01:00
David Sansome da825d4659 Make clicking outside the global search tooltip work again 2011-10-15 21:57:08 +01:00
David Sansome ce501d982a Don't show the global search popup immediately when clicking in the search field, making it possible to double click the search box to select all text. 2011-10-15 20:48:48 +01:00
Arnaud Bienner bac6095491 Rename GrooveShark to Grooveshark everywhere, as it is actually named like this 2011-10-05 21:59:15 +02:00
John Maguire a0314d34fb Support albums from GrooveShark in global search.
Quality is pretty bad though.
2011-10-05 14:08:33 +02:00
John Maguire 20a967a19f Basic working closure implementation. 2011-10-04 18:26:40 +02:00
John Maguire 9f1e82965d Add Jamendo as a global search provider but disabled by default. 2011-10-03 16:03:03 +02:00
John Maguire 55624c4dda Sort providers by name in global search widget. 2011-10-03 15:39:06 +02:00
David Sansome 4e9f3a27db Fix the global search tooltip 2011-10-01 21:25:05 +01:00
David Sansome 292610c20b Allow toggling of individual global search providers. 2011-10-01 21:22:01 +01:00
David Sansome 3e189f53bc Change a dodgy variable name 2011-10-01 17:55:53 +01:00
David Sansome 58e3a3b676 Don't reload di.fm and sky.fm streams all the time 2011-10-01 17:41:28 +01:00
John Maguire 0df07719e2 const& 2011-10-01 11:03:36 +02:00
John Maguire bbd0cef2af Consistently name GrooveShark. 2011-09-30 16:02:57 +02:00
John Maguire 41ce54a088 Add copyright header to Grooveshark global search. 2011-09-30 16:01:07 +02:00
John Maguire 870ffdfb46 Remove extraneous debug. 2011-09-30 16:00:05 +02:00
John Maguire 30014f512e Support album covers and loading tracks from Grooveshark in global
search.
2011-09-30 15:58:24 +02:00
John Maguire dd017e99ee Basic global searching in Grooveshark. 2011-09-30 15:35:09 +02:00
David Sansome 30803b6743 Swap between two models (a "back" model and a "front" model) to smooth the delays when typing a search query 2011-09-29 23:26:02 +01:00
David Sansome 4282b6b68b Don't let search results that arrive later appear before other search results - should make navigating the global search results less annoying when there are remote providers like spotify. 2011-09-29 22:29:20 +01:00
David Sansome 4c819b1cb9 Add a "Replace and play now" shortcut to the global search menu. 2011-09-27 22:38:14 +01:00
David Sansome 892f5f1df1 Add search providers for di.fm and sky.fm 2011-09-24 22:49:04 +01:00
David Sansome 0b65aa3b02 Factor the generic parts of the last.fm search provider into a SimpleSearchProvider class 2011-09-24 20:42:33 +01:00
David Sansome 0a5ef8382d Don't show a last.fm result if any token didn't match 2011-09-24 18:36:59 +01:00
David Sansome cc20d90a7a Last.fm global search provider 2011-09-24 17:01:18 +01:00
David Sansome d83736acc0 Initialise a GlobalSearch in main and pass it around, so providers can register themselves 2011-09-24 14:44:23 +01:00
David Sansome 8551d4a46d Only re-show the global search popup on focus events that were caused by the mouse or keyboard. 2011-09-24 13:26:12 +01:00
John Maguire adf03678e3 Fix typo 2011-09-20 09:57:18 +02:00
David Sansome 8f3ea57a64 Fix the background colour of items in the global search popup in Qt 4.7 with the GTK style. 2011-09-19 11:06:25 +01:00
John Maguire 66f9d3c8b0 Remove pointless setFocus(). 2011-09-19 12:05:02 +02:00
David Sansome f2062cb68a Use the selected provider when adding songs to the playlist 2011-09-19 00:35:30 +01:00
David Sansome 847d90d117 Add a "Switch provider" action when there is more than one provider for a search result 2011-09-19 00:29:09 +01:00
David Sansome 334ecd3c38 Add an inner border to the tooltip 2011-09-18 23:41:25 +01:00
David Sansome e10efbc484 Make "Add and play now" work 2011-09-18 23:26:21 +01:00
David Sansome b45c5a866e Make the tooltip actions work properly by click and shortcut key, add a pretty mouseover animation to the tooltip actions, pass mouse events through to the proper widget when the tooltip is open. 2011-09-18 23:07:57 +01:00
David Sansome 7ec059dc13 Add a tooltip action widget (actions don't work yet) 2011-09-18 17:43:53 +01:00
David Sansome 2a97a63719 Prettier global search tooltip 2011-09-18 16:00:04 +01:00
David Sansome 4ac16f0dd4 Add a "tooltip" that shows the songs within each album in the global search results 2011-09-18 00:06:07 +01:00
David Sansome 02f2d5dc88 Combine similar search results 2011-09-17 17:42:14 +01:00
David Sansome 4065037aba Show a big track count indicator and provider icons in global search results 2011-09-17 16:21:08 +01:00
David Sansome 9e8b29c86a Get track counts for Spotify albums 2011-09-17 15:57:34 +01:00
David Sansome d5f043f2c0 Scale the nocover image properly 2011-09-17 15:28:26 +01:00
David Sansome 401700822d Paint the second line of search results in the same colour, increase spacing slightly 2011-09-17 15:24:46 +01:00
David Sansome 9596377de1 Make the popup bigger by default, but shrink it if it would go off the screen 2011-09-17 15:12:00 +01:00
David Sansome 61b3493c01 Fix the selected text color in the global search popup 2011-09-17 15:03:56 +01:00
David Sansome d9533fca26 Don't hide the popup when pressing enter, and show it again when re-focusing the search box 2011-09-17 14:23:44 +01:00
David Sansome 02257d8b37 Adjust the global search widget's style a bit 2011-09-17 14:04:57 +01:00
John Maguire 0da6a4f1ca Tidy up use of mac_psn. 2011-09-16 16:27:31 +02:00
John Maguire 55fc18fcc7 Improve the behaviour of the search popup on Mac. 2011-09-16 15:48:21 +02:00
John Maguire cc522cab7b Clear the global search box after tracks have been selected. 2011-09-01 16:30:56 +01:00
John Maguire 551a85cb9b Add missing copyright headers. 2011-09-01 16:07:07 +01:00
John Maguire 2dc7c3ea8e Hook up the popup's buttons to the Player. 2011-09-01 15:56:56 +01:00
John Maguire ee9b9501ed Remove global search popup frame and show on top when triggered. 2011-09-01 15:41:47 +01:00
John Maguire 914eb59215 Make searching and adding work from global search popup. 2011-09-01 15:10:36 +01:00
John Maguire c2d68fd697 Basic search popup triggered by a global shortcut. 2011-09-01 14:23:16 +01:00
David Sansome 5aca9b7984 Support for playing tracks from Spotify 2011-08-29 03:32:50 +01:00
David Sansome c1041ed6d4 Support for playing tracks from local library 2011-08-29 03:32:41 +01:00
David Sansome 21be90a941 Change spotify protobuf namespace to something that isn't reserved, and do album loading in spotify 2011-08-29 03:32:37 +01:00
David Sansome 5dc053827a Fix spotify image loading 2011-08-29 03:32:35 +01:00
David Sansome c96d402f26 Add a flag that search providers can set to indicate they want one art request at a time 2011-08-29 03:32:17 +01:00
David Sansome 1d2c142fdc Key delayed searches on timer id - more efficient for the common case 2011-08-29 03:31:49 +01:00
David Sansome dbffe16d04 Add a flag that search providers can set to indicate they want some delay between user input and being asked to search 2011-08-29 03:31:19 +01:00
David Sansome 8dea8a2664 Add a spotify global search provider 2011-08-29 03:31:12 +01:00
David Sansome dbe8ffd5de Try to sort by "quality", ie. matches at the start of the song metadata rate higher. 2011-08-29 03:30:32 +01:00
David Sansome 415c86ab90 Increase the border size 2011-08-29 03:30:22 +01:00
David Sansome 2c954a5d4a Cache pixmaps for album art 2011-08-29 03:30:14 +01:00
David Sansome cd44c47f7b Sort the results in the popup list, prevent the user from searching for short strings 2011-08-29 03:29:51 +01:00
David Sansome 0f9d2d29bb Minor UI tweaks 2011-08-29 03:29:04 +01:00