Commit Graph

4465 Commits

Author SHA1 Message Date
Mark Furneaux b463f32459 Fix memory leak in pixmap disk cache 2014-05-28 17:30:07 -04:00
David Sansome acaa374139 Merge pull request #4382 from TheUbuntuGuy/libcache
Add persistent disk cache for library pixmaps.  Fixes #4379
2014-05-28 14:55:51 +10:00
Mark Furneaux b2bd7828c4 More style changes 2014-05-27 20:18:24 -04:00
Mark Furneaux 94b391e0c9 Optimizations and style changes 2014-05-27 18:21:30 -04:00
Mark Furneaux 2332a74bbe Add persistent disk cache for library pixmaps
I'll reference #4379

When viewing the library with album covers visible, the covers load very slowly the first time
as they have to wait on the tagreaders. If I scroll down the library, it takes minutes for the
tagreader to catch up. The nice thing is that the pixmaps are cached. However, once
Clementine is restarted, the whole process has to happen again.

This patch adds a persistent disk cache in the form of a QNetworkDiskCache to store the
pixmaps on disk and load them into the QPixmapCache as required.

I've noted literally night and day performance improvements, not only when scrolling through the library.
There is much better interface responsiveness when searching, and I no longer see the no_cover_icon
temporarily anymore.
2014-05-27 17:40:25 -04:00
ArnaudBienner f9be68a3a1 Merge pull request #4376 from TheUbuntuGuy/master
Fix dbz possibility in moodbar
2014-05-27 12:33:07 +02:00
Clementine Buildbot 26014890e9 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-05-26 10:01:56 +02:00
Arnaud Bienner 134b617ec4 Emit dataChanged when changing skip track state.
Otherwise, when changing this for the currently playing track, the "strike out" change wasn't visible.
2014-05-25 18:44:54 +02:00
Mark Furneaux af42ccea38 Fix dbz possibility in moodbar
Took me forever to find this. Randomly happens when changing tracks.
2014-05-25 00:16:12 -04:00
Mattias Andersson 0be0498e94 Reset the model during init of CddaDevice
This ensures that the track list in the device tab is correctly updated when a
disc is replaced with one that doesn't exist in the MusicBrainz database.
2014-05-24 13:54:07 +02:00
Mattias Andersson 68d445fed2 Parse discid xml from MusicBrainz correctly. Fixes #4025. 2014-05-24 13:54:07 +02:00
Mattias Andersson e14c59948f Add test for MusicBrainzClient. 2014-05-24 13:54:07 +02:00
David Sansome f65c48ef9c Fix the rendering of the little numbers in the boxes on queued items in the playlist 2014-05-24 14:05:21 +10:00
David Sansome 96dd87a4f3 Treat trashed files as deleted. Fixes #4374 2014-05-24 13:48:45 +10:00
David Sansome 5f05353939 Change Name to Action in the Configure Shortcuts settings page. Fixes #4310 2014-05-24 13:29:46 +10:00
David Sansome c217450d0c Fix some bad sizeof -> arraysize changes from revision 41e9c15248. 2014-05-23 21:31:50 +10:00
Mark Furneaux c404552682 Fix random artifacting on nyanalyzer on startup
memset works on bytes, not the source datatype width
2014-05-23 07:20:13 -04:00
John Maguire 0dae8ecf27 Merge pull request #4367 from TheUbuntuGuy/master
Add new analyzer "Rainbow Dash"
2014-05-22 16:00:47 +01:00
Mark Furneaux f2a1defa2a Make sizeof more generic 2014-05-22 10:58:08 -04:00
Mark Furneaux 663b7430d8 Add new analyzer "Rainbow Dash"
As requested in SuperUltraCriticalShowstopper request #2685
I have built an analyzer based on Rainbow Dash
...oh god, what have I done...

This will either make some people happy, or is absolute garbage.
2014-05-22 10:33:21 -04:00
Mattias Andersson 4569bd9f2f Check for error when getting the number of cd tracks. Build an empty
track list table if this is the case.
2014-05-22 07:51:08 +02:00
Mattias Andersson 0c76ca3c45 Don't start ripping unless the user has selected some tracks. 2014-05-21 18:07:48 +02:00
John Maguire 1f97406171 Revert "Send album artist to Last.fm"
This reverts commit d7ec8b9103.
AlbumArtist seems unsupported by newer liblastfm.
2014-05-21 17:47:01 +02:00
John Maguire 7702271fe6 Merge pull request #4344 from paperbagcorner/fix-tagging
Improve the tagging and the track information handling in the CD ripper
2014-05-21 15:46:00 +01:00
Mattias Andersson 8bb19f1887 Save tags using async calls. 2014-05-21 16:36:46 +02:00
David Sansome 48731d0420 Merge pull request #4364 from TheUbuntuGuy/master
Add icons to extras: hypnotoad, kittens, enterprise.  Fixes #1601
2014-05-21 22:12:53 +10:00
Mark Furneaux 805d8f85b0 Add icons to extras: hypnotoad, kittens, enterprise
Fixes totally critical bug #1601
2014-05-21 07:26:16 -04:00
Diogo Pereira d7ec8b9103 Send album artist to Last.fm 2014-05-20 21:20:55 +01:00
John Maguire 9f6899ac82 Use guaranteed random number generator.
Fixes #4352
2014-05-20 17:03:04 +02:00
John Maguire efcb5c4adc Merge pull request #4359 from TheUbuntuGuy/slider
Increase update rate of track slider
2014-05-20 12:50:58 +01:00
Mark Furneaux bd87230301 Change constant format 2014-05-20 07:44:30 -04:00
John Maguire 24a4cff807 Merge pull request #4288 from sundrythoughts/rating-optimization
Increase performance of mass rating changes.
2014-05-20 12:42:39 +01:00
Mark Furneaux 7fb30f2596 Add constants to track progress timers 2014-05-20 07:29:59 -04:00
Mark Furneaux b76af5f792 Increase update rate of track slider
Increases the refresh rate of the track progress bar to 25fps.
This looks much better with moodbars than the previous 1fps.
All the common code that use to run at 1fps still retains that
rate so the overhead due to this is negligible.
2014-05-19 11:51:40 -04:00
Clementine Buildbot b2abe5ff51 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-05-19 10:01:50 +02:00
John Maguire 8919b730da Update Jamendo db dump URL.
Fixes #4351
2014-05-18 18:10:56 +02:00
John Maguire 8fa96f68c8 Merge pull request #4353 from TheUbuntuGuy/master
Fix dbz possibility with small buffers at end of track
2014-05-18 18:06:36 +02:00
Mark Furneaux b0b94163f9 Merge branch 'master' of https://github.com/TheUbuntuGuy/Clementine 2014-05-18 12:02:41 -04:00
John Maguire 22a454e405 Merge pull request #4350 from TheUbuntuGuy/master
Add ability to fit now playing cover to width
2014-05-18 17:55:29 +02:00
Mattias Andersson 7d4343a826 Give functions a more verbose name. 2014-05-18 14:39:21 +02:00
Mattias Andersson 2137ac4709 Keep working until tagging is complete. 2014-05-18 14:24:46 +02:00
Mark Furneaux 7976ad2d3c Initialize fit_width_ 2014-05-17 16:35:52 -04:00
Mark Furneaux 84434fd84e Fix dbz possibility with small buffers at end of track
There was a possibility of a dbz when a buffer sent to the
analyzer was shorter than 1ms long, such as what may happen at the end
of a track when stopping. This patch guards against this.
2014-05-17 14:38:46 -04:00
Mark Furneaux 8269dc8613 Set text size on now playing widget
In removing the background colour I accidentally removed the text size style.
This edit re-adds it so the size is uniform against all modes.
2014-05-15 18:39:08 -04:00
Mark Furneaux 971b8ea137 Use UI background colour when in fit width mode
When in fit width mode with the details below the artwork,
drawing the black background is out of place. This uses the ui colour
making it less obtrusive.
2014-05-15 16:39:32 -04:00
Mark Furneaux 1f8fa45da0 Add ability to fit now playing cover to width
Some people seem to want to have a way of enlarging the now playing
widget cover when in large mode to get rid of the black bars on the sides.
This patch adds an option in the context menu which allows the cover to
fill the width of the panel when either large mode is enabled.
2014-05-15 16:02:46 -04:00
David Sansome 0332bed3fc Remove temporary cover-art from /tmp on exit. Fixes #4349 2014-05-15 16:21:19 +10:00
David Sansome ff5d23b288 Merge pull request #4347 from TheUbuntuGuy/master
Add new now playing widget mode.  Fixes #853
2014-05-15 16:17:46 +10:00
Mark Furneaux 20be94ee51 Change height on details change
When the details change, the height is updated so if the details
now span more or fewer lines we can accompany that
2014-05-14 22:10:39 -04:00
Mark Furneaux 9d118345c0 Add placeholder text for safety
Just to make sure that details_ has the correct height when initializing
2014-05-14 22:06:02 -04:00
Mark Furneaux eb0b53aa96 Add new now playing widget mode
In an attempt to satisfy many users, I have added another mode to the
now playing widget. This shows the large cover art however it draws the song details
below the artwork, without the gradient that everyone seems to have a problem with.
This is just an option and all the original functionality is unchanged.
2014-05-14 19:07:53 -04:00
John Maguire 42a2739daf Merge pull request #4343 from TheUbuntuGuy/master
Fix block analyzer framerate
2014-05-14 14:14:33 +02:00
Mark Furneaux 542dbe8d12 Make framerate notification less nasty
Now uses a virtual function in Analyser::Base to notify any
analyser which whishes to listen
2014-05-13 16:43:46 -04:00
Mattias Andersson 182c90ccf4 Run RipCD::TagFiles in a background thread. 2014-05-13 15:18:42 +02:00
John Maguire c2890de65f Remove "using" statement in header 2014-05-13 14:46:50 +02:00
Mark Furneaux 6a882370a6 Fix block analyzer framerate
Block analyzer uses an internal variable m_step to determine how
long to hold a bar up. This is dependant on framerate, however it is
only set on creation or resize of the analyzer. This patch changes
this value whenever the framerate is changed, preventing the analyzer
from appearing wildly fast or extremely slow until a restart.
2014-05-12 18:15:00 -04:00
Mattias Andersson 467a1443e4 Capture log messages from the transcoder. 2014-05-12 23:58:51 +02:00
Mattias Andersson 98fd82a371 Use the TagReaderClient to tag the files in the CD ripper instead of
using Taglib directly.
2014-05-12 23:57:11 +02:00
Mattias Andersson bbd83344b8 Initialise cancel_requested_ to false in the constructor's initialisation list. 2014-05-12 17:40:41 +02:00
Mattias Andersson 08f5af3320 Give the mutex lockers a tighter scope. 2014-05-12 17:24:35 +02:00
Mattias Andersson 919f7cbe94 Add a mutex to protect a variable shared between threads. 2014-05-12 16:14:33 +02:00
Mattias Andersson 6235e69ac4 Run 'make format' 2014-05-12 14:38:46 +02:00
Mattias Andersson be09f6e5c7 Merge branch 'master' into ripcd-cancel
Conflicts:
	src/ui/ripcd.cpp
2014-05-12 13:50:34 +02:00
John Maguire 5fe468456a Merge pull request #4171 from asiviero/master
Addressing #4165 and #4166
2014-05-12 13:20:26 +02:00
David Sansome f593eb0952 Use arraysize instead of sizeof 2014-05-12 19:00:26 +10:00
Clementine Buildbot 093d160cca Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-05-12 10:01:51 +02:00
David Sansome 98b6b6f906 Don't use italic text anywhere - Arabic text doesn't have italics. Fixes #4329 2014-05-11 20:42:49 +10:00
David Sansome 18f72f3ada Capture this lambda argument by value, since it's a local variable and won't be valid when the outer function exits. 2014-05-11 19:24:22 +10:00
David Sansome 41425b3c5c Remove . from the beginning of filenames when organising files. Fixes #4338 2014-05-11 19:24:21 +10:00
David Sansome cf6cdc6936 Add disambiguation strings to "Quality". Fixes #4316 2014-05-11 17:35:23 +10:00
David Sansome 4e9a7ca7f3 Load all the metadata for the first song, so the duration will appear properly when it starts playing. 2014-05-11 17:35:23 +10:00
Andreas f52e48c956 Send filesize and file count in advance when client wants to download songs. 2014-05-10 14:53:38 +02:00
asiviero d448ac1179 Replaced scoped_ptr by unique_ptr 2014-05-10 00:41:32 -03:00
Andreas 24481ae7bc Clementine Remote can now download all urls that are in the library. 2014-05-08 19:17:58 +02:00
Andreas c04eb3da19 Only search for covers automatically if artist & album is filled. 2014-05-07 21:17:33 +02:00
Clementine Buildbot 40a7ae24fc Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-05-07 14:56:34 +02:00
Mattias Andersson f91c162ba3 Use a single label for the text at the top of the soundcloud settings page. 2014-05-04 08:31:15 +02:00
David Sansome 0d71067333 Merge pull request #4327 from TheUbuntuGuy/coverchoicecontroller
Fix oversized album cover art.  Fixes #1260
2014-05-04 14:00:41 +10:00
Mark Furneaux 394d8e7b51 Add support for monitors in portrait mode
Album covers bound to width or height, whichever is smaller
2014-05-03 09:54:19 -04:00
Mark Furneaux 8f9229d7c9 Apparently I'm blind. (Refactoring) 2014-05-03 09:28:07 -04:00
Mark Furneaux 00a1fe1e32 Refactoring 2014-05-03 09:14:15 -04:00
Mark Furneaux 9156f8f389 Fix oversized album cover art
When viewing the "Full Size" album covers, if the cover was higher in
resolution than that of the monitor, it would get cut off. Also,
the window was resizable however the image was not. This patch makes
the dialog a fixed size and resizes the cover only if it is too large to
fit on the screen. It also now displays the dimentions of the original
artwork in the title bar.
2014-05-01 12:26:48 -04:00
Mark Furneaux 6c653e5ba2 Synchronize buffer chunks with audio stream
The chunks are now determined by the density of data in the buffer
to the length of audio in the buffer. The chunk length can change
size so that the audio that is analysed is exactly what is being played
at the instant the frame is requested.
2014-04-30 14:18:39 -04:00
Mark Furneaux ee7fed36bc Fix pointer arithmetic when seeking buffers
It's possible the sample type will change, so best to not use
a fixed value.
2014-04-30 10:00:58 -04:00
asiviero 4b7c3a2f8c Using scoped ptr to ripcd window, removing extra parenthesis again 2014-04-29 23:12:18 -03:00
Mark Furneaux 53f21584e4 Fix inconsistent buffer sizes sent to analyzer
The analyzers are sent new buffers of audio data to process each time
they pass through the gst pipeline. Different file formats and bit depths/
sample rates can change the size of these buffers, in some cases making them
large and therefore infrequent. This causes choppiness in the analyzer
as it is not getting new data with every frame. This patch chunks the buffers
coming off the pipeline to correspond with the framerate of the analyzer.
2014-04-29 21:38:21 -04:00
John Maguire 41e9c15248 Add arraysize macro from Chromium 2014-04-29 14:11:52 +02:00
Clementine Buildbot 0392420cd8 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-04-28 10:01:51 +02:00
David Sansome ec0565d07d Merge pull request #4313 from TheUbuntuGuy/master
Fix analyzer framerate when mouseover play scrubber.  Fixes ##2504
2014-04-27 16:51:36 +10:00
Mark Furneaux 16f12a3da8 Formatting 2014-04-27 02:49:26 -04:00
Mark Furneaux 7d3d0f04cf Fix analyzer framerate when mouseover play scrubber
This patch prevents the framerate of all analyzers from
increasing beyond the framerate set in the interface at all times.
It however will allow the analyser to redraw as often as required
to prevent artifacting when the play scrubber is drawn in front.
2014-04-27 01:54:42 -04:00
David Sansome 3e57a85711 Merge pull request #4308 from TheUbuntuGuy/master
Fix play bleeding into next track after auto stop
2014-04-26 18:46:26 +10:00
Mark Furneaux f793d09d8e Fix play bleeding into next track after auto stop
If "fade out on stop" is enabled, the "stop after this track" feature
would stop not stop the on current track, but instead start playing
the next track and fade out on that immediately. This patch disables
fadeout when the engine is stopped by HandleStopAfter().
2014-04-26 00:58:08 -04:00
David Sansome 231443f6d1 Merge pull request #4305 from TheUbuntuGuy/master
Fix stop after track.  Fixes #3572
2014-04-26 13:10:23 +10:00
Mark Furneaux d0ca2cef6c Comment remove 2014-04-25 23:02:42 -04:00
Mark Furneaux ce8b7303c0 Formatting 2014-04-25 22:50:52 -04:00
Mark Furneaux c890af6306 More elegant solution to last commit
set_current_row now takes optional parameter "is_stopping" for when auto stop
is enabled.
2014-04-25 22:45:25 -04:00
Joseph Freeman fe4a80b2d5 Removed commented-out code and ran make format. 2014-04-25 19:41:04 -04:00
Joseph Freeman 156728390d Increase performance of mass rating changes. 2014-04-25 19:37:46 -04:00
Mark Furneaux 416d06bb06 Fix stop after track
Stop after track would cause now playing widget, OSD, and last.fm
scrobbler to change to next track after stopping. This patch prevents
set_current_row() from firing an event which triggers the track change.
2014-04-25 14:30:31 -04:00
vkrishtal 42f62be5b6 Fix after review 2014-04-25 08:57:31 +04:00
vkrishtal 69b4f9113a BugFix: clementine cannot delete directories in file tab #858 2014-04-25 00:28:22 +04:00
John Maguire b3ef8b0fe0 Try out actually using lambdas for something useful. 2014-04-23 18:05:59 +02:00
David Sansome c7459b1b28 Load songs in a background thread while initialising the Organise dialog 2014-04-23 21:46:05 +10:00
David Sansome 98a328cf97 Switch from foreach to for 2014-04-23 21:13:58 +10:00
David Sansome 25ee987ec7 Recursively add songs in subdirectories to the organise dialog. Broken in revision 35060d6. 2014-04-23 21:06:23 +10:00
Arnaud Bienner d49d818b37 Very minor style change 2014-04-23 00:40:06 +02:00
Arnaud Bienner 3f79fa5c65 Try to make the slider more accurate when moodbar is activated.
Previously, the slide wasn't displayed at the exact position where the user clicked, and the moodbar's width was equal to the slider's width, while it should have been as long as long the groove.
2014-04-23 00:03:30 +02:00
John Maguire c94a94ece2 Merge pull request #4285 from paperbagcorner/sqlite-3.8
Fix slow library search on sqlite 3.8.
2014-04-22 18:47:45 +08:00
Mattias Andersson 5fffbbc689 Add explanatory comment to last commit. 2014-04-22 12:25:59 +02:00
Clementine Buildbot e09298b9a3 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-04-21 10:01:49 +02:00
Mattias Andersson 56dade2598 Fix slow library search on sqlite 3.8. 2014-04-19 14:23:50 +02:00
Arnaud Bienner 3dad47e7ca Reorder SoundCloud menu 2014-04-16 23:17:23 +02:00
Arnaud Bienner 67951f64a5 SoundCloud: retrieve user's playlists 2014-04-16 23:09:48 +02:00
Arnaud Bienner ef01353a0f SoundCloud: retrieve stream playlists 2014-04-16 22:37:40 +02:00
Andre Siviero af34bf6062 Removing extra parenthesis 2014-04-16 11:07:50 -03:00
Mattias Andersson 773c3475ba Remove unnecessary string conversion. 2014-04-15 14:47:26 +02:00
Clementine Buildbot 2c82826d26 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-04-14 10:01:28 +02:00
Adolfo Jayme Barrientos 15e4f7fe9c Remove space in provider’s name 2014-04-14 00:32:58 -05:00
Mattias Andersson ddf0c0cbc3 Merge remote-tracking branch 'origin/master' into asivieromaster 2014-04-13 14:59:58 +02:00
Mattias Andersson 44025dc588 Add a call to cdio_get_media_changed in RipCD::CheckCDIOIsValid
This prevents an erroneous message that the media has changed the first
time the ripCD dialog is used.
2014-04-13 14:41:04 +02:00
David Sansome b9279ca128 Merge pull request #4263 from abika/master
Load all songs that require disc-read non-blocking.
2014-04-12 16:03:55 +02:00
Mattias Andersson 31400f2740 Run 'make format' 2014-04-12 09:20:25 +02:00
Mattias Andersson d66a73bed5 Merge remote-tracking branch 'origin/master' into HEAD
Conflicts:
	src/ui/mainwindow.cpp
	src/ui/ripcd.cpp
2014-04-12 09:08:21 +02:00
SATOH Fumiyasu 9add1ad708 Update Transifex URL 2014-04-11 16:30:57 +09:00
John Maguire 8429e92b52 Remove obsolete configure #defines 2014-04-10 18:03:15 +02:00
Arnaud Bienner 2f5e03e921 Use a more appropriate log level 2014-04-10 00:49:31 +02:00
Arnaud Bienner 532720ea79 Merge branch 'master' of https://github.com/clementine-player/Clementine 2014-04-09 23:08:14 +02:00
Arnaud Bienner e557c56d96 We ask for 'non-expiring' tokens, so it seems normal that we don't have refresh_tokens actually 2014-04-09 23:07:58 +02:00
Arnaud Bienner beb5f9fa30 Handle error in SoundCloud replies 2014-04-09 23:03:09 +02:00
Alexander Bikadorov 66fcaefed9 Documentation update for async song load. 2014-04-07 15:38:26 +02:00
Alexander Bikadorov a056a87c8e Coding style fixes for async song load. 2014-04-07 15:27:47 +02:00
John Maguire 712d8ecd8a Remove Growl support. 2014-04-07 14:54:10 +02:00
Clementine Buildbot 57e4217ccc Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-04-07 10:01:42 +02:00
Clementine Buildbot db32b67f89 Automatic merge of translations from Transifex (https://www.transifex.com/projects/p/clementine/resource/clementineplayer) 2014-04-06 12:17:25 +02:00
David Sansome 5066dcf696 Merge pull request #4212 from paperbagcorner/searchtooltip
Don't translate field names in the library search filter tool tip
2014-04-06 18:18:07 +10:00
Gavin Howard b41b9232ce Use relative filenames when saving XSPF playlists 2014-04-06 17:40:50 +10:00
David Sansome 24404b4357 Make the "buffer low fill" string a bit more understandable 2014-04-05 22:03:36 +11:00
John Maguire 51385cc801 Add a different label for the mavericks shortcut settings.
Fixes issue #4002
2014-04-02 16:27:07 +02:00
John Maguire 4ed6f94211 Open the right part of the system preferences for global shortcuts on Mavericks. 2014-04-02 16:27:07 +02:00
John Maguire 30d1c2f8db Remove Ubuntu One support.
http://blog.canonical.com/2014/04/02/shutting-down-ubuntu-one-file-services/
2014-04-02 16:02:00 +02:00
Alexander Bikadorov 0d199be5a7 Load all songs that require disc-read non-blocking. 2014-04-02 15:57:01 +02:00
Marcus Fritzsch 22c0a79924 gstenginepipeline: Do not use QString::sprintf() 2014-04-02 12:39:19 +02:00
Marcus Fritzsch e3bea84bea gstenginepipeline: make buffer min fill configurable 2014-04-02 11:54:14 +02:00
Arnaud Bienner 4c70f17444 Fix a small issue in oauthenticator 2014-03-31 22:04:03 +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
David Sansome 25544cb672 Sort the list of Internet Providers in the settings dialog and internet tab 2014-03-30 17:11:19 +11:00
David Sansome 93a0f160df Add Configure items to the context menus for cloud file services. 2014-03-30 16:46:16 +11:00
David Sansome adff4864d4 Recurse into folders when indexing music on OneDrive 2014-03-30 16:36:07 +11:00
David Sansome 6ecc534bf9 Construct oauth URLs properly when using REMOTE or REMOTE_WITH_STATE 2014-03-30 16:35:38 +11:00