1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-09-08 13:10:50 +02:00

Compare commits

..

1392 Commits
0.4.1 ... 0.5.0

Author SHA1 Message Date
Christian Muehlhaeuser
54e7fbdd5d * Drop the rc0. We're gold. 2012-06-22 04:59:44 +02:00
Leo Franchi
c9bbd96fa6 Make sure to start the resolver after installing it 2012-06-21 22:25:42 -04:00
Leo Franchi
f299d0b923 Delete widget after it's removed 2012-06-21 21:39:01 -04:00
Christian Muehlhaeuser
2c91365cbb * Dont exec the app when loading as a secondary instance. 2012-06-22 03:35:02 +02:00
Christian Muehlhaeuser
f91d9f30ce * Prevent source-retrieval from accidentally creating new sources. 2012-06-22 03:04:43 +02:00
Christian Muehlhaeuser
a7c3cce720 * Removed obsolete code path in DbSyncConnection. 2012-06-22 02:56:57 +02:00
Christian Muehlhaeuser
82794ed207 * This might prevent dupe db-ops. 2012-06-22 02:44:08 +02:00
Christian Muehlhaeuser
6572f9820a * Stop logging every query. 2012-06-22 02:44:08 +02:00
Jeff Mitchell
707a8cb280 Add more specialized SQL debugging 2012-06-21 18:35:43 -04:00
Tomahawk CI
23d87d9824 Automatic merge of Transifex translations 2012-06-21 22:17:35 +00:00
Jeff Mitchell
53f4569d11 Add some asserts to guarantee no access to Database before it's ready 2012-06-21 18:12:23 -04:00
Jeff Mitchell
45b10435df Add further query debugging 2012-06-21 17:59:51 -04:00
Jeff Mitchell
6ce38cb986 Sorry, fix encoding n such 2012-06-21 17:45:23 -04:00
Jeff Mitchell
e6af7b03d7 See if this fixes lfranchi's assert 2012-06-21 17:39:31 -04:00
Leo Franchi
f8ea0667d4 Only show spotify wrench if resolver is running 2012-06-21 16:35:46 -04:00
Jeff Mitchell
2c6f26e36b Set no parent on Impls and explicitly delete them. Tested fine here. 2012-06-21 16:15:52 -04:00
Jeff Mitchell
e3783b58e4 Revert "Remove one of the parenting warnings."
This reverts commit a1146fbe53.
2012-06-21 16:13:24 -04:00
Jeff Mitchell
a1146fbe53 Remove one of the parenting warnings. 2012-06-21 15:59:54 -04:00
Christian Muehlhaeuser
6cfc4eeb51 * Updated ChangeLog. 2012-06-21 21:38:07 +02:00
Christian Muehlhaeuser
b61ee3ff1a * Disable lyrics for 0.5. Sigh. 2012-06-21 21:36:36 +02:00
Jason Herskowitz
68f2802214 Shrink images that somehow got too big... I blame someone else 2012-06-21 15:29:19 -04:00
Jeff Mitchell
51b70e1e6e Fix another invalid png file 2012-06-21 15:23:57 -04:00
Jeff Mitchell
1a67ca0e7e Fix warning-causing png file 2012-06-21 15:23:57 -04:00
Christian Muehlhaeuser
8148a18b32 * Show a loading spinner for top hits. 2012-06-21 21:23:11 +02:00
Christian Muehlhaeuser
0dc1d6664a * Show loading spinner and emptiness tooltip on track page. 2012-06-21 21:12:23 +02:00
Jeff Mitchell
408bc713d7 Revert "Remove unused mutates parameters, since we base our work on what the command claims"
This reverts commit 6b6ccee575.
2012-06-21 14:45:51 -04:00
Jeff Mitchell
6b6ccee575 Remove unused mutates parameters, since we base our work on what the command claims 2012-06-21 14:43:02 -04:00
Christian Muehlhaeuser
199dd1afc7 * Mutex protect any m_db access within DatabaseImpl. 2012-06-21 20:26:03 +02:00
Leo Franchi
d659a1f339 Install libspotify to Frameworks/ 2012-06-21 14:51:09 -03:00
Leo Franchi
5cce01d346 Use commands instead of subprocess.check_output 2012-06-21 13:19:42 -04:00
Leo Franchi
b6545f7d5c Copy libspotify to app bundle when creating 2012-06-21 12:47:56 -04:00
Christian Muehlhaeuser
d46889706b * Fixed not properly deleting temporary pages. 2012-06-21 18:25:45 +02:00
Leo Franchi
cccd5db05a Clarify naming 2012-06-21 11:58:56 -04:00
Leo Franchi
b5bc3bca45 Properly initialize binary bool flag on creation 2012-06-21 11:56:50 -04:00
Christian Muehlhaeuser
2acae2fd45 * Whoops. Almost forgot this one: Show artist name on artist page. 2012-06-21 16:54:52 +02:00
Christian Muehlhaeuser
33b8608668 * Bumped to 0.5.0rc0. 2012-06-21 15:03:33 +02:00
Christian Muehlhaeuser
eb9786e08d * Make sure we always access dbimpl's mutex-protected. 2012-06-21 11:24:19 +02:00
Jeff Mitchell
9ad3e053e7 Avoid possible null pointer access 2012-06-20 21:47:10 -04:00
Tomahawk CI
ed58392e04 Automatic merge of Transifex translations 2012-06-20 22:18:31 +00:00
Christian Muehlhaeuser
55537ce5f8 * Use unique db connection names. 2012-06-21 00:05:23 +02:00
Jeff Mitchell
d687bdb54f Remove confusing and obsolete parent parameter 2012-06-20 17:58:26 -04:00
Christian Muehlhaeuser
0c613cbcbe * Use Db's impl() directly to always be in the right thread for sure. 2012-06-20 23:49:34 +02:00
Jeff Mitchell
03c3c3d29a Work around wonkiness in track info view before similar tracks are
loaded
2012-06-20 17:44:36 -04:00
Christian Muehlhaeuser
024392140e * Removed obsolete and problematic pragma call. 2012-06-20 23:39:29 +02:00
Christian Muehlhaeuser
b53a9b6d67 * Keep retrying when error indicates a pragma query. 2012-06-20 23:25:01 +02:00
Jeff Mitchell
5dfe460f9d Fix positioning...moveLeft/Right don't do what you think they do... 2012-06-20 16:19:43 -04:00
Christian Muehlhaeuser
ba897efada * Clean up ChangeLog a bit. 2012-06-20 22:05:47 +02:00
Christian Muehlhaeuser
c2dd22ed40 * Prevent dead-locking. 2012-06-20 22:02:19 +02:00
Jeff Mitchell
6cd80cf047 Enforce minimum distance between allow/deny buttons for ACL request 2012-06-20 15:58:23 -04:00
Jason Herskowitz
859d1cbf7d Add some stuff we forgot in changelog. 2012-06-20 16:43:01 -03:00
Christian Muehlhaeuser
3e0068b83c * Don't duplicate a query's results when dropping a result onto another playlist. 2012-06-20 20:44:35 +02:00
Christian Muehlhaeuser
052759dce5 * Fixed dragging unresolved queries from PlayableModel. 2012-06-20 20:39:32 +02:00
Christian Muehlhaeuser
ae6fda4cc8 * Silly style cleanups. 2012-06-20 19:54:35 +02:00
Christian Muehlhaeuser
056213bc27 * Make Source::addCommand synchronous again, so we can rely on m_lastCmdGuid being set. 2012-06-20 19:34:51 +02:00
Christian Muehlhaeuser
faf6374967 * Tweaked track page some more. 2012-06-20 17:40:33 +02:00
Christian Muehlhaeuser
dce0615a28 * Tweaked artist page some more. 2012-06-20 17:40:32 +02:00
Christian Muehlhaeuser
27ea1ea793 * Prevent duplicate accounts IDs in settings. 2012-06-20 17:40:32 +02:00
Christian Muehlhaeuser
6fd839c237 * Elide source names earlier. 2012-06-20 17:40:32 +02:00
Christian Muehlhaeuser
fba255cc13 * Removed obsolete loadingStarted/Finished methods in ArtistInfoWidget. 2012-06-20 17:40:31 +02:00
Jeff Mitchell
64837d8a0c Save ACL entries when in headless mode, so going non-headless doesn't
ask for them again.
2012-06-20 10:14:06 -04:00
Christian Muehlhaeuser
e0a635b310 * No need to set the auto_vacuum pragma per connection. 2012-06-20 13:36:05 +02:00
Christian Muehlhaeuser
3f0cb9baf6 * Don't use stage.toma.hk for the release. 2012-06-20 13:26:45 +02:00
Christian Muehlhaeuser
11d4c38386 * Bumped liblastfm and libattica deps. 2012-06-20 13:23:45 +02:00
Christian Muehlhaeuser
5f799ea5d5 * Reverted QSQLite import. Should be obsolete now. 2012-06-20 11:10:52 +02:00
Christian Muehlhaeuser
3b87444cd9 * No need to manually clone impls anymore. 2012-06-20 11:04:22 +02:00
Christian Muehlhaeuser
7bb61f1a38 * Make sure we have a separate database impl returned for each thread. 2012-06-20 11:04:06 +02:00
Christian Muehlhaeuser
a7642d12d1 * Fixed copy. 2012-06-20 11:03:18 +02:00
Christian Muehlhaeuser
61d766be11 * Remove obsolete Database::m_indexReady. 2012-06-20 10:50:15 +02:00
Jeff Mitchell
2603a7d28b Remove some warnings 2012-06-19 22:24:20 -04:00
Tomahawk CI
6e46b03f86 Automatic merge of Transifex translations 2012-06-19 22:16:50 +00:00
Jeff Mitchell
269ffb3508 Set crash reporter inactive in headless mode 2012-06-19 16:48:22 -04:00
Jeff Mitchell
c9841985a1 Forgot this line... 2012-06-19 16:10:01 -04:00
Jeff Mitchell
63c64de455 I guess actually fix the headless crash? Not sure why this should be
needed, but it works
2012-06-19 12:21:36 -04:00
Jeff Mitchell
3b40b9b4a9 Don't crash when running with --headless 2012-06-19 11:36:48 -04:00
Jeff Mitchell
f2989dd4d9 Add link to legal page in Help menu. Note: will work properly when stage
is pushed to main, as .html differs
2012-06-18 20:27:55 -04:00
Leo Franchi
8f7a6de801 Only cache last.fm similar artists/tracks if there is data 2012-06-19 01:22:59 +02:00
Leo Franchi
8abc08c5a9 Copy shortened track link from page context menu.
Slipped in in the big IdThreadWorker revert in previous commit
2012-06-19 01:21:22 +02:00
Leo Franchi
8558cdfc8e Revert usage of boost::threads to speed up id loading. Our MinGW boost package is broken.
Revert "Set future on artist/album immediately after creating promise"

This reverts commit 9d9fae75b5.

Revert "Remove duplicate function, and fix copy link from sidebar track page"

This reverts commit 1fe28714cb.

Revert "Catch by const ref and assert to check hypothesis"

This reverts commit a8f0053fc8.

Revert "Reimplement QApplication::notify() to print out something about the exception if we can"

This reverts commit 7b8136a36e.

Revert "Catch boost::unitialized_future if it is thrown"

This reverts commit c1d678e2b1.

Revert "Another boost/thread.hpp include rather than specific boost headers"

This reverts commit ee8d3e6a92.

Revert "One include to (hopefully) rule them all"

This reverts commit 52752cd234.

Revert "Add another boost include"

This reverts commit 7bec03560a.

Revert "Try some more includes"

This reverts commit e56f2f7ee0.

Revert "Remove old code"

This reverts commit 69b56e0836.

Revert "Fix oversight in queue draining"

This reverts commit 8c48af423c.

Revert "Safer locking of id() to prevent deadlocks"

This reverts commit 3f2906d4d1.

Revert "Cleanup fixes"

This reverts commit cd3eeb2951.

Revert "Experimental asynchronous artist and album id loading"

This reverts commit 75eb35397d.

Conflicts:

	src/libtomahawk/CMakeLists.txt
2012-06-19 00:47:23 +02:00
Leo Franchi
1e0a00dbe2 Encode spaces as + and unify encoding logic in GlobalActionManager 2012-06-19 00:47:23 +02:00
Tomahawk CI
0f6b903139 Automatic merge of Transifex translations 2012-06-18 22:16:45 +00:00
Jeff Mitchell
7e2266e001 Changelogify 2012-06-18 17:09:27 -04:00
Jeff Mitchell
df11500305 Bump Attica dep 2012-06-18 17:07:51 -04:00
Jeff Mitchell
2f5e2b231a Merge branch 'master' into atticafixes-waiting-on-attica-release 2012-06-18 16:59:26 -04:00
Jeff Mitchell
ccebc6b9f9 Move proxy factory setup in xmpp client 2012-06-18 16:59:20 -04:00
Jeff Mitchell
bb44c9a2e9 Remove some debug and change around some proxy ordering to make sense when no hostname is passed in 2012-06-18 16:18:44 -04:00
Jeff Mitchell
fda615f0ab Make headless mode use the Stream ACL by default 2012-06-18 11:36:08 -04:00
Jeff Mitchell
da17f467cf Wanted to get this in there before 0.5 goes wild, as doing this in a
cleaner code fashion requires re-authing your peers. Adds a friendyname
to Users, so that when there is more fine-grained ACL management you can
set/show the friendly name along with the known screen names of a user.
2012-06-18 11:11:11 -04:00
Jeff Mitchell
cec2eb738f Merge branch 'thqsqlite' 2012-06-18 04:59:53 -04:00
Jeff Mitchell
46bd366643 Refresh delegates on both add and remove; also, if ACL can't be displayed cause it's the wrong item type, just don't paint anything at all 2012-06-18 04:43:12 -04:00
Jeff Mitchell
4aadb95f5d Refresh delegates on both add and remove; also, if ACL can't be displayed cause it's the wrong item type, just don't paint anything at all 2012-06-18 04:43:00 -04:00
Jeff Mitchell
8a61e89d83 Merge branch 'master' into thqsqlite 2012-06-18 04:22:47 -04:00
Jeff Mitchell
4a8710ce7f Add FindSqlite and use its values 2012-06-18 04:22:41 -04:00
Jeff Mitchell
09882283d1 Remove unneeded files 2012-06-18 04:09:58 -04:00
Jeff Mitchell
7b05ad29e6 Import QSQLite from 4.8.1. Import Clementine's smain.cpp and
CMakeLists.txt (thanks, Clementine!). Do some name changing for sanity's
sake so we're sure of which plugin we're actually connected to.
2012-06-18 04:08:48 -04:00
Jeff Mitchell
b88be39f54 Fix checking result of ACL against name 2012-06-18 03:35:24 -04:00
Jeff Mitchell
0383378385 Fix cases where JID could be reduced to nothing 2012-06-18 03:14:09 -04:00
Jeff Mitchell
3ab01c1b46 Fix typo 2012-06-18 02:24:58 -04:00
Jeff Mitchell
167d71539a Merge branch 'aclwidget'. NOTE: If you have previous [acl] entries in
your Tomahawk.conf from previous testing, be sure to remove them, or
clear them from the button in Settings->Advanced.

Conflicts:
	ChangeLog
2012-06-18 01:56:53 -04:00
Jeff Mitchell
df269ae7a6 Update ChangeLog 2012-06-18 01:42:45 -04:00
Jeff Mitchell
7896d15536 For custom JobItems, the delegate is parented to the view, so don't attempt to delete it in the destructor of the item 2012-06-18 01:29:40 -04:00
Jeff Mitchell
4a1adbfb8a Eep, use name, not nodeid, in the shortening 2012-06-18 01:20:13 -04:00
Jeff Mitchell
a82a8b2abe Add ACL-clearing button to settings 2012-06-18 01:03:34 -04:00
Jeff Mitchell
f1a0de0f53 Start on acl entry clearing; also change where we strip the JID 2012-06-18 00:22:06 -04:00
Jeff Mitchell
8603667270 Knock down acl issue num 3: XMPP shows and auths against full jid with resource, sometimes 2012-06-18 00:08:40 -04:00
Jeff Mitchell
2c28325ae3 Fix item 1) in remaining ACL issues for 0.5...change text of adding-friend prompt to prevent confusion 2012-06-17 23:53:48 -04:00
Jeff Mitchell
4f1579274e Always refresh delegates on item finish, not just when that item had a custom delegate, in case it's switched rows 2012-06-17 23:10:06 -04:00
Jeff Mitchell
259e4f3da9 Fix ACL saving/loading 2012-06-17 22:24:49 -04:00
Jeff Mitchell
554cb5d7a1 Properly handle delegates so that a) we don't crash and b) we actually
show the proper delegates for items when there are more than two in the
queue. This pretty much makes the job view stuff fully work, except
somehow saving got broken.
2012-06-17 18:56:07 -04:00
Leo Franchi
9d9fae75b5 Set future on artist/album immediately after creating promise 2012-06-17 22:34:31 +02:00
Leo Franchi
1fe28714cb Remove duplicate function, and fix copy link from sidebar track page 2012-06-17 16:51:56 +02:00
Leo Franchi
a8f0053fc8 Catch by const ref and assert to check hypothesis 2012-06-17 15:30:27 +02:00
Leo Franchi
7b8136a36e Reimplement QApplication::notify() to print out something about the exception if we can 2012-06-17 15:29:47 +02:00
Leo Franchi
c1d678e2b1 Catch boost::unitialized_future if it is thrown 2012-06-17 13:38:21 +02:00
Leo Franchi
ee8d3e6a92 Another boost/thread.hpp include rather than specific boost headers 2012-06-17 10:01:46 +02:00
Leo Franchi
52752cd234 One include to (hopefully) rule them all 2012-06-17 09:52:49 +02:00
Leo Franchi
7bec03560a Add another boost include 2012-06-17 09:49:03 +02:00
Leo Franchi
e56f2f7ee0 Try some more includes 2012-06-17 09:44:11 +02:00
Leo Franchi
69b56e0836 Remove old code 2012-06-17 09:01:09 +02:00
Leo Franchi
8c48af423c Fix oversight in queue draining 2012-06-17 09:01:09 +02:00
Leo Franchi
3f2906d4d1 Safer locking of id() to prevent deadlocks 2012-06-17 09:01:08 +02:00
Leo Franchi
cd3eeb2951 Cleanup fixes 2012-06-17 09:01:08 +02:00
Leo Franchi
75eb35397d Experimental asynchronous artist and album id loading 2012-06-17 09:01:08 +02:00
Tomahawk CI
8c6af48358 Automatic merge of Transifex translations 2012-06-16 22:19:44 +00:00
Leo Franchi
acd6e75a10 Factor out some code 2012-06-17 00:09:59 +02:00
Leo Franchi
89ab3344d4 Create copyable artist and album page links 2012-06-17 00:09:03 +02:00
Leo Franchi
b1b9ee46db Handle tomahawk://import/playlist as well as playlist/import as it's more consistent 2012-06-16 21:05:20 +02:00
Leo Franchi
a53ef7370c Also check if a query has a result to determine equality, instead of only brittle string comparison 2012-06-16 16:57:27 +02:00
Leo Franchi
bc6cd4008d TWK-936: Allow loading playlists with new open/playlist tomahawk link 2012-06-16 16:57:02 +02:00
Christian Muehlhaeuser
1d5e199d89 * Set the bgcolors in one central place. 2012-06-16 14:11:07 +02:00
Christian Muehlhaeuser
2290da1648 * Have a different color for the info sidebar on track pages. 2012-06-16 14:04:46 +02:00
Christian Muehlhaeuser
3b885aa730 * Show a styled vertical scrollbar for artist's biographies, if needed. 2012-06-16 12:48:09 +02:00
Christian Muehlhaeuser
c15e4062b2 * Try using QPalette::BrightText to make sure the text is always visible. 2012-06-16 12:31:01 +02:00
Christian Muehlhaeuser
3b5ca53539 * Fixed AudioControls layouts for OSX. 2012-06-16 12:28:20 +02:00
Christian Muehlhaeuser
b2ebd1adcb * Make sure jump icon fits in the space we're painting. 2012-06-16 12:20:56 +02:00
Christian Muehlhaeuser
e103a202eb * Pixel-sizes shouldn't need to be platform-specific. 2012-06-16 12:06:24 +02:00
Christian Muehlhaeuser
63da02bc27 * Updated ChangeLog. 2012-06-16 11:38:55 +02:00
Christian Muehlhaeuser
10858d0a6b * Check hover index to display info buttons in TreeItemDelegate. 2012-06-16 11:25:57 +02:00
Christian Muehlhaeuser
69cec1b28e * Show info buttons for tracks in TreeViews. 2012-06-16 11:25:13 +02:00
Christian Muehlhaeuser
bae8de0ca5 * Use displayQuery for more readable code. 2012-06-16 11:24:49 +02:00
Christian Muehlhaeuser
867761f449 * Fixed Artist-/AlbumPlaylistInterface's overzealous caching. 2012-06-16 10:55:01 +02:00
Christian Muehlhaeuser
5e0748a1f9 * Fixed text-alignment in TreeItemDelegate. 2012-06-16 10:48:10 +02:00
Christian Muehlhaeuser
7b89645718 * User-friendlier (?) status texts. 2012-06-16 10:34:03 +02:00
Christian Muehlhaeuser
d1c41f4ad0 * Hide dupe albums on album page. 2012-06-16 09:02:03 +02:00
Christian Muehlhaeuser
8a3c962779 * Hide dupe albums on artist page. 2012-06-16 09:00:11 +02:00
Christian Muehlhaeuser
5d297808da * Hide dupe album & artists in SearchWidget. 2012-06-16 08:47:26 +02:00
Christian Muehlhaeuser
9b89f36387 * Support filtering out dupe items in PlayableProxyModel. 2012-06-16 08:46:58 +02:00
Christian Muehlhaeuser
fe8149ee8a * Fixed sorting by score. 2012-06-16 08:26:20 +02:00
Christian Muehlhaeuser
e1b0125a46 * Handle non left-aligned QueryLabels (badly). Will have to be rewritten soon. 2012-06-16 08:21:52 +02:00
Christian Muehlhaeuser
44bf61adc0 * Hide album label on track page if no album name is set. 2012-06-16 08:21:21 +02:00
Christian Muehlhaeuser
9849a8ee58 * Fixed SQL escaping. 2012-06-16 07:08:57 +02:00
Christian Muehlhaeuser
89cd75a2ed * Style cleanup. 2012-06-16 07:08:38 +02:00
Christian Muehlhaeuser
eef2c0a89a * Always show a vertical scrollbar on the track page, so we don't have to shift things around once loading finished. 2012-06-16 06:42:18 +02:00
Christian Muehlhaeuser
288f20a8f1 * GridView in auto-resize mode now sets a maximum number of visible items, so we never show half-empty rows. 2012-06-16 06:41:29 +02:00
Christian Muehlhaeuser
5ff36d670f * PlayableProxyModel now supports setting a maximum amount of visible items. 2012-06-16 06:40:19 +02:00
Christian Muehlhaeuser
264095d351 * UI fixes for Track page. 2012-06-16 03:03:45 +02:00
Christian Muehlhaeuser
11d1fce78f * Check auto-resizing GridView when items are being added or removed. 2012-06-16 03:03:18 +02:00
Tomahawk CI
45a65e219a Automatic merge of Transifex translations 2012-06-15 22:16:48 +00:00
Jeff Mitchell
10bb33590b Fix crash from loading invalid entries from cache 2012-06-15 15:01:30 -04:00
Jeff Mitchell
285498d638 Fix half-baked fix 2012-06-15 14:35:57 -04:00
Jeff Mitchell
805a942cf6 Fix possible crash due to saving invalid qvariants 2012-06-15 14:32:01 -04:00
Jeff Mitchell
7f2f7d642b Merge branch 'master' into aclwidget
Conflicts:
	src/libtomahawk/utils/TomahawkUtilsGui.cpp
	src/libtomahawk/utils/TomahawkUtilsGui.h
2012-06-15 14:29:46 -04:00
Leo Franchi
6870cc6f88 Revert previously mostly-bad commit, oops. 2012-06-15 18:47:03 +02:00
Leo Franchi
9d5d6b7360 Don't track shared pointers 2012-06-15 16:19:42 +02:00
Leo Franchi
cf4ea429f6 Fix focus issue with native cocoa views by turning off alien widgets 2012-06-15 15:38:59 +02:00
Leo Franchi
e18594994c Show delete playlist dialog as a sheet on OS X 2012-06-15 10:22:53 +02:00
Christian Muehlhaeuser
514841cf1c * Updated README. 2012-06-15 10:28:16 +03:00
Leo Franchi
181bff132f Require libechonest 1.2 as it's been out for ages and has some important fixes 2012-06-15 09:24:01 +02:00
Christian Muehlhaeuser
f20b8db56a * Attica & QuaZip are hard deps by now. 2012-06-15 10:18:53 +03:00
Christian Muehlhaeuser
4189f370a6 Updated README. 2012-06-15 10:11:03 +03:00
Leo Franchi
b2becc6287 TWK-934: Don't crash when checking TreeView for jump-to-track 2012-06-15 08:58:03 +02:00
Tomahawk CI
2f6b08948a Automatic merge of Transifex translations 2012-06-14 22:16:50 +00:00
Christian Muehlhaeuser
7552ef4cce * Disable queue's tooltip for 0.5. Needs some more fixing. 2012-06-14 21:53:58 +02:00
Christian Muehlhaeuser
18bd293074 * Let track page automatically resize. 2012-06-14 21:47:15 +02:00
Christian Muehlhaeuser
87dd871c6c * GridView now supports auto-resizing to fit its contents. 2012-06-14 21:46:17 +02:00
Christian Muehlhaeuser
4fad494630 * Add PlayableModel::itemSize(). 2012-06-14 21:45:29 +02:00
Christian Muehlhaeuser
848721902c * Silly style cleanup. 2012-06-14 21:45:08 +02:00
Christian Muehlhaeuser
7abd653b31 * Style cleanup. 2012-06-14 21:41:17 +02:00
Leo Franchi
c41c7eaa94 Provide base64 encode and decode to js resolvers 2012-06-14 21:21:58 +02:00
Leo Franchi
96d89e230c Uncomment out some migration code :) 2012-06-14 20:57:17 +02:00
Leo Franchi
6d79fc2ab8 Set friendly name for spotify account to prevent the dupe check from deleting it 2012-06-14 20:56:59 +02:00
Leo Franchi
bb57108182 Set account friendly name for spotify account 2012-06-14 20:56:19 +02:00
Jeff Mitchell
5d890582c7 Merge branch 'master' into atticafixes-waiting-on-attica-release 2012-06-14 13:20:34 -04:00
Leo Franchi
26733aa85f Add a Copy Link action and keep Export Playlist for static playlists 2012-06-14 17:09:38 +02:00
Leo Franchi
5b98bc9c75 Style and fix merge 2012-06-14 17:09:13 +02:00
Leo Franchi
c2363e0967 Enable stage playlist exporting
rename
2012-06-14 16:46:07 +02:00
Leo Franchi
a1874a941d Sort new releases by date, show newest release first. 2012-06-14 09:21:00 +02:00
Christian Muehlhaeuser
a512d85672 * Fixed accidental dupe connect. 2012-06-14 08:47:15 +02:00
Christian Muehlhaeuser
6c725e72e7 * Use styleScrollBar method. 2012-06-14 08:44:56 +02:00
Christian Muehlhaeuser
d4dff8809a * Added styleScrollBar method to TomahawkUtils. 2012-06-14 08:44:36 +02:00
Christian Muehlhaeuser
c99df9257c * Added custom scrollbars for testing. 2012-06-14 07:34:43 +02:00
Christian Muehlhaeuser
9bea6b8709 * Added scrollbar border-images. 2012-06-14 07:34:43 +02:00
Christian Muehlhaeuser
e831ba9c46 * Fixed typo in SeekSlider. 2012-06-14 07:34:43 +02:00
Christian Muehlhaeuser
ab5fe146d4 * Swap Albums & Related Artists. 2012-06-14 07:34:43 +02:00
Tomahawk CI
7b1a586a8b Automatic merge of Transifex translations 2012-06-13 22:16:55 +00:00
Christian Muehlhaeuser
9c9dbb33c4 Revert "Swap placement of Albums and Related Artists on new album page and shrink label size a few points"
This reverts commit 2656c4f3f3.
2012-06-13 20:45:17 +02:00
Jason Herskowitz
2656c4f3f3 Swap placement of Albums and Related Artists on new album page and shrink label size a few points 2012-06-13 10:22:06 -04:00
Christian Muehlhaeuser
e3aefb78f7 * Fixed artist page's bg color on OSX. 2012-06-13 09:56:38 +02:00
Christian Muehlhaeuser
236fe91646 * Try fixing solid bg color on OSX. 2012-06-13 09:39:03 +02:00
Christian Muehlhaeuser
52dcf924a4 * New track page. Again, still a bit WIP. 2012-06-13 09:17:53 +02:00
Christian Muehlhaeuser
1a52b99d4f * Cleanup ui file. 2012-06-13 09:17:53 +02:00
Leo Franchi
339e9a3869 TWK-579: Always set stretch factor to avoid super wide default widths 2012-06-13 09:16:25 +02:00
Christian Muehlhaeuser
9935aca127 * New artist page. Tweaks, shadows etc. coming. 2012-06-13 08:48:38 +02:00
Christian Muehlhaeuser
0bb74d949f * Fixed NSIS template. 2012-06-13 01:24:20 +02:00
Tomahawk CI
274d85216b Automatic merge of Transifex translations 2012-06-12 22:16:54 +00:00
Leo Franchi
d18439b4ae Revert "Enable Subscribing on SpotifyPlaylists"
Looks fine but holding off until post-0.5.0 is tagged as I would like to test it quite thoroughly :)

This reverts commit 8401befe6b.
2012-06-12 23:26:13 +02:00
Hugo Lindström
8401befe6b Enable Subscribing on SpotifyPlaylists 2012-06-12 23:05:37 +02:00
Christian Muehlhaeuser
14d7b882fa * Don't fade out SocialWidget. 2012-06-12 21:27:00 +02:00
Christian Muehlhaeuser
a00c931192 * Make SocialWidget less transparent. 2012-06-12 21:17:39 +02:00
Christian Muehlhaeuser
bcd7d82654 * Missing breaks. 2012-06-12 19:46:33 +02:00
Leo Franchi
833a9f59d3 Don't crash when moving the mouse after hitting Cancel in the Share widget 2012-06-12 17:29:34 +02:00
Leo Franchi
3456f5d038 Mark liblastfm as required 2012-06-12 17:29:34 +02:00
Jason Herskowitz
e72062b05c Removed LOVING IT from tweet text since you didn't actually love it, and changed SHARE button text to TWEET for now until we get Facebook back in 2012-06-12 10:03:40 -04:00
Leo Franchi
ecc8634209 Only remove from pipeline on destruction if still running 2012-06-12 09:39:39 +02:00
Christian Muehlhaeuser
8cf7f0bb2b * Make sure m_defaultImage is properly init'ed. 2012-06-12 09:31:40 +02:00
Leo Franchi
f2503afd69 Try letting NSString live longer 2012-06-12 09:14:31 +02:00
Christian Muehlhaeuser
b3ebcb59c0 * Only try loading covers once. 2012-06-12 08:58:40 +02:00
Christian Muehlhaeuser
d0a8f2d1b9 * Safer cover loading for Artists & Albums. 2012-06-12 08:41:10 +02:00
Christian Muehlhaeuser
82febe8da3 * Hardcode foreground color for OverlayWidgets. Needs improved color management eventually. 2012-06-12 07:48:04 +02:00
Christian Muehlhaeuser
6a8edd688b * Use jump-label in AudioControls. 2012-06-12 07:45:40 +02:00
Christian Muehlhaeuser
fa4ef44e4a * QueryLabel now supports displaying a jump-label and handles cursor states itself. 2012-06-12 07:45:14 +02:00
Christian Muehlhaeuser
aeeaaadcd2 * Reimplemented ViewManager::pageForInterface. 2012-06-12 07:42:02 +02:00
Christian Muehlhaeuser
4acf96429e * Added jump-link.png to resources. 2012-06-12 07:41:43 +02:00
Christian Muehlhaeuser
35a25c3971 * Don't track history for destroyed widgets. 2012-06-12 05:41:19 +02:00
Christian Muehlhaeuser
f7d3c48b25 * Disable Facebook / Twitter button for 0.5 release. Renamed OK to Share. 2012-06-12 05:27:45 +02:00
Christian Muehlhaeuser
2bb175860b * Prevent more than one SocialWidget showing up at a time. 2012-06-12 05:18:27 +02:00
Christian Muehlhaeuser
caaec5c1c8 * Style cleanup. 2012-06-12 05:12:24 +02:00
Christian Muehlhaeuser
745ccd34ff * Hard-coded posting to Twitter in SocialWidget. 2012-06-12 05:12:08 +02:00
Christian Muehlhaeuser
9c1f200905 * Support posting to all TwitterInfoPlugins. 2012-06-12 05:11:47 +02:00
Christian Muehlhaeuser
13c22e0c72 * Extra safety for AudioEngine. 2012-06-12 04:43:11 +02:00
Christian Muehlhaeuser
9093068504 * Fixed size for share / love buttons. 2012-06-12 04:42:48 +02:00
Christian Muehlhaeuser
a1ef4c252c * Use proper CMake variables for liblastfm. 2012-06-12 01:21:25 +02:00
Christian Muehlhaeuser
6c94e25286 * Fixed FindLibLastFm.cmake. 2012-06-12 01:21:09 +02:00
Christian Muehlhaeuser
5e731953a3 * Fixed FindLibLastFm.cmak comments. 2012-06-12 01:18:07 +02:00
Christian Muehlhaeuser
cc320a99f2 * Check for liblastfm 1.0.0 being available. 2012-06-12 01:12:33 +02:00
Christian Muehlhaeuser
3b7a057dbb * Added infoplugins to DMG. 2012-06-12 00:57:14 +02:00
Tomahawk CI
14ab48ae36 Automatic merge of Transifex translations 2012-06-11 22:56:16 +00:00
Christian Muehlhaeuser
88ea5f7855 * Fixed macdeploy scripts for VLC2 and Qt 4.8.2. 2012-06-12 00:47:37 +02:00
Dominik Schmidt
695feed2b6 Include Qt translations 2012-06-12 02:26:11 +02:00
Christian Muehlhaeuser
eae9194aa8 Merge pull request #99 from eartle/master
Bundle script changes for VLC 2.0.
2012-06-11 15:17:03 -07:00
Christian Muehlhaeuser
a9a86f8043 * Fixed usage of new liblastfm. 2012-06-11 22:15:09 +02:00
Christian Muehlhaeuser
d16c608610 * Fixed CMakeLists.txt. 2012-06-11 22:15:09 +02:00
Christian Muehlhaeuser
4f261b1711 * Removed liblastfm2 from thirdparty/CMakeLists.txt. 2012-06-11 22:15:09 +02:00
Christian Muehlhaeuser
d77c9eb3eb * Removed liblastfm2 from thirdparty/. 2012-06-11 22:15:09 +02:00
Dominik Schmidt
6f9a79404d Really only find liblastfm-1.0.0 include dirs 2012-06-11 22:08:35 +02:00
Dominik Schmidt
22bca7ed12 Update FindLibLastFm for liblastfm-1.0.0 2012-06-11 22:04:50 +02:00
Dominik Schmidt
31f4c4f656 liblastfm pulls in ${QT_LIBRARIES} as dep for libtomahawk, mention all needed components explicitly as well 2012-06-11 20:37:49 +02:00
Leo Franchi
26729f6f87 Extra safety, but wtf 2012-06-11 11:03:40 +02:00
Tomahawk CI
36bbeb9d5a Automatic merge of Transifex translations 2012-06-10 22:16:56 +00:00
Leo Franchi
5a534954cc Explicitly set working dir of script resolvers being launched 2012-06-10 22:53:29 +02:00
Leo Franchi
9218488409 TWK-879: Ensure bredcrumb arrow is the right proportions 2012-06-10 22:02:19 +02:00
Leo Franchi
c114657f81 TWK-911: Fix placement of social widget 2012-06-10 17:57:26 +02:00
Leo Franchi
60f8241305 Draw small text with highlighted color in large delegate if selected 2012-06-10 17:57:26 +02:00
Leo Franchi
4bc703b477 Make grey text visible when highlighted in playlist delegate 2012-06-10 17:57:26 +02:00
Leo Franchi
99d84c6489 Only install from attica when checking, even if we have checked + uninstalled 2012-06-10 17:57:25 +02:00
Tomahawk CI
37d1c88b42 Automatic merge of Transifex translations 2012-06-09 22:16:47 +00:00
Tomahawk CI
bdd809cc30 Automatic merge of Transifex translations 2012-06-08 22:16:50 +00:00
Leo Franchi
2462c27f05 Comment out fromPath release until I work out why it makes Hugo's Tomahawk unhappy 2012-06-08 23:06:54 +03:00
Jason Herskowitz
ee76eb3dee Make the 3D logo the right color red since it somehow got too pale when I first 3Dified it 2012-06-08 15:10:53 -04:00
Christian Muehlhaeuser
f520217f51 * Fixed XspfUpdater for headless. 2012-06-08 20:08:33 +02:00
Christian Muehlhaeuser
c02edee100 * Fixed GlobalActionManager for headless. 2012-06-08 20:08:33 +02:00
Christian Muehlhaeuser
b908854d59 * Fixed Account for headless. 2012-06-08 20:08:32 +02:00
Christian Muehlhaeuser
e9a1157e00 * Fixed DbCmd_UpdateSearchIndex for headless. 2012-06-08 20:08:32 +02:00
Christian Muehlhaeuser
eecf2c38d2 * Fixed ShortenedLinkParser for headless. 2012-06-08 20:08:32 +02:00
Christian Muehlhaeuser
320182427f * Fixed SipPlugin for headless. 2012-06-08 20:08:31 +02:00
Christian Muehlhaeuser
973436a09b * Fixed Source for headless. 2012-06-08 20:08:30 +02:00
Christian Muehlhaeuser
1abe69079f * Fixed Query for headless. 2012-06-08 20:08:30 +02:00
Christian Muehlhaeuser
13945286ac * Fixed ACLRegistry for headless. 2012-06-08 20:08:30 +02:00
Leo Franchi
53dd69e2f3 TWK-736: Tooltip for currently playing song for peers 2012-06-08 16:37:33 +02:00
Leo Franchi
ce19d8c70b Move Last.fm account to libtomahawk 2012-06-08 15:59:23 +02:00
Leo Franchi
c9edf98dd2 Better reasoning in comments 2012-06-08 15:44:36 +02:00
Leo Franchi
7af7a8784f Remove assert as it might happen in valid conditions sometimes 2012-06-08 15:43:06 +02:00
Leo Franchi
e0d6d5ef6b Move spotify account to libtomahawk 2012-06-08 15:32:08 +02:00
Leo Franchi
59ab945f0b Fix stupid regression in sizegrip hiding when fullscreening 2012-06-08 14:19:08 +02:00
Leo Franchi
224b46f5b0 Only wait for shutdown of script resolver if it's running 2012-06-08 09:25:11 +02:00
Leo Franchi
69ed522954 TWK-922: Text fix for Account delegate 2012-06-08 09:25:11 +02:00
Leo Franchi
e36ea3b263 Don't use auto-release pool and manually release created NSString* 2012-06-08 09:25:10 +02:00
Tomahawk CI
658f919104 Automatic merge of Transifex translations 2012-06-07 22:16:55 +00:00
Christian Muehlhaeuser
171f0e314b * Keep retrying on commit transaction locks. 2012-06-07 14:35:49 +02:00
Christian Muehlhaeuser
8d125f128c * Send version string along when requesting providers.xml from server. 2012-06-07 14:12:17 +02:00
Christian Muehlhaeuser
1272973b52 * Make sure Phonon errors show up on console, and not just the log file. 2012-06-07 14:11:18 +02:00
Christian Muehlhaeuser
aadd7fea2b * Prevent race condition when cloning DatabaseImpls. 2012-06-07 13:32:54 +02:00
Christian Muehlhaeuser
2389770d8a * Moved reindexing to FuzzyIndex. 2012-06-07 13:25:33 +02:00
Christian Muehlhaeuser
7dabdc0a68 * Make FuzzyIndex robuster. 2012-06-07 13:25:02 +02:00
Christian Muehlhaeuser
f174afbd56 * Make artist & album names clickable on track page. 2012-06-07 13:07:11 +02:00
Christian Muehlhaeuser
197dda1ff7 * Set default vertical alignment for QueryLabels to be centered. 2012-06-07 13:01:02 +02:00
Christian Muehlhaeuser
145d95166d * Got rid of all direct InfoSystem calls from ArtistInfoWidget. 2012-06-07 12:16:33 +02:00
Christian Muehlhaeuser
5f473a0c5c * Support loading and cache artists' biographies in Artist object directly. 2012-06-07 12:15:38 +02:00
Christian Muehlhaeuser
f5aeeeb9c8 * OverlayWidget uses PlaylistView as an event-filter for Drag-n-Drop events. 2012-06-07 11:24:20 +02:00
Christian Muehlhaeuser
f89f119078 * Notify results about their originating resolver. 2012-06-07 10:43:26 +02:00
Christian Muehlhaeuser
07660c3f81 * Refresh results when the solve status changed. 2012-06-07 10:42:40 +02:00
Christian Muehlhaeuser
530a420fb4 * Tomahawk::Result now keeps track of the originating resolver and maintains a proper online state. 2012-06-07 10:41:26 +02:00
Christian Muehlhaeuser
ff50bcb545 * Fixed slot signature. 2012-06-07 10:37:58 +02:00
Christian Muehlhaeuser
96e12a0f90 * Register Tomahawk::Resolver* as a meta-type. 2012-06-07 10:37:31 +02:00
Christian Muehlhaeuser
18a1ed4c7d * Less work for SourceDelegate now. 2012-06-07 09:37:28 +02:00
Christian Muehlhaeuser
0d85d15002 * Manage source's off-/online state for the local source, too. 2012-06-07 09:35:35 +02:00
Christian Muehlhaeuser
1b743b0e9d * Let local source know when we go off- / online. 2012-06-07 09:16:37 +02:00
Christian Muehlhaeuser
f1226cd7e4 * Show a loading spinner for 'Newest Stations / Playlists'. 2012-06-07 08:57:04 +02:00
Christian Muehlhaeuser
acc4fa8c9a * Emit loadingStarted() / -Finished() signals from RecentPlaylistsModel. 2012-06-07 08:56:08 +02:00
Christian Muehlhaeuser
8ba433afa5 * Ignore incompatible models. 2012-06-07 08:55:34 +02:00
Christian Muehlhaeuser
8c9d209940 * Removed old sql escaping helper in TomahawkUtils. 2012-06-07 08:34:20 +02:00
Christian Muehlhaeuser
077409ae7e * Use TomahawkSqlQuery's new escaping method. 2012-06-07 08:33:56 +02:00
Christian Muehlhaeuser
14ee71e665 * Added a convenient sql escaping method to TomahawkSqlQuery. It uses the sql drivers internal escaping mechanism. 2012-06-07 08:33:08 +02:00
Christian Muehlhaeuser
9443992ff9 * Keep retrying sql queries forever, as long as the returned db error indicates the db is just busy / locked. 2012-06-07 08:20:55 +02:00
Christian Muehlhaeuser
25ef791afc * Style fix, once again. 2012-06-07 08:12:29 +02:00
Christian Muehlhaeuser
1df157976a * We can rely on stateChanged() signal for updating a source's sidebar info now. 2012-06-07 08:12:28 +02:00
Christian Muehlhaeuser
f57c0c5b74 * More consistent stateChanged() behaviour for sources. 2012-06-07 08:12:28 +02:00
Christian Muehlhaeuser
e550ffe2b0 * Immediately clear the a source's current track pointer after playback finished. 2012-06-07 08:12:28 +02:00
Tomahawk CI
94a8aaced7 Automatic merge of Transifex translations 2012-06-06 22:17:01 +00:00
Jason Herskowitz
0fd008ba41 Changelogify. What did I miss? 2012-06-06 14:55:41 -04:00
Christian Muehlhaeuser
8c9deaf4ac * More accurate debug output. 2012-06-06 16:45:33 +02:00
Christian Muehlhaeuser
6d48ffc298 * One pixel more space for WelcomeWidget's figures. 2012-06-06 16:45:03 +02:00
Christian Muehlhaeuser
447536958e * Give sidebar figures a bit more space and use a thicker font. 2012-06-06 16:42:22 +02:00
Christian Muehlhaeuser
43d2bb7716 * Fancy avatars are now scaled ignoring the aspect ratio. This fixed some odd clipping issues. 2012-06-06 16:40:06 +02:00
Christian Muehlhaeuser
06d79cd788 * Enable shared qsqlite caches. 2012-06-06 16:32:43 +02:00
Christian Muehlhaeuser
d481ffbd90 * Use our own (fail-safer) commit transaction method. 2012-06-06 16:26:12 +02:00
Christian Muehlhaeuser
d8c3006cb4 * Added retry blocks for failed (busy) sql queries & commits. 2012-06-06 16:25:44 +02:00
Christian Muehlhaeuser
872d8a3da5 * Added TomahawkUtils::msleep( uint ). Sigh. 2012-06-06 16:24:39 +02:00
Christian Muehlhaeuser
2dc73d04af * Reuse precalculated connection name. 2012-06-06 16:02:49 +02:00
Leo Franchi
28e15122ea Live longer, dict 2012-06-05 23:31:30 +01:00
Tomahawk CI
89c0e71874 Automatic merge of Transifex translations 2012-06-05 22:17:07 +00:00
Leo Franchi
338a39fe5b Attempt to make sizegrip fix work from 10.6 builds 2012-06-05 09:18:33 +01:00
Leo Franchi
c001acffee Don't leak 2012-06-05 09:18:32 +01:00
Leo Franchi
a8ff291a37 Faster pixmap fading 2012-06-05 09:18:32 +01:00
Leo Franchi
8ba4cb66ea Declare method as well 2012-06-05 09:18:31 +01:00
Leo Franchi
0401c4c88c Another os x ui tweak 2012-06-05 09:18:31 +01:00
Jason Herskowitz
ff0d4bcc26 Now make logo appear on auth page again 2012-06-04 16:49:26 -04:00
Jason Herskowitz
a2082bbb44 More fixes on playdar auth page 2012-06-04 16:42:58 -04:00
Jason Herskowitz
722e1c3d57 Update logo for Tomahawklet Auth Page 2012-06-04 16:34:37 -04:00
Christian Muehlhaeuser
fc5fa6d4ea * Don't manually delete the fuzzy index, instead rely on QObject parenting. 2012-06-04 21:07:12 +02:00
Christian Muehlhaeuser
2b3f850259 * Prioritize query for resolving when requesting to play a still unresolved query. 2012-06-03 21:23:36 +02:00
Christian Muehlhaeuser
2fefdf8118 * Move query to the top of the pipeline if a secondary, prioritized resolve requests arrives. 2012-06-03 21:22:56 +02:00
Christian Muehlhaeuser
2425ec34e5 * Use a separate database connection for each db-worker thread. 2012-06-03 15:38:36 +02:00
Tomahawk CI
93a062c07f Automatic merge of Transifex translations 2012-06-01 22:16:42 +00:00
Jason Herskowitz
6fa0f8a140 Crop SVG logo 2012-06-01 13:32:36 -04:00
Christian Muehlhaeuser
f35821b3b5 * Add an alternative OverlayWidget CTOR for regular QWidgets. 2012-06-01 10:40:48 +02:00
Christian Muehlhaeuser
95dd12aaea * Updated ChangeLog. 2012-06-01 10:31:22 +02:00
Christian Muehlhaeuser
c1885fa6d9 * Support AIFF type audio files. 2012-06-01 10:26:22 +02:00
Christian Muehlhaeuser
72c6b009ff * Fixed resetting empty-tooltip in TreeView. 2012-06-01 09:39:22 +02:00
Christian Muehlhaeuser
a3545712ca * Show a empty-tooltip for collection views. 2012-06-01 09:38:54 +02:00
Christian Muehlhaeuser
393d3370d3 * Set empty-tooltips for Artist-,Album- and TrackInfoWidgets. 2012-06-01 09:05:30 +02:00
Christian Muehlhaeuser
707c2a93d0 * Let TreeView manage empty-tooltips, too. 2012-06-01 09:04:21 +02:00
Christian Muehlhaeuser
4efafaede1 * Set empty-tooltips for Loved-, Recent Additions- and Recent Plays views. 2012-06-01 08:46:51 +02:00
Christian Muehlhaeuser
ba82de45b5 * Only append similar tracks when we received some. 2012-06-01 08:46:13 +02:00
Christian Muehlhaeuser
efc8616a17 * onChanged() will be triggered automatically. 2012-06-01 08:45:38 +02:00
Christian Muehlhaeuser
eff7669dd2 * Always emit a playback history list, even if it's empty. 2012-06-01 08:45:20 +02:00
Christian Muehlhaeuser
ba7556b078 * Emit loading signals for CustomPlaylistViews. 2012-06-01 08:45:00 +02:00
Christian Muehlhaeuser
3928a2d084 * Emit startLoading() when we start loading the playback history. 2012-06-01 08:44:37 +02:00
Christian Muehlhaeuser
8ca0cfa917 * Emit finishedLoading() when we start adding tracks to the model. 2012-06-01 08:44:11 +02:00
Christian Muehlhaeuser
494df4e9a0 * Emit finishedLoading() when we start adding tracks to the model. 2012-06-01 08:43:58 +02:00
Christian Muehlhaeuser
11e1a410e8 * Let GridView manage empty-tooltips, too. 2012-06-01 08:43:27 +02:00
Christian Muehlhaeuser
2aa71d130f * Properly set empty tooltip for PlaylistModels/Views. 2012-06-01 08:09:35 +02:00
Christian Muehlhaeuser
43c1c498d6 * Also hook up OverlayWidget with the model's loading signals. 2012-06-01 08:09:07 +02:00
Christian Muehlhaeuser
137fce3445 * Remove debug in PlaylistView. 2012-06-01 07:49:06 +02:00
Christian Muehlhaeuser
5ee92afb36 * Restore the empty-tooltip when filtering is done. 2012-06-01 07:48:50 +02:00
Christian Muehlhaeuser
1da5ea8ae7 * Show / hide the empty-tooltip when sliding. 2012-06-01 07:46:59 +02:00
Christian Muehlhaeuser
83e073fc7c * AnimatedWidget emits a signal when the sliding animation is done. 2012-06-01 07:46:28 +02:00
Christian Muehlhaeuser
6695372639 * Auto resize OverlayWidget to a reasonable size. 2012-06-01 07:45:58 +02:00
Christian Muehlhaeuser
0d63fb97f7 * Set proper defautl empty-tooltips for PlaylistViews. 2012-06-01 07:13:56 +02:00
Christian Muehlhaeuser
27e7186b98 * Set an empty-tooltip for the QueueView. 2012-06-01 07:11:28 +02:00
Christian Muehlhaeuser
218098e1ff * Allow API users to set an empty tooltip for TrackViews. 2012-06-01 07:11:02 +02:00
Christian Muehlhaeuser
0a7b6c9a22 * Make start- / finishLoading public methods of PlayableModel. 2012-06-01 07:10:27 +02:00
Christian Muehlhaeuser
d713dec19d * OverlayWidget needs to update when items get removed, too. 2012-06-01 07:09:44 +02:00
Christian Muehlhaeuser
3a47a5f9c8 * Never show an empty OverlayWidget. 2012-06-01 06:57:13 +02:00
Christian Muehlhaeuser
4634f95b4c * Temporarily work-around QSqliteDriver's race condition issues. 2012-06-01 06:47:02 +02:00
Christian Muehlhaeuser
4a47f6dd22 * No need to manually disable or include OverlayWidget anymore. 2012-06-01 06:41:57 +02:00
Christian Muehlhaeuser
161b860359 * No need to manually disable or include OverlayWidget anymore. 2012-06-01 06:39:24 +02:00
Christian Muehlhaeuser
18183c512f * No need to include OverlayWidget anymore. 2012-06-01 06:37:11 +02:00
Christian Muehlhaeuser
1d1b3ff382 * No need to manually disable OverlayWidget anymore. 2012-06-01 06:35:15 +02:00
Christian Muehlhaeuser
0abc1a4be9 * Renamed ArtistView to TreeView. 2012-06-01 05:58:42 +02:00
Christian Muehlhaeuser
d97b83557b * Got rid of TreeHeader. Handled by ViewHeader now. 2012-06-01 05:46:36 +02:00
Christian Muehlhaeuser
59fb1fefa0 * Got rid of TrackHeader. Handled by ViewHeader now. 2012-06-01 05:44:56 +02:00
Christian Muehlhaeuser
75991dca18 * Renamed AlbumItemDelegate to GridItemDelegate. 2012-06-01 05:29:02 +02:00
Christian Muehlhaeuser
a61f602855 * Renamed AlbumView to GridView. 2012-06-01 05:19:43 +02:00
Christian Muehlhaeuser
6d9b41dc02 * Soon to be used. 2012-06-01 05:18:51 +02:00
Christian Muehlhaeuser
35fd077d01 * Remove CollectionView which is replaced by TrackView. 2012-06-01 04:59:48 +02:00
Christian Muehlhaeuser
bdab8bc1c8 * Need to eventually hookup the link between SourceItem and ViewManager again. 2012-06-01 04:58:56 +02:00
Christian Muehlhaeuser
8c5fbcd7c7 * SourceInfoWidget now uses a bog standard TrackView. 2012-06-01 04:58:20 +02:00
Christian Muehlhaeuser
e197231fe6 * CollectionView is gone. 2012-06-01 04:57:42 +02:00
Christian Muehlhaeuser
872ccc5305 * A Source's latest-additions view is now a TrackView instead of a CollectionView. 2012-06-01 04:47:54 +02:00
Christian Muehlhaeuser
175b413584 * TrackView's default ViewPage implementation is good enough for PlaylistView. 2012-06-01 04:46:48 +02:00
Christian Muehlhaeuser
fad3c6d12a * TrackView now has a default ViewPage implementation and inheritance. 2012-06-01 04:46:02 +02:00
Christian Muehlhaeuser
f5bdc3a30b * Got rid of obsolete CollectionProxyModel*. 2012-06-01 04:23:03 +02:00
Christian Muehlhaeuser
faf8cf1539 * Fixed TWK-839: Creating name-less playlists results in a better default name. 2012-06-01 03:34:57 +02:00
Christian Muehlhaeuser
690c80db60 * DRY: Call main window and let it create a new playlist. 2012-06-01 03:34:17 +02:00
Christian Muehlhaeuser
062e7a5a3e * Cleanup DiagnosticsDialog. Remove update button and fix copying to clipboard. 2012-06-01 03:05:20 +02:00
Ahmed
65710f9d51 Changes to the DiagnosticsDialog that updates when any changes happens 2012-06-01 02:46:53 +02:00
Christian Muehlhaeuser
b62b9c3531 * Style fix for DynamicView. 2012-06-01 02:17:08 +02:00
Christian Muehlhaeuser
497c0f01c2 * Call insert instead of insertInternal so it gets called correctly, in case it's overwritten. 2012-06-01 02:16:56 +02:00
Christian Muehlhaeuser
c3570e8e53 * Added comment to tr(). 2012-06-01 02:01:53 +02:00
Christian Muehlhaeuser
8841fa48bf * QueueModel is now created by the QueueView directly. 2012-06-01 01:58:41 +02:00
Christian Muehlhaeuser
f74e49b99b * Show how many items are currently in the queue. 2012-06-01 01:58:21 +02:00
Christian Muehlhaeuser
bb1800d27f * Remove items from queue when they're played. 2012-06-01 01:57:27 +02:00
Christian Muehlhaeuser
c829752b7e * Switch to a pointing hand cursor when hovering an artist name in AlbumItemDelegate. 2012-06-01 01:05:36 +02:00
Christian Muehlhaeuser
7ab04deb12 * No more AlbumProxyModel. 2012-06-01 00:35:16 +02:00
Christian Muehlhaeuser
d5d969e058 * PlayableModel is set to be loading as default. 2012-06-01 00:34:48 +02:00
Christian Muehlhaeuser
3467a9e47d * Don't hook up TreeModel to InfoSystem anymore. 2012-06-01 00:34:24 +02:00
Christian Muehlhaeuser
77b4e62918 * OverlayWidget uses PlayableProxyModel now. 2012-06-01 00:34:05 +02:00
Christian Muehlhaeuser
657b4b18f8 * ArtistViw uses PlayableProxyModel now. 2012-06-01 00:33:39 +02:00
Christian Muehlhaeuser
a42f19f07e * AlbumView uses PlayableProxyModel now. 2012-06-01 00:33:17 +02:00
Christian Muehlhaeuser
7409f65874 * AlbumItemDelegate uses PlayableProxyModel now. 2012-06-01 00:32:50 +02:00
Christian Muehlhaeuser
644f6a714a * TreeProxyModel now inherits from PlayableProxyModel. 2012-06-01 00:32:15 +02:00
Christian Muehlhaeuser
0f6f58373e * QueueProxyModel now inherits from PlayableProxyModel. 2012-06-01 00:31:33 +02:00
Christian Muehlhaeuser
68bf96f924 * PlaylistView uses a standard PlayableProxyModel now. 2012-06-01 00:31:09 +02:00
Christian Muehlhaeuser
d17783ef6e * PlayableProxyModel supports artist & album items. 2012-06-01 00:30:28 +02:00
Christian Muehlhaeuser
14f6647471 * Removed obsolete proxy models and their interfaces. 2012-06-01 00:29:40 +02:00
Christian Muehlhaeuser
a62a9d50fe * ViewManager uses new AlbumView/AlbumModel API. 2012-05-31 23:14:28 +02:00
Christian Muehlhaeuser
54612b3512 * SearchWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:14:12 +02:00
Christian Muehlhaeuser
a2f8a2ae11 * SocialPlaylistWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:13:53 +02:00
Christian Muehlhaeuser
cd198db31d * WhatsHotWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:13:32 +02:00
Christian Muehlhaeuser
088ff60339 * AlbumInfoWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:13:09 +02:00
Christian Muehlhaeuser
bf9052bb1b * ArtistInfoWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:12:50 +02:00
Christian Muehlhaeuser
2a4f2d3802 * SourceInfoWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:12:23 +02:00
Christian Muehlhaeuser
98de149eec * TrackInfoWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:12:10 +02:00
Christian Muehlhaeuser
1c4fabed2b * WelcomeWidget uses new AlbumView/AlbumModel API. 2012-05-31 23:11:48 +02:00
Christian Muehlhaeuser
790120836d * NewReleasesWidget now uses PlayableModels. 2012-05-31 23:11:17 +02:00
Christian Muehlhaeuser
b14985bf81 * Style fix in CustomPlaylistView. 2012-05-31 23:10:52 +02:00
Christian Muehlhaeuser
fee2f3a01b * AlbumView now uses a PlayableModel internally. 2012-05-31 23:10:27 +02:00
Christian Muehlhaeuser
6d057732b5 * Support new AlbumModel API. 2012-05-31 23:09:58 +02:00
Christian Muehlhaeuser
bc982f0ca5 * AlbumModel now inherits from PlayableModel. 2012-05-31 23:09:37 +02:00
Christian Muehlhaeuser
811cd200d0 * Support item-sizes & adding various item_ptr's with templating in PlayableModel. 2012-05-31 23:08:58 +02:00
Christian Muehlhaeuser
c6ba3bcc15 * CollectionFlatModel is obsolete now. 2012-05-31 21:41:25 +02:00
Christian Muehlhaeuser
16736a2afd * RelatedArtistsContext uses new TreeModel API. 2012-05-31 21:35:51 +02:00
Christian Muehlhaeuser
713b076929 * WhatsHotWidget uses new TreeModel API. 2012-05-31 21:35:29 +02:00
Christian Muehlhaeuser
172a4a8d77 * TrackView now uses LoadingSpinner and new OverlayWidget. 2012-05-31 21:34:19 +02:00
Christian Muehlhaeuser
2860bfc704 * ArtistView now uses LoadingSpinner and new OverlayWidget. 2012-05-31 21:33:52 +02:00
Christian Muehlhaeuser
3e8d131c16 * AlbumView now uses LoadingSpinner and new OverlayWidget. 2012-05-31 21:33:05 +02:00
Christian Muehlhaeuser
72528ab089 * LoadingSpinner inherits AnimatedSpinner and automatically connects to a QAbstractItemView. 2012-05-31 21:31:43 +02:00
Christian Muehlhaeuser
7bdc5ea4f2 * OverlayWidget now expects a QAbstractItemView which it automatically connects all signals to. 2012-05-31 21:31:01 +02:00
Christian Muehlhaeuser
7a8818ae94 * Style fix in DbCmd_SetPlaylistRevision. 2012-05-31 21:29:38 +02:00
Christian Muehlhaeuser
ca3b01362c * TreeModel inherits PlayableModel now. Will be renamed to CollectionModel soon. 2012-05-31 21:29:12 +02:00
Christian Muehlhaeuser
bff7f01e22 * Fixed warnings and added itemCountChanged( uint ) signal to PlayableModel. 2012-05-31 21:28:37 +02:00
Christian Muehlhaeuser
751f029564 * PlayableModel is now capable of dealing with trees. 2012-05-31 21:22:18 +02:00
Christian Muehlhaeuser
623850a281 * Catch any exceptions when opening the lucene FSDirectory. 2012-05-31 16:54:44 +02:00
Christian Muehlhaeuser
5c1763e847 * Let's try that with Utf8 again. 2012-05-31 16:45:14 +02:00
Christian Muehlhaeuser
602cf294d0 * Store path as a temporary QByteArray so the data doesn't get free'd again immediately. 2012-05-31 16:37:40 +02:00
Christian Muehlhaeuser
ac9064dcbc * Trying toLocal8Bit().data() for fixing Windows with non-latin usernames. 2012-05-31 16:35:45 +02:00
Christian Muehlhaeuser
f9e7ddfb86 * Trying toLocal8Bit() for fixing Windows with non-latin usernames. 2012-05-31 13:54:48 +02:00
Michael Coffey
9be74e001c Change the bundle script to find VLC 2.0 plugins, which are no longer in subfolders. A few have been commented out as they don't exist anymore (at least not with the same name). 2012-05-31 12:17:08 +01:00
Tomahawk CI
d655d66e96 Automatic merge of Transifex translations 2012-05-30 22:18:29 +00:00
Christian Muehlhaeuser
2ac0be98d3 * Does this potentially fix our Windows non-latin username issues? 2012-05-30 21:59:10 +02:00
Christian Muehlhaeuser
2820774220 * No need to pass DatabaseImpl into FuzzyIndex. 2012-05-30 21:58:16 +02:00
Christian Muehlhaeuser
62f041cc2a Merge pull request #96 from x8lucas8x/amarokfork
Some changes to make libtomahawk more usable by third-parties
2012-05-30 01:09:40 -07:00
Lucas Lira Gomes
9fe91d6af1 * Moved some files to libtomahawk. 2012-05-29 20:40:24 -03:00
Lucas Lira Gomes
2a5d061dee * Made ZeroConfAccount less bug prone. 2012-05-29 20:40:14 -03:00
Lucas Lira Gomes
5f385753c3 * Fixed FindJreen.cmake. 2012-05-29 19:49:28 -03:00
Tomahawk CI
c5138bfd76 Automatic merge of Transifex translations 2012-05-29 22:16:42 +00:00
Jason Herskowitz
a3cfdae7e8 Tweak SVG some more to see if it's better or worse 2012-05-29 15:08:41 -04:00
Jason Herskowitz
7cebabf7f2 Bigger SVG icon. See if this helps the Linux Mint implementation of Gnome3/icon 2012-05-29 14:31:46 -04:00
Jason Herskowitz
4082395d4b Change track temp page icon in sidebar to same style as others 2012-05-29 10:18:40 -04:00
Tomahawk CI
4113389cb5 Automatic merge of Transifex translations 2012-05-28 22:16:57 +00:00
Christian Muehlhaeuser
96132ef9c6 * Added love track action to the tray menu. 2012-05-28 19:38:57 +02:00
Christian Muehlhaeuser
1528095de2 * No need to call loadSocialActions manually. 2012-05-28 19:38:40 +02:00
Christian Muehlhaeuser
7cf307080b * Split audioStopped / audioPaused into separate slots. 2012-05-28 19:00:53 +02:00
Christian Muehlhaeuser
e06f58eb29 * Properly init StopAfterPlayback action. 2012-05-28 19:00:29 +02:00
Christian Muehlhaeuser
22d65b7364 * Make QueueView's header draggable for resizing. 2012-05-28 17:46:30 +02:00
Christian Muehlhaeuser
84c40dc590 * Support manual resizing in AnimatedSplitter. 2012-05-28 17:46:11 +02:00
Christian Muehlhaeuser
fac2e2fc5b * Make HeaderLabel an alternative drag-for-resize method. 2012-05-28 17:45:40 +02:00
Christian Muehlhaeuser
ab86a48ef7 * Style fixes for WidgetDragFilter. 2012-05-28 17:45:00 +02:00
Christian Muehlhaeuser
3b04498661 * Make sure we always have a working uuid in Artist / Album. 2012-05-28 16:32:29 +02:00
Christian Muehlhaeuser
c8afb7a7c6 * DropJob now uses the new API. 2012-05-28 16:12:51 +02:00
Christian Muehlhaeuser
0980044ef6 * Style fix for JobStatusModel. 2012-05-28 16:12:28 +02:00
Christian Muehlhaeuser
7cacc42737 * Cleaned up DropJobNotifier. 2012-05-28 16:11:57 +02:00
Christian Muehlhaeuser
9d26f342d3 * Always select the current view-page in the SourceTreeView. 2012-05-28 14:19:33 +02:00
Christian Muehlhaeuser
bea23d7dbe * Don't emit selection requests if we didn't activate a ViewPage. 2012-05-28 14:18:51 +02:00
Christian Muehlhaeuser
684f33a99f * Removed obsolete signal connections in RelatedArtistsContext. 2012-05-28 14:17:53 +02:00
Christian Muehlhaeuser
be52d81248 * Fixed TWK-842: Use sheet dialog when asking for new station's name. 2012-05-28 13:22:25 +02:00
Christian Muehlhaeuser
e9aaf56b3d * Fixed accidental typo. 2012-05-28 13:16:25 +02:00
Christian Muehlhaeuser
40051b82cb * Style cleanup for XmppSip. 2012-05-28 13:05:55 +02:00
Christian Muehlhaeuser
c258f1897f * Style cleanup for AvatarManager. 2012-05-28 13:05:55 +02:00
Christian Muehlhaeuser
c9f287590c * Style fix. Sorry Leo. 2012-05-28 13:05:54 +02:00
Tomahawk CI
f3164635e0 Automatic merge of Transifex translations 2012-05-27 22:16:53 +00:00
Christian Muehlhaeuser
04ce453687 * Fixed TWK-910: Make sure search results are sorted properly. 2012-05-27 20:26:46 +02:00
Christian Muehlhaeuser
f7a46de38e * Remove bottom frame of our toolbar. 2012-05-27 19:43:58 +02:00
Christian Muehlhaeuser
c2814bdabb * Make hover fading a tiny bit faster again. 2012-05-27 19:35:09 +02:00
Christian Muehlhaeuser
b3f2478d6d * Remove debug output again. 2012-05-27 19:31:00 +02:00
Christian Muehlhaeuser
49a4dddd88 * Use new API in RelatedArtistsContext. 2012-05-27 19:21:27 +02:00
Christian Muehlhaeuser
9af174a198 * Use new API in TopTracksContext. 2012-05-27 19:21:27 +02:00
Christian Muehlhaeuser
13befb9d6f * Remove obsolete info-id. 2012-05-27 19:21:27 +02:00
Christian Muehlhaeuser
401d52d6f0 * Remove obsolete info-id. 2012-05-27 19:21:26 +02:00
Leo Franchi
aee7dcd008 More debug an an assert to track down empty resolve status job 2012-05-27 13:10:01 -04:00
Leo Franchi
d2f876b6f3 Only load resolve icon pixmap once 2012-05-27 13:10:00 -04:00
Christian Muehlhaeuser
70fa4b73d4 * Use the new Artist API in ArtistInfoWidget. 2012-05-27 19:05:23 +02:00
Christian Muehlhaeuser
d8c5dcc6ba * Cleaned up names in TrackInfoWidget. 2012-05-27 19:04:56 +02:00
Christian Muehlhaeuser
74af29054a * Fixed TWK-719: Handle Twitter names in --demo mode. 2012-05-27 18:35:58 +02:00
Christian Muehlhaeuser
4d281b645c * Extra debug output for, well, debugging help. 2012-05-27 18:24:46 +02:00
Christian Muehlhaeuser
5e0d8d2292 * Fixed TWK-812: Persistent volume settings across sessions. 2012-05-27 18:24:46 +02:00
Christian Muehlhaeuser
8830593f1d * Added volume / setVolume methods to TomahawkSettings. 2012-05-27 18:24:46 +02:00
Leo Franchi
8d57ec3283 Remove stale files 2012-05-27 12:22:24 -04:00
Christian Muehlhaeuser
d67f4827a8 * Re-enabled WidgetDragFilter for main-window's toolbar. 2012-05-27 18:10:27 +02:00
Christian Muehlhaeuser
418f12743f * Style fix. 2012-05-27 17:35:53 +02:00
Christian Muehlhaeuser
b811b12e77 * Fixed AudioEngine's now playing data pusher to wait for covers being available. 2012-05-27 17:35:36 +02:00
Christian Muehlhaeuser
f24d11b41a * Use new coverLoaded() methods. 2012-05-27 17:34:22 +02:00
Christian Muehlhaeuser
c5f6c25e93 * Added coverLoaded() method to Query. 2012-05-27 17:34:03 +02:00
Christian Muehlhaeuser
9d064f7689 * Renamed infoLoaded() to coverLoaded(). 2012-05-27 17:33:46 +02:00
Christian Muehlhaeuser
33cae66d95 * Renamed infoLoaded() to coverLoaded(). 2012-05-27 17:33:38 +02:00
Jason Herskowitz
b2b7fc4a4e Add a bit of 3rd dimension to the dock icon 2012-05-27 09:02:32 -04:00
Christian Muehlhaeuser
f75531da79 * Fixed TWK-853: Confirm with user before actually deleting a playlist. 2012-05-27 13:01:25 +02:00
Christian Muehlhaeuser
13920ce25d * Implement a page history in ViewManager. 2012-05-27 11:49:40 +02:00
Leo Franchi
05ea3065f8 Allow rating custom resolvers 2012-05-26 18:35:47 -04:00
Leo Franchi
ae958cb124 Don't wordwrap download count 2012-05-26 18:35:47 -04:00
Tomahawk CI
23ef32ffee Automatic merge of Transifex translations 2012-05-26 22:16:57 +00:00
Christian Muehlhaeuser
5e820ee0a8 * Fixed broken translation. 2012-05-26 18:17:46 +02:00
Christian Muehlhaeuser
ecd4aeb965 * Make the hover fade a bit more noticeable. Looks nice imo. 2012-05-26 18:08:19 +02:00
Tomahawk CI
a55c1c0f08 Automatic merge of Transifex translations 2012-05-26 15:31:06 +00:00
Christian Muehlhaeuser
9f7c6b2380 * Made strings translation-friendlier for various languages. 2012-05-26 17:26:56 +02:00
Christian Muehlhaeuser
bd9a1aab8e * Fixed un-tr()'d strings. 2012-05-26 17:20:04 +02:00
Leo Franchi
d846c8a693 Fix ported from ResolverAccount to CustomAtticaAccount omission 2012-05-26 09:12:32 -04:00
Christian Muehlhaeuser
da82f398be * Fixed untranslatable strings issue. 2012-05-26 11:13:42 +02:00
Tomahawk CI
cfa63049e2 Automatic merge of Transifex translations 2012-05-25 22:18:59 +00:00
Leo Franchi
f947005666 TWK-885: Hide resize handle when in osx full-screen mode 2012-05-25 18:08:40 -04:00
Leo Franchi
ac46b080fe Only show updater icon if updater is actively syncing 2012-05-25 17:12:50 -04:00
Leo Franchi
3710d617a1 Load 22x22 track-info icon 2012-05-25 17:12:50 -04:00
Leo Franchi
9bdeed232e Fix typo 2012-05-25 17:01:03 -04:00
Leo Franchi
075d5e74f8 TWK-903: Resize last.fm dialog when beginning to import 2012-05-25 16:21:42 -04:00
Leo Franchi
3cac235232 TWK-888: Steer text color should be highlighted text color 2012-05-25 15:38:48 -04:00
Leo Franchi
873b8dab91 Assert if we forcibly kill external resolvers, to get some user feedback 2012-05-25 15:13:53 -04:00
Leo Franchi
37b59126f6 Sort binary resolvers, then script resolvers by download count 2012-05-25 15:13:40 -04:00
Leo Franchi
098183ddca Keep Remove button size in accounts delegate same as Add 2012-05-25 14:14:06 -04:00
Leo Franchi
fb5d21e401 Add a cmake flag to disable binary attica resolvers for distros 2012-05-25 12:35:28 -04:00
Leo Franchi
26036a2021 Only turn on enable account when going back online 2012-05-25 12:12:15 -04:00
Leo Franchi
9521ed3fde More warning fixes 2012-05-25 09:02:34 -04:00
Leo Franchi
da3bf8d43f Fix warning 2012-05-25 08:52:10 -04:00
Christian Muehlhaeuser
1c55f56777 * A little dependency tracking. 2012-05-25 07:49:28 +02:00
Tomahawk CI
2af0d9a027 Automatic merge of Transifex translations 2012-05-25 04:43:20 +00:00
Christian Muehlhaeuser
63843416cf * Fixed about dialog translation. 2012-05-25 06:40:23 +02:00
Christian Muehlhaeuser
81949ee0a0 * Support arabic translation. 2012-05-25 06:05:02 +02:00
Christian Muehlhaeuser
3b5f48926c * Remove gloox support. XmppBot will need to be ported but was broken by now, anyway. 2012-05-25 05:52:08 +02:00
Leo Franchi
677944d403 Discogs infoplugin, only albums contents atm. 2012-05-24 23:07:34 -04:00
Leo Franchi
9294b73c57 Invert 2012-05-24 21:54:41 -04:00
Leo Franchi
052093f1ea Try out some fading 2012-05-24 21:05:54 -04:00
Tomahawk CI
216e43a502 Automatic merge of Transifex translations 2012-05-24 22:16:44 +00:00
Leo Franchi
e571050758 Make sure to re-enable resolver when overwriting attica with local installed 2012-05-24 16:12:55 -04:00
Christian Muehlhaeuser
d14e14d25a * Workaround for scrobbling duration-less results. 2012-05-24 16:09:44 +02:00
Christian Muehlhaeuser
fde130ef9f * Store volume when actually pausing. 2012-05-24 15:26:38 +02:00
Christian Muehlhaeuser
305b69b229 * Only reset volume when resuming playback. 2012-05-24 15:26:02 +02:00
Christian Muehlhaeuser
ca41b8b7d3 * Fixed resolving top hits top-to-bottom. 2012-05-24 15:20:09 +02:00
Leo Franchi
ac26378914 Remove legacy/confusing autostart from pipeline's external resolvers 2012-05-24 08:58:39 -04:00
Christian Muehlhaeuser
1845bbbd65 * No frame / focus rect for lyrics. 2012-05-24 14:48:18 +02:00
Christian Muehlhaeuser
0af1cc6e20 Revert "* Leo: please review. I think this was meant to be this way actually."
This reverts commit c036c147a7.
2012-05-24 14:17:06 +02:00
Christian Muehlhaeuser
a150697f49 * DRY and style cleanups. 2012-05-24 14:08:42 +02:00
Christian Muehlhaeuser
ca7db4ff99 * Fixed artist / album search results. 2012-05-24 13:49:41 +02:00
Christian Muehlhaeuser
c574dfeff3 * Added some queueState safety mechanism. Phonon's error signal fails to fire sometimes. Sigh. 2012-05-24 13:42:02 +02:00
Christian Muehlhaeuser
4b059293d1 * Clear command queue when Phonon reports an error. 2012-05-24 12:34:52 +02:00
Christian Muehlhaeuser
cbda055c89 * Fixed enabling all resolvers on startup. 2012-05-24 12:10:30 +02:00
Christian Muehlhaeuser
c036c147a7 * Leo: please review. I think this was meant to be this way actually. 2012-05-24 11:01:00 +02:00
Christian Muehlhaeuser
8abf255b27 * Changed debug output and style cleanup. 2012-05-24 11:00:28 +02:00
Christian Muehlhaeuser
b51e7390ba * Ok, let's try that publicly. AudioState queue to work around the Phonon state mess. 2012-05-24 10:44:33 +02:00
Christian Muehlhaeuser
3225407118 * Fixed incorrect PixmapDelegateFader connect()s. 2012-05-24 07:55:34 +02:00
Christian Muehlhaeuser
606fb9cae5 * Defines in headers are just evil. 2012-05-24 07:50:20 +02:00
Dominik Schmidt
41d0c9b153 unused_variable_warnings-- 2012-05-24 01:10:03 +02:00
Christian Muehlhaeuser
b0a99ad1ad * Style cleanup. 2012-05-24 00:26:05 +02:00
Christian Muehlhaeuser
6b1aa6e9cd * According to Leo this is even faster. 2012-05-24 00:26:05 +02:00
Tomahawk CI
8aec11c0e9 Automatic merge of Transifex translations 2012-05-23 22:16:59 +00:00
Leo Franchi
1dd053dc0f Emit a failed signal if there's no internet, so things that depend on AtticaManager move forward 2012-05-23 17:31:20 -04:00
Jeff Mitchell
608d0c30d0 Update against attica >0.3 to fix attica proxy handling 2012-05-23 15:49:45 -04:00
Jason Herskowitz
ac06dbdbef Add logo SVG 2012-05-23 15:01:53 -04:00
Jason Herskowitz
c685ba7c03 Give black OS X systray icon a little more padding 2012-05-23 14:50:14 -04:00
Dominik Schmidt
e5b697801a Make tray icon colorful on windows and linux again 2012-05-23 20:49:13 +02:00
Jason Herskowitz
56d93f1201 Make black icon for use with OS X 2012-05-23 14:43:38 -04:00
Jason Herskowitz
76f463b81a New logo 2012-05-23 14:20:30 -04:00
Jeff Mitchell
d09145b06f Better debug output from whatshotwidget 2012-05-23 13:27:25 -04:00
Jeff Mitchell
d7a925d110 Make init methods for all infoplugins to solve issues with network traffic before they're in the right thread 2012-05-23 13:23:15 -04:00
Jeff Mitchell
91024493ee Loaded plugins don't get loaded into the correct thread...fix this 2012-05-23 11:27:37 -04:00
Jeff Mitchell
3159cfd840 Make the Tomahawk cache spit out a more useful error when data not
found, and stop Sources from endlessely querying it for avatars that we
already know don't exist
2012-05-23 11:16:04 -04:00
Christian Muehlhaeuser
0fb1511904 * Re-layout item grid when model changes. 2012-05-23 17:13:58 +02:00
Christian Muehlhaeuser
7af615dbf8 * Disable shutdown db analyze again. 2012-05-23 17:08:29 +02:00
Christian Muehlhaeuser
ab602b2072 * Don't tell model about item size if there's no model yet. 2012-05-23 16:54:50 +02:00
Christian Muehlhaeuser
bc0e3810d7 * Speed up DbCmd_AllAlbums. A ton. 2012-05-23 14:29:17 +02:00
Christian Muehlhaeuser
e2ab7d834b * Run analyze on shutdown (for debugging only). 2012-05-23 13:08:23 +02:00
Christian Muehlhaeuser
2673645907 * Fixed compiling on OSX. 2012-05-23 13:04:30 +02:00
Christian Muehlhaeuser
3e1a5c15c5 * Added verbose log output for SQL queries. 2012-05-23 12:41:02 +02:00
Christian Muehlhaeuser
5d0a54ce8b * Moved TomahawkSqlQuery's implementation into a separate file. 2012-05-23 12:18:42 +02:00
Christian Muehlhaeuser
ff70417891 * Progress towards compiling on OS X (10.6). 2012-05-23 10:15:47 +02:00
Christian Muehlhaeuser
f160947ddc * Split out BinaryExtractWorker and SharedTimeLine into separate files. 2012-05-23 10:07:29 +02:00
Christian Muehlhaeuser
a3d11225a3 * Fixed compiling on OS X 10.6. 2012-05-23 09:38:26 +02:00
Leo Franchi
92ec403f7c Fixes for spotify and lastfm custom accounts, and fix some misc older bugs 2012-05-22 22:03:48 -04:00
Leo Franchi
af50be9ef8 Don't assert on a potentially valid condition 2012-05-22 22:03:47 -04:00
Leo Franchi
a538553d17 Do binary payload management in background 2012-05-22 22:03:47 -04:00
Leo Franchi
982945107e Handle linux in checkForResolver 2012-05-22 22:03:47 -04:00
Tomahawk CI
b66e191078 Automatic merge of Transifex translations 2012-05-22 22:16:39 +00:00
Leo Franchi
e4bd229ef0 OSX fix 2012-05-22 10:38:54 -04:00
Leo Franchi
bb62fd6047 Try harder to find an account 2012-05-22 10:35:13 -04:00
Leo Franchi
e91d9e55f6 Fix slow network causing multiple spotify accounts to show up 2012-05-22 10:35:13 -04:00
Leo Franchi
b308212214 Properly download+install binary payload on linux 2012-05-22 08:35:17 -04:00
Leo Franchi
5766ea382b Fix heisenbug 2012-05-22 08:35:17 -04:00
Christian Muehlhaeuser
413bddaf7d * Updated ChangeLog. 2012-05-22 13:11:38 +02:00
Christian Muehlhaeuser
2deb9bcdc1 * Wording: Resume instead of Retry. 2012-05-22 12:11:27 +02:00
Christian Muehlhaeuser
5b2a5b76a4 * Show current import date. 2012-05-22 12:01:03 +02:00
Christian Muehlhaeuser
2558202a52 * Update the button status while the import is ongoing. 2012-05-22 11:48:05 +02:00
Christian Muehlhaeuser
ac8703c9e7 * Robuster error / retry handling. 2012-05-22 11:38:12 +02:00
Christian Muehlhaeuser
2ee66a3cda * Allow to locally import Last.fm playback history. Works but needs discussion. 2012-05-22 10:43:39 +02:00
Christian Muehlhaeuser
3f5d219549 * Fixed sorting order when retrieving playback history. 2012-05-22 10:41:58 +02:00
Christian Muehlhaeuser
b1904b877e * Cleaner code in AudioEngine. 2012-05-22 10:41:37 +02:00
Christian Muehlhaeuser
7ffb3b2fef * Fixed logic error in DbCmd_TrackAttributes. 2012-05-22 10:41:12 +02:00
Christian Muehlhaeuser
95dccb8cf9 * Improved resolving: be more careful when it comes to result similarity. 2012-05-22 08:07:07 +02:00
Christian Muehlhaeuser
530d9d7e5f * Fixed systray menu not working. 2012-05-22 08:01:14 +02:00
Christian Muehlhaeuser
d44028a2af * AlbumModel items shouldn't be editable. 2012-05-22 02:34:44 +02:00
Tomahawk CI
5a1ee4ec3a Automatic merge of Transifex translations 2012-05-21 22:16:50 +00:00
Jeff Mitchell
47254de796 Merge branch 'master' into aclwidget 2012-05-21 15:31:44 -04:00
Christian Muehlhaeuser
e426e26e8d * DRY PlayableItem. 2012-05-21 12:42:25 +02:00
Christian Muehlhaeuser
1b748201bc * Renamed Track(Proxy)Model to Playable(Proxy)Model. 2012-05-21 10:07:49 +02:00
Christian Muehlhaeuser
45397e82a8 * Drop the usage of the old item classes and use the new PlayableItem. 2012-05-21 09:05:14 +02:00
Christian Muehlhaeuser
3f494ed5d3 * PlayableItem. One class to rule them all. Album-, TrackModel- and TreeModelItem be gone. 2012-05-21 09:04:42 +02:00
Christian Muehlhaeuser
a36ee207e9 * Pass on QWheelEvents to AlbumView when hovering a spinner / play / pause button on top of it. 2012-05-21 06:12:34 +02:00
Christian Muehlhaeuser
70245e34ac * Fixed delegate's connect. 2012-05-21 04:46:03 +02:00
Christian Muehlhaeuser
965a9b6153 * Consistent color for duration in PlaylistItemDelegate. 2012-05-21 04:41:22 +02:00
Christian Muehlhaeuser
219d4e5f19 * Fixed cover fading. 2012-05-21 04:36:37 +02:00
Dominik Schmidt
41074e15d1 Include all plugins on windows 2012-05-21 02:17:51 +02:00
Tomahawk CI
b2e233b127 Automatic merge of Transifex translations 2012-05-20 22:16:34 +00:00
Leo Franchi
48b089c3c4 More robust install feedback, see if it works for binary resolvers too 2012-05-20 17:05:01 -04:00
Leo Franchi
675841e9a7 Don't start resolver if the path no longer exists 2012-05-20 16:24:38 -04:00
Leo Franchi
e0693475d7 Don't re-install spotify on each restart on windows ;) 2012-05-20 16:24:38 -04:00
Dominik Schmidt
b7aef08b7c Merge pull request #95 from seezer/master
Fix key event handling in SourceTreeView
2012-05-20 13:22:53 -07:00
Jeff Mitchell
8f4b160ae9 Merge branch 'master' into aclwidget
Conflicts:
	src/libtomahawk/jobview/AclJobItem.cpp
2012-05-20 16:12:08 -04:00
Leo Franchi
6c856db4f8 Heisenbug observed, debug removed. 2012-05-20 15:37:23 -04:00
Leo Franchi
a63a636750 Add some debug for hugo 2012-05-20 15:26:22 -04:00
Leo Franchi
01b6b6887c Make license header consistent 2012-05-20 15:26:17 -04:00
Sebastian Goth
ad49a5d5af Fix key event handling in SourceTreeView
Correctly propagate multimedia key events to mainwindow
2012-05-20 18:30:28 +02:00
Dominik Schmidt
edb34eef59 warnings-- 2012-05-20 15:47:11 +02:00
Christian Muehlhaeuser
717b04623f * Style cleanup. 2012-05-20 15:44:03 +02:00
Dominik Schmidt
5a8b32691e Fix export 2012-05-20 15:21:28 +02:00
Dominik Schmidt
92423fe925 Fix last commit 2012-05-20 14:26:51 +02:00
Dominik Schmidt
cdb044b4e4 Make timeoutMillis invunerable against inconsistent changes 2012-05-20 14:07:58 +02:00
Christian Muehlhaeuser
e26545b195 * Nicer margin for AudioControl's cover image. 2012-05-20 13:17:10 +02:00
Christian Muehlhaeuser
46fde05aa9 * Cleaned up AlbumItemDelegate and fixed a few smaller issues. 2012-05-20 12:30:21 +02:00
Christian Muehlhaeuser
4fdd6ddc45 * Fixed 'Jeffe's copyright. 2012-05-20 12:29:44 +02:00
Christian Muehlhaeuser
ebe8df4f91 * Support changing image size in PixmapDelegateFader. 2012-05-20 12:29:21 +02:00
Christian Muehlhaeuser
5ed65cafce * Introduced Query::displayQuery(). Returns (if available) the first result as a query_ptr, otherwise returns the Query's own query_ptr. Use this whenever you wanna display Query stuff in the GUI. Also, reduce numResults() usage. 2012-05-20 10:39:05 +02:00
Christian Muehlhaeuser
d3271cffde * Don't try to load the playback history if the sources instance isn't ready yet. 2012-05-20 10:20:38 +02:00
Christian Muehlhaeuser
46f0ef9552 * Implemented proper ArtistPlaylistInterface. Enables direct artist playback from the grid. 2012-05-20 08:20:22 +02:00
Leo Franchi
b052486e2e Update to newer kdsingleappguard 2012-05-20 01:06:06 -04:00
Leo Franchi
7326212671 Only emit finished once for binary resolvers 2012-05-19 23:17:22 -04:00
Leo Franchi
57ab3f73db Debug and a potential windows fix 2012-05-19 20:26:01 -04:00
Leo Franchi
067138b9ac Update view sizehint when we get a custom delegate in case it is non-standard in height 2012-05-19 18:25:10 -04:00
Tomahawk CI
4507315f3b Automatic merge of Transifex translations 2012-05-19 22:16:32 +00:00
Leo Franchi
a36693bd4c Fix merge 2012-05-19 17:40:53 -04:00
Leo Franchi
a3bcf52529 Merge branch 'master' into aclwidget
Conflicts:
	src/libtomahawk/AclRegistry.cpp
	src/libtomahawk/jobview/AclJobItem.cpp
2012-05-19 14:54:45 -04:00
Leo Franchi
e96b5cb080 Move BinaryInstallerHelper into its own file 2012-05-19 14:22:28 -04:00
Leo Franchi
b2c281ad37 Fix style 2012-05-19 12:21:00 -04:00
Ahmed
337423c52f TWK-883: Prevent failed tracks from being displayed as recently played in the dashboard 2012-05-19 12:20:48 -04:00
Leo Franchi
4b28c15850 Warning and memleak fixes 2012-05-19 09:41:05 -04:00
Christian Muehlhaeuser
77a901a71f * Fixed asserting in AlbumPlaylistInterface. 2012-05-19 11:01:16 +02:00
Christian Muehlhaeuser
b449651452 * Added context menu to item views. 2012-05-19 10:41:28 +02:00
Christian Muehlhaeuser
763ae73d01 * Cleaner connect in ArtistView. 2012-05-19 10:41:12 +02:00
Christian Muehlhaeuser
ab3c4330df * Resolve similar tracks in correct order. 2012-05-19 10:29:40 +02:00
Christian Muehlhaeuser
b7a43553fe * Clear window title when playback stopped. 2012-05-19 10:29:22 +02:00
Christian Muehlhaeuser
13b74f1c21 * Allow seeking without playlists and emit stopped() only after we actually stopped. 2012-05-19 10:28:44 +02:00
Christian Muehlhaeuser
80fe1f0777 * Clean up Query::infoSystemFinished. 2012-05-19 10:12:32 +02:00
Christian Muehlhaeuser
2ef10fee39 * Plugin-ify NewReleasesPlugin. 2012-05-19 09:50:04 +02:00
Christian Muehlhaeuser
73e824c859 * Plugin-ify RoviPlugin. 2012-05-19 09:44:51 +02:00
Christian Muehlhaeuser
93cc1fcca8 * Plugin-ify MusicBrainzPlugin. 2012-05-19 09:44:37 +02:00
Christian Muehlhaeuser
667a4e5a78 * Added lyrics display on Track Page. Experimental. 2012-05-19 09:37:19 +02:00
Christian Muehlhaeuser
81b8a22d6a * Cleaned up InfoSystemWorker debug output. 2012-05-19 09:36:51 +02:00
Christian Muehlhaeuser
b6b3bf1a1c * Added lyrics support to Query class. 2012-05-19 09:36:27 +02:00
Christian Muehlhaeuser
b17b5ed276 * Make MusixMatchPlugin a proper InfoPlugin. Also, fix it up. 2012-05-19 09:35:49 +02:00
Christian Muehlhaeuser
de89a0dd83 * Overlay pause button during playback of a list item. 2012-05-19 08:18:54 +02:00
Christian Muehlhaeuser
69f41c41e8 * Let AudioEngine wait for a query to finish resolving and start playback asap. 2012-05-19 07:23:33 +02:00
Christian Muehlhaeuser
5f1564fd3d * Resolve AlbumPlaylistInterface's track list in corrct order. 2012-05-19 06:42:31 +02:00
Christian Muehlhaeuser
2e0d6b0874 * Fixed artist links for similar tracks. 2012-05-19 06:40:30 +02:00
Christian Muehlhaeuser
5d977d1ca7 * Properly center spinner. 2012-05-19 06:23:23 +02:00
Christian Muehlhaeuser
246d935c04 * Link to pages from QueryLabel's context-menu. 2012-05-19 06:13:39 +02:00
Christian Muehlhaeuser
084186bdf6 * Fixed a few painting glitches. 2012-05-19 06:13:26 +02:00
Christian Muehlhaeuser
ed4a631619 * Hooked up history-related signals to TomahawkWindow. 2012-05-19 06:13:13 +02:00
Christian Muehlhaeuser
285b254f76 * Added 'Open Page' item to Artist/Album/Track context menus. 2012-05-19 03:08:50 +02:00
Christian Muehlhaeuser
23757b2819 * Re-added mainwindow toolbar. 2012-05-19 02:53:04 +02:00
Christian Muehlhaeuser
eb87952ce5 * Fixed crash and show hover state for album items again. 2012-05-19 02:05:38 +02:00
Leo Franchi
c9704cbe64 Fix windows ifdef 2012-05-18 19:36:56 -04:00
Christian Muehlhaeuser
5c70221296 * Show proper play buttons / spinners overlaying album items. 2012-05-19 01:29:22 +02:00
Tomahawk CI
0564ac3565 Automatic merge of Transifex translations 2012-05-18 22:16:25 +00:00
Leo Franchi
64aea4541d Begone QSharedPointer destructor warnings! 2012-05-18 17:40:35 -04:00
Leo Franchi
eeba60dfec Add semicolon 2012-05-18 17:17:35 -04:00
Leo Franchi
f874e6b4f0 See if this helps... 2012-05-18 17:10:24 -04:00
Leo Franchi
f7f4cbb781 Smarter windows logic for finding resolver executable 2012-05-18 16:55:23 -04:00
Leo Franchi
fdfda2e435 Try this include 2012-05-18 16:48:48 -04:00
Leo Franchi
b972558171 Merge branch 'binaryghns' 2012-05-18 16:34:54 -04:00
Leo Franchi
3cb1778502 Use real bakery again 2012-05-18 16:34:38 -04:00
Leo Franchi
dbbf93bfcd FIx macdeploy since plugins are .so now not .dylib 2012-05-18 16:06:04 -04:00
Leo Franchi
ebd5a98d27 Windows-specific handling 2012-05-18 16:05:38 -04:00
Christian Muehlhaeuser
ae807bc7ce Revert "* Style cleanup."
This reverts commit 4ec75ec49c.
2012-05-18 21:42:37 +02:00
Leo Franchi
647f68bd22 Ensure we have lastfm and spotify accounts 2012-05-18 12:46:11 -04:00
Leo Franchi
4f947b893f Fix some linux binary resolver stuff 2012-05-18 12:06:03 -04:00
Leo Franchi
8ce4b3587d Merge remote-tracking branch 'origin/master' into binaryghns 2012-05-18 08:01:52 -04:00
Christian Muehlhaeuser
2d356c5bae * No more mode init. 2012-05-18 12:14:38 +02:00
Christian Muehlhaeuser
b76b96ef3e * Show play button on item-views. 2012-05-18 12:14:38 +02:00
Christian Muehlhaeuser
ee7986180f * ModelMode specific AlbumPlaylistInterfaces. 2012-05-18 12:14:38 +02:00
Christian Muehlhaeuser
2d34a69e0c * ModelMode specific PlaylistInterfaces for Album object. 2012-05-18 12:14:38 +02:00
Christian Muehlhaeuser
4c04feb529 * Lazy init for AlbumView. 2012-05-18 12:14:38 +02:00
Christian Muehlhaeuser
fd7f1fe422 * Don't use bold fonts for infobar description. 2012-05-18 12:14:37 +02:00
Christian Muehlhaeuser
3e9e37fdc9 * Per default, add the Mixed album info to a playlist. 2012-05-18 12:14:37 +02:00
Christian Muehlhaeuser
fe58726b69 * Directly query artist / albums objects for their data. 2012-05-18 12:14:37 +02:00
Christian Muehlhaeuser
bf3e2ccb01 * Use item-views on AlbumInfoWidget. 2012-05-18 12:14:37 +02:00
Christian Muehlhaeuser
33c9f59929 * Use item-views on ArtistInfoWidget. 2012-05-18 12:14:37 +02:00
Christian Muehlhaeuser
a699348766 * Fixed direct artist_ptr playback. 2012-05-18 12:14:37 +02:00
Christian Muehlhaeuser
45d06c9be5 * Declare artist_ptr as metatype. 2012-05-18 12:14:37 +02:00
Christian Muehlhaeuser
cf4baf28c3 * Added comment. 2012-05-18 12:14:36 +02:00
Christian Muehlhaeuser
91205b8fd7 * Remove obsolete debug output. 2012-05-18 12:14:36 +02:00
Christian Muehlhaeuser
8d6d584bb4 * AudioEngine methods for directly playing artists / albums / queries. 2012-05-18 12:14:36 +02:00
Christian Muehlhaeuser
9291ee80c9 * Layout fixes for TrackInfoWidget. 2012-05-18 12:14:36 +02:00
Christian Muehlhaeuser
4ec75ec49c * Style cleanup. 2012-05-18 12:14:36 +02:00
Christian Muehlhaeuser
b05f56491e * Register album_ptr & artist_ptr as meta-types. 2012-05-18 12:14:36 +02:00
Christian Muehlhaeuser
9df8fc0182 * Clicking track name in AudioControls brings up track-page now. 2012-05-18 12:14:36 +02:00
Jeff Mitchell
65c8739da5 Merge branch 'master' into infoplugins and fix up problematic bits. This
fully separates out all infoplugins into separate buildable units.
Eventually I'll make cmake switches to enable easy picking of the
different plugins at build-time; distros will like that.

Conflicts:
	src/infoplugins/generic/CMakeLists.txt
	src/infoplugins/generic/ChartsPlugin.cpp
	src/infoplugins/generic/ChartsPlugin.h
	src/infoplugins/generic/ChartsPlugin_Data_p.h
	src/infoplugins/generic/charts/ChartsPlugin.cpp
	src/infoplugins/generic/charts/ChartsPlugin.h
	src/infoplugins/generic/hypem/HypemPlugin.cpp
	src/infoplugins/generic/hypem/HypemPlugin.h
	src/infoplugins/generic/hypemPlugin.cpp
	src/infoplugins/generic/hypemPlugin.h
	src/libtomahawk/CMakeLists.txt
	src/libtomahawk/CountryUtils.h
	src/libtomahawk/infosystem/InfoSystemWorker.cpp
	src/libtomahawk/infosystem/infoplugins/generic/ChartsPlugin.cpp
	src/libtomahawk/infosystem/infoplugins/generic/ChartsPlugin.h
	src/libtomahawk/infosystem/infoplugins/generic/ChartsPlugin_Data_p.h
	src/libtomahawk/infosystem/infoplugins/generic/hypemPlugin.cpp
	src/libtomahawk/infosystem/infoplugins/generic/hypemPlugin.h
2012-05-18 00:47:32 -04:00
Leo Franchi
841b151acc fixes for linux binary ghns 2012-05-17 20:56:36 -04:00
Leo Franchi
b4dda21704 Merge branch 'master' into binaryghns 2012-05-17 19:03:57 -04:00
Leo Franchi
48ab96a1f6 Add hack/workaround for manually adding spotify resolver 2012-05-17 19:03:18 -04:00
Leo Franchi
183b0c8958 Don't show spotify config widget if we have no resolver 2012-05-17 18:11:13 -04:00
Leo Franchi
fb842a3580 Revert "Don't show spotify config widget unless we have a resolver"
This reverts commit e8247421ab.
2012-05-17 18:09:38 -04:00
Leo Franchi
e8247421ab Don't show spotify config widget unless we have a resolver 2012-05-17 18:09:16 -04:00
Leo Franchi
32e1a16ead Guard against divide-by-0 2012-05-17 12:57:12 -04:00
Dominik Schmidt
f9eab019a9 cmake *sigh* 2012-05-17 18:37:34 +02:00
Leo Franchi
a8354ed1a9 Merge pull request #93 from randomguy3/mpris2-fixes
Mpris2 fixes
2012-05-17 06:28:30 -07:00
Alex Merry
1f0f4e21a8 MPRIS2: Fix volume property
Volume is a double between 0 and 1, not a percentage between 0 and 100.
2012-05-17 14:16:36 +01:00
Alex Merry
8b17657da1 MPRIS2: mpris:length should be in microseconds, not seconds 2012-05-17 14:11:58 +01:00
Alex Merry
e52b9eb36b MPRIS2: Fix type of mpris:trackid metadata
It should be a DBus Object Path ('o'), not a String ('s').
2012-05-17 14:01:32 +01:00
Leo Franchi
34656e6395 bugfixing adding spotify account 2012-05-16 22:49:29 -04:00
Tomahawk CI
06338c73f1 Automatic merge of Transifex translations 2012-05-16 22:16:30 +00:00
Leo Franchi
ff431b1183 More work on handling binary resolver install 2012-05-16 18:07:56 -04:00
Leo Franchi
d6f017bc6a Merge pull request #92 from mguentner/crashprivacy
added "Send this report" and "Don't send" buttons
2012-05-16 06:52:46 -07:00
Tomahawk CI
cd84015c8d Automatic merge of Transifex translations 2012-05-15 22:16:34 +00:00
Leo Franchi
d60b8bda3e Merge branch 'binaryghns' of github.com:lfranchi/tomahawk into binaryghns 2012-05-15 18:09:50 -04:00
Leo Franchi
95bb3629a1 slight work on spotify account 2012-05-15 17:48:07 -04:00
Maximilian Güntner
8cce5dafcd added "Send this report" and "Don't send" buttons
Most users probably do not disable crash reporting. Adding two
simple buttons will give them a chance to abort if they do not
want to send their crash report.

Signed-off-by: Maximilian Güntner <maximilian.guentner@gmail.com>
2012-05-15 02:40:26 +02:00
Tomahawk CI
69dbb8a882 Automatic merge of Transifex translations 2012-05-14 22:16:27 +00:00
Jeff Mitchell
6cfac1978e Migrate charts plugin 2012-05-14 13:10:59 -04:00
Jeff Mitchell
50fbe986d7 Move HypemPlugin over to new plugin paradigm 2012-05-14 12:34:48 -04:00
Christian Muehlhaeuser
3e60adfe37 * Fixed mainwindow layout jumping around on startup. 2012-05-14 02:49:44 -07:00
Christian Muehlhaeuser
37f7521d5c * Fixed compiling. 2012-05-13 22:35:41 -07:00
Dominik Schmidt
42faa354ec Port echonest info plugin to the new macro 2012-05-14 05:25:12 +02:00
Dominik Schmidt
f33d446f7f Make linux infoplugins real plugins 2012-05-14 05:17:07 +02:00
Leo Franchi
f7b9f8a3d7 Merge pull request #90 from nowrep/master
Fixed style of scrollbar in TrackInfoWidget
2012-05-13 19:55:19 -07:00
Dominik Schmidt
380ff0d23d Make generic infoplugins real plugins 2012-05-14 04:42:21 +02:00
Dominik Schmidt
9c995270cf minor improvements for add_tomahawk_plugin 2012-05-14 04:16:58 +02:00
Leo Franchi
dcc61f56e3 Merge branch 'binaryghns' of github.com:lfranchi/tomahawk into binaryghns 2012-05-13 21:28:45 -04:00
Leo Franchi
5bb31a2e7c try adding some account linkup 2012-05-13 21:28:18 -04:00
Dominik Schmidt
027c716fd7 add_tomahawk_plugin: port zeroconf account 2012-05-14 03:24:17 +02:00
Dominik Schmidt
d2c8196b07 add_tomahawk_plugin: port twitter account 2012-05-14 03:24:15 +02:00
Dominik Schmidt
dd4acb0cd2 add_tomahawk_plugin: port googlewrapper account 2012-05-14 03:24:10 +02:00
Dominik Schmidt
8c4cfef5a1 add_tomahawk_plugin: port xmpp account 2012-05-14 03:24:02 +02:00
Leo Franchi
eeaba8309d Merge branch 'binaryghns' of github.com:lfranchi/tomahawk into binaryghns 2012-05-13 20:50:02 -04:00
Leo Franchi
81575c68e8 hook up 2012-05-13 20:48:55 -04:00
Leo Franchi
bb5e5c33ca listen to results of asynchronous binary installs 2012-05-13 20:44:03 -04:00
Leo Franchi
a071105a26 Add workaround for Qt bug, thanks David Sansome! 2012-05-13 20:43:54 -04:00
Dominik Schmidt
102ead74bd Add add_tomahawk_plugin cmake macro 2012-05-14 02:41:02 +02:00
Leo Franchi
e72289c078 Merge branch 'binaryghns' of github.com:lfranchi/tomahawk into binaryghns 2012-05-13 19:08:32 -04:00
Leo Franchi
51e790de2f Merge branch 'master' into binaryghns 2012-05-13 19:07:25 -04:00
Leo Franchi
f64cce1567 set unzipped executable to executable 2012-05-13 19:02:28 -04:00
Tomahawk CI
755285920c Automatic merge of Transifex translations 2012-05-13 22:16:32 +00:00
Jeff Mitchell
ee8e25b8ce Don't need this anymore.... 2012-05-13 17:42:53 -04:00
Jeff Mitchell
3e781a243e Make infoplugins dynamically loadable, and convert echonest plugin to
this format
2012-05-13 17:37:25 -04:00
Leo Franchi
be76cc49d3 add error handling to resolver in stall so we hide the spinner 2012-05-13 17:36:32 -04:00
Leo Franchi
021cd54687 Add tomahawk public key 2012-05-13 17:31:17 -04:00
Leo Franchi
8aae86cf16 Add mac FileHelpers 2012-05-13 17:12:21 -04:00
Leo Franchi
27eb1b51f1 Enable move-with-authentication for osx binary resolvers 2012-05-13 17:05:37 -04:00
Jeff Mitchell
485d076d73 Update account DLL macro to use Q_DECL_X 2012-05-13 16:36:57 -04:00
nowrep
1324b6fe64 Fixed style of scrollbar in TrackInfoWidget 2012-05-13 13:28:51 +02:00
Jason Herskowitz
d47adbea63 Get rid of old icons that we no longer use 2012-05-12 22:51:41 -07:00
Jason Herskowitz
6034458769 More design stuff 2012-05-12 22:18:36 -07:00
Jason Herskowitz
6cc62d24d7 User newer iTune icon 2012-05-12 20:08:25 -07:00
Christian Muehlhaeuser
a9c049b0ee * Use cache for source avatars. 2012-05-12 18:12:45 -07:00
Christian Muehlhaeuser
2a6766c6d2 * Different track icon for temporary pages. 2012-05-12 18:12:45 -07:00
Jason Herskowitz
393cefb88c Add track icon and tweak page color on track page 2012-05-12 17:58:46 -07:00
Jason Herskowitz
4dc3014a37 Even more icon cleanup. Soon I will have more commits that Domme. :P 2012-05-12 17:28:33 -07:00
Jason Herskowitz
8589977233 Tweak avatar placeholder to better make new sidebar icons 2012-05-12 16:45:19 -07:00
Jason Herskowitz
f8d363e3d0 Tweak color of track number overaly in the New Stations & Playlists widget 2012-05-12 16:27:47 -07:00
Jason Herskowitz
a2c5a949b3 Lots of icon cleanup. Make more subtle. 2012-05-12 16:18:40 -07:00
Tomahawk CI
d05fd22999 Automatic merge of Transifex translations 2012-05-12 22:16:28 +00:00
Christian Muehlhaeuser
69987877a1 * Nicer AlbumView. 2012-05-12 13:21:54 -07:00
Jason Herskowitz
92b5d3cb84 Add more padding around album grid placeholder 2012-05-12 12:06:35 -07:00
Jason Herskowitz
ff18013f88 Darker grid placeholder images 2012-05-12 12:00:26 -07:00
Jason Herskowitz
3830d44a78 Add grid album placeholder icon 2012-05-12 11:36:30 -07:00
Jason Herskowitz
c89b43ac07 Add square artist image placeholder for grid view 2012-05-12 11:28:12 -07:00
Leo Franchi
42a1119cba Beginning of tomahawk-side osx handling of binary resolvers 2012-05-10 23:01:55 -04:00
Tomahawk CI
3cae004dd4 Automatic merge of Transifex translations 2012-05-10 22:16:49 +00:00
Dominik Schmidt
82b4fdafd3 Merge pull request #89 from swiftscythe/master
Improved systray behaviour
2012-05-10 12:03:50 -07:00
Adria Arrufat
641eff8472 Improved systray behaviour: Now it brings Tomahawk to front when it's not the Active App, instead of hiding it
Signed-off-by: Adria Arrufat <swiftscythe@gmail.com>
2012-05-10 20:57:24 +02:00
Alejandro Wainzinger
b2f7c5f7c5 When listening privately, don't push Adium status updates. 2012-05-08 18:13:48 -07:00
Tomahawk CI
a631afa051 Automatic merge of Transifex translations 2012-05-08 22:18:29 +00:00
Jeff Mitchell
03fbcb8790 When running as a library, don't assume that there will be a thread, and
thus a proxyfactory, for the application thread.
2012-05-08 18:11:43 -04:00
Tomahawk CI
7ea8f8aa64 Automatic merge of Transifex translations 2012-05-07 22:16:31 +00:00
Tomahawk CI
4ed1b4975f Automatic merge of Transifex translations 2012-05-06 22:16:34 +00:00
Tomahawk CI
43a55d932e Automatic merge of Transifex translations 2012-05-05 22:16:30 +00:00
Jason Herskowitz
cbd25df44d Add jump link icon for use in Now Playing area - go back to current playing list view 2012-05-05 13:01:17 -04:00
Christian Muehlhaeuser
789536c49f * Added title & description for latest special ViewPages. 2012-05-05 17:24:12 +02:00
Christian Muehlhaeuser
79c2c12631 * Added ViewPage title for TrackInfoWidget. 2012-05-05 17:13:08 +02:00
Christian Muehlhaeuser
22e05bd6ea * Fixed Last.fm plugin. 2012-05-05 17:11:23 +02:00
Christian Muehlhaeuser
7789c1ec2c * Supprt info button for Tracks. 2012-05-05 17:02:36 +02:00
Christian Muehlhaeuser
a9b3ad786c * Info button for tracks. 2012-05-05 17:02:35 +02:00
Christian Muehlhaeuser
61fb4744f3 * Added TrackInfoWidget. WIP. 2012-05-05 17:02:35 +02:00
Christian Muehlhaeuser
906e1147e5 * Support activating queries in Album (Items-)Views. 2012-05-05 17:02:35 +02:00
Christian Muehlhaeuser
f40500452b * Added query/track pages. 2012-05-05 17:02:35 +02:00
Christian Muehlhaeuser
2b139103d0 * Moved SocialActions to Query. 2012-05-05 17:02:35 +02:00
Christian Muehlhaeuser
7b801270c2 * Added queries to AlbumModel. This will be renamed to ItemModel soon. 2012-05-05 17:02:35 +02:00
Christian Muehlhaeuser
e27976c8a1 * Added DatabaseCommand_TrackStats. This will eventually be merged with PlaybackHistory. 2012-05-05 17:02:34 +02:00
Christian Muehlhaeuser
b9e772f3e3 * Added similar tracks and playback history methods to Artist. 2012-05-05 17:02:34 +02:00
Christian Muehlhaeuser
01f98ddc7f * Added similar tracks and playback history methods to Query. 2012-05-05 17:02:34 +02:00
Christian Muehlhaeuser
e95efe6f76 * Added similar tracks infosystem call. 2012-05-05 17:02:34 +02:00
Christian Muehlhaeuser
913663eef0 * Added similar tracks method to liblastfm. 2012-05-05 17:01:28 +02:00
Christian Muehlhaeuser
f59bbc111f * Also update cover when the updated() signal is emitted. This happens when we couldn't retrieve any cover. 2012-05-05 17:01:28 +02:00
Christian Muehlhaeuser
fc9a36e28e * Don't assume the current track of a remote source is always resolveable. 2012-05-05 17:01:28 +02:00
Jeff Mitchell
7b89460aa1 Do not scrobble or show current track on Last.fm when listening privately 2012-05-05 10:10:25 -04:00
Jeff Mitchell
07ba8d307c Rename LastFmPlugin to LastFmInfoPlugin for clarity 2012-05-05 10:03:15 -04:00
Tomahawk CI
a453934d08 Automatic merge of Transifex translations 2012-05-04 22:16:27 +00:00
Leo Franchi
7adb3fc737 Download binary resolver listing 2012-05-04 14:13:57 -04:00
Jeff Mitchell
9326813f3f Synchronize liblastfm structure a bit, other than src/ 2012-05-04 10:38:04 -04:00
Tomahawk CI
65bc08524e Automatic merge of Transifex translations 2012-05-03 22:16:28 +00:00
Leo Franchi
b75a575f51 Don't show spacers on osx in settings dialog 2012-05-03 14:10:04 -04:00
Jeff Mitchell
3b332d6d12 Fix up the advanced settings dialog. Make it more clear whether
UPnP/Static/LAN-only is going to be used. Use a checkbox to enable proxy
since we'll likely never support anything other than socks -- at least,
not anytime soon. Group items in a nicer fashion.
2012-05-03 13:36:23 -04:00
Leo Franchi
b1210ea43f Fix compile on clang 2012-05-03 09:12:36 -04:00
Dominik Schmidt
3a8eb34e35 Map Play key to playPause() action 2012-05-03 01:54:29 +02:00
Dominik Schmidt
697599db6c win: catch multimedia keys globally. 2012-05-03 01:33:49 +02:00
Dominik Schmidt
e74ec6ba79 Add multimedia key support on windows and linux 2012-05-03 01:33:49 +02:00
Tomahawk CI
838b802846 Automatic merge of Transifex translations 2012-05-02 22:16:23 +00:00
Jeff Mitchell
57e953409a Safety 2012-05-02 15:40:11 -04:00
Leo Franchi
5452c41760 Hide verbose accountmodel debug 2012-05-01 21:03:56 -04:00
Leo Franchi
414f553eb3 Re-enable last.fm test login button when changing fields 2012-05-01 21:03:45 -04:00
Leo Franchi
7698b2ec38 start auto updaters on start 2012-05-01 20:53:24 -04:00
Leo Franchi
04358fbafe don;t crash if username is null 2012-05-01 20:53:17 -04:00
Leo Franchi
d30e5df23e recreate scrobbler when changing credentials 2012-05-01 20:52:56 -04:00
Leo Franchi
455d7816e5 Change updaters to use QMultiHash instead of QHash 2012-05-01 20:08:38 -04:00
Jeff Mitchell
710780f3e9 Untested but relatively straightforward...add InfoShareTrack, custom message/account ability for twitter 2012-05-01 18:22:36 -04:00
Tomahawk CI
07430668d2 Automatic merge of Transifex translations 2012-05-01 22:16:26 +00:00
Leo Franchi
66b282be6c Merge branch 'multipleupdaters' 2012-04-30 22:46:34 -04:00
Leo Franchi
b5626c0b61 Update icon when deleting/removing updater 2012-04-30 22:43:26 -04:00
Leo Franchi
029dd935c9 Unregister updater from playlist on deletion 2012-04-30 22:43:12 -04:00
Leo Franchi
8392251280 remove usage of smartpointerlist 2012-04-30 22:41:37 -04:00
Leo Franchi
4b3682c1c5 Fewer crashes and bugs :) 2012-04-30 20:39:49 -04:00
Leo Franchi
b1a5626e94 add migration code 2012-04-30 18:25:37 -04:00
Tomahawk CI
32022ce209 Automatic merge of Transifex translations 2012-04-30 22:17:03 +00:00
Dominik Schmidt
c7ecacda32 FindQCA2: OSX: Add additional search path for qca from brew 2012-04-30 23:04:53 +02:00
Leo Franchi
319a03b791 fixes 2012-04-30 08:33:33 -04:00
Leo Franchi
17bcaf7369 work on multiple updaters 2012-04-29 13:40:05 -04:00
Tomahawk CI
652dd24e7d Automatic merge of Transifex translations 2012-04-28 22:17:00 +00:00
Leo Franchi
c0e627b7c6 Calculate radius and arm width with a formula to allow proper scaling 2012-04-28 17:14:05 -04:00
Leo Franchi
812bfd7ca5 Show spinner for an account while it's connecting 2012-04-28 16:29:32 -04:00
Leo Franchi
56edc1ba0c Update diagnostics dialog for accounts. Just ported over, still crappy. 2012-04-28 15:51:22 -04:00
Leo Franchi
82240ff6c1 Cleanup and move center of spinner down by 1 px 2012-04-28 15:18:04 -04:00
Leo Franchi
7b901c18a9 Show some debug output if we forcefully kill external resolvers 2012-04-27 19:39:33 -04:00
Leo Franchi
4a510b436b SHouldnt commit this 2012-04-27 19:12:39 -04:00
Leo Franchi
0677db0419 Merge branch 'mhd' 2012-04-27 19:05:05 -04:00
Leo Franchi
ab641c88e0 Clean up from working branch, disable playlist links until ready. 2012-04-27 19:04:03 -04:00
Leo Franchi
91ebe57dd2 Fix qpixmap mode of AnimatedSpinner 2012-04-27 18:58:24 -04:00
Tomahawk CI
7763a94969 Automatic merge of Transifex translations 2012-04-27 22:17:00 +00:00
Leo Franchi
65b01ffbca Port to new AnimatedSpinner 2012-04-27 17:38:43 -04:00
Leo Franchi
1d5e124b46 Fix animated spinner colors, fading, and animation 2012-04-27 17:30:31 -04:00
Leo Franchi
8d6a4335b8 Merge branch 'master' into mhd
Conflicts:
	src/AccountDelegate.cpp
	src/libtomahawk/playlist/TrackView.cpp
	src/libtomahawk/widgets/SearchWidget.cpp
2012-04-27 17:30:22 -04:00
Leo Franchi
f5873c283a Merge branch 'horus' 2012-04-27 10:37:33 -04:00
Leo Franchi
6d6ca1e94a fix style 2012-04-27 10:37:16 -04:00
Stefan Derkits
b92f7f551e move code from AudioEngine header to cpp file 2012-04-27 13:29:18 +02:00
Leo Franchi
7fc03770d0 Add proper playlist POSTing 2012-04-26 21:12:44 -04:00
Tomahawk CI
6352542793 Automatic merge of Transifex translations 2012-04-26 22:17:27 +00:00
Stefan Derkits
dab5d51952 rename slots & signals, disable Stop After Current Track in systray if track is stopped 2012-04-26 23:08:47 +02:00
Stefan Derkits
ef8306394f Merge branch 'master' of https://github.com/tomahawk-player/tomahawk 2012-04-26 22:52:07 +02:00
Dominik Schmidt
bb9906cd9a Merge pull request #87 from seezer/master
Don't break build if CMAKE_DATESTAMP_* is null
2012-04-26 05:26:41 -07:00
Stefan Derkits
a191a7648b Changed text from after this Track to after current Track, connect started signal with additional slot, check if current track is null 2012-04-26 14:08:00 +02:00
Sebastian Goth
12d627f3a7 Don't break build if CMAKE_DATESTAMP_* is null
The If-statement breaks whenever cmake substitutes TOMAHAWK_VERSION_DATE to null
2012-04-26 14:04:59 +02:00
Stefan Derkits
802fc1f39f First version of stop playback after this track also in systray context menu 2012-04-25 21:26:00 +02:00
Tomahawk CI
4535295dd6 Automatic merge of Transifex translations 2012-04-24 22:18:24 +00:00
Jeff Mitchell
24f2b29806 Fix proxying (on Qt 4.8? With current OpenSSH?) 2012-04-24 14:43:37 -04:00
Leo Franchi
696dca4af4 Sync last.fm settings to file immediately 2012-04-24 11:28:44 -04:00
Christian Muehlhaeuser
4c6f31e7c2 * Fixed a few issues with the merged code. 2012-04-24 08:35:06 +02:00
Christian Muehlhaeuser
93ad670828 * Added Artist::albums( ... ) for convenience. Removes a lot of DRY code. 2012-04-24 08:07:18 +02:00
Christian Muehlhaeuser
99e09b3b8d * Style fix. 2012-04-24 08:07:18 +02:00
Christian Muehlhaeuser
b0a1e5ffe1 * Obsolete and dangerous include. 2012-04-24 08:07:18 +02:00
Tomahawk CI
269319c15d Automatic merge of Transifex translations 2012-04-23 22:17:21 +00:00
Dominik Schmidt
fbe918dd4e Make the not-all-disconnect-reasons-checked message actually useful 2012-04-23 15:52:13 +02:00
Tomahawk CI
46bee7acd4 Automatic merge of Transifex translations 2012-04-22 22:17:05 +00:00
Jeff Mitchell
456d6f74bb Fix invalid variant conversion; need to make sure it's actually working properly, though 2012-04-22 16:57:50 -04:00
Jeff Mitchell
261aa7b677 W. T. F. Why can my simple struct no longer be serialized by QVariant.
Even adding destructor/copy constructor didn't help.
2012-04-22 16:05:14 -04:00
Jeff Mitchell
4fcfbf8e06 Semi-working ACL state. 2012-04-22 14:40:15 -04:00
Jeff Mitchell
2a24b4d239 truthiness++ 2012-04-22 13:52:12 -04:00
Leo Franchi
24ec94ed96 POST and jspf handling 2012-04-22 04:15:17 -04:00
Jeff Mitchell
9c2e17a660 Still get no output, but at least the debug looks good now, and fixed segfault on exit 2012-04-22 01:17:57 -04:00
Jeff Mitchell
931cfd8eb2 Check in interim work 2012-04-22 00:37:00 -04:00
Christian Muehlhaeuser
c630baf774 * Fixed include. 2012-04-22 02:18:43 +02:00
Jeff Mitchell
987345dd58 AND WE'RE DONE! CAMELCASE FTW!!1!1! 2012-04-21 19:49:39 -04:00
Jeff Mitchell
78d7a376bc CamelCase Round 4: Let there be light! (Less than 100 left) 2012-04-21 19:32:33 -04:00
Jeff Mitchell
b52e0d8470 CamelCase round 3: ~100 more down. 2012-04-21 19:04:04 -04:00
Jeff Mitchell
e3bdfda2ee CamelCase Round 2...FIGHT 2012-04-21 18:46:33 -04:00
Tomahawk CI
0aea363abf Automatic merge of Transifex translations 2012-04-21 22:16:29 +00:00
Jeff Mitchell
11895fc198 First batch of CamelCasing 2012-04-21 17:41:43 -04:00
Leo Franchi
a48fff23c2 Merge branch 'master' of github.com:tomahawk-player/tomahawk into mhd 2012-04-21 15:23:26 -04:00
Jeff Mitchell
e4d6b1785c I'm stupid. Put the right version first. 2012-04-21 15:18:04 -04:00
Jeff Mitchell
9373b6b312 Changelogify 2012-04-21 14:53:52 -04:00
Leo Franchi
012bc8949e Merge remote-tracking branch 'origin/master' into mhd 2012-04-21 14:42:56 -04:00
Leo Franchi
15595b741e some work 2012-04-21 14:42:52 -04:00
Jeff Mitchell
f272c5e966 Add zerconf protocol v2 2012-04-21 14:41:28 -04:00
Jeff Mitchell
9419c77069 Add a lot more acl job plumbing; it's pretty much ready to go except for
the actual drawing
2012-04-21 13:33:34 -04:00
Jeff Mitchell
50ce4d3c55 Add AclJobItem 2012-04-21 11:54:54 -04:00
Jeff Mitchell
fda71bb583 Add new role for getting item data 2012-04-21 11:54:26 -04:00
Jeff Mitchell
eb0ed267fa Make job counting generic 2012-04-21 11:43:51 -04:00
Jeff Mitchell
0b796a3085 The delegate needs a parent at creation, so send the item instead of sending the delegate over 2012-04-21 11:32:23 -04:00
Jeff Mitchell
1695b39abf Add acl job queue and custom delegate removal capability 2012-04-21 11:06:48 -04:00
Jeff Mitchell
c84cfc8bf0 RETHINK MUSIC COMMIT #1!!1!!11! Implement a way to set a custom delegate in job view items 2012-04-21 10:39:21 -04:00
Christian Muehlhaeuser
53e97e75da * Test commit. 2012-04-21 07:05:57 +02:00
Leo Franchi
ab84f6837a Add animated spinner 2012-04-21 00:01:42 -04:00
Leo Franchi
6557b3fb0f closer to working manual animated spinner 2012-04-21 00:01:21 -04:00
Leo Franchi
db07be002d Initial work on spinners for resolver download and new chasewidget 2012-04-20 18:21:20 -04:00
Tomahawk CI
6f266230f5 Automatic merge of Transifex translations 2012-04-20 22:16:23 +00:00
Leo Franchi
31c7c84b5c rm 2012-04-20 16:04:59 -04:00
Leo Franchi
f7fcfcb452 start towards info 2012-04-20 16:04:36 -04:00
Leo Franchi
ddd0af895f account dedup 2012-04-20 15:10:45 -04:00
Leo Franchi
1360d28b25 Give resolver another second to quit and terminate 2012-04-19 21:51:06 -04:00
Tomahawk CI
0bc8316319 Automatic merge of Transifex translations 2012-04-18 22:16:14 +00:00
Tomahawk CI
361fdbe31f Automatic merge of Transifex translations 2012-04-17 22:16:25 +00:00
Tomahawk CI
134fa6dffd Automatic merge of Transifex translations 2012-04-16 22:16:42 +00:00
Leo Franchi
1a45a42a86 Playlists might not be synced, but might have an updater 2012-04-16 11:30:43 -04:00
Leo Franchi
c7feb0f6f0 Only show Sync actions if user is logged in, and re-add if spotify user switches 2012-04-15 22:50:09 -04:00
Leo Franchi
46cb1f01fb Don't prompt for deleting tomahawk playlist when spotify user is switched 2012-04-15 22:42:27 -04:00
Leo Franchi
3ade68cf25 Log in to spotify if the user entered credentials and hit OK without pressing log in 2012-04-15 22:38:51 -04:00
Leo Franchi
3cbb6c426b provide a way for accounts to show an about widget, and show it for spotify 2012-04-15 22:23:16 -04:00
Leo Franchi
8942cbb9fa derichtext 2012-04-15 21:52:32 -04:00
Leo Franchi
177e0a6a80 marginally better spotify config ui 2012-04-15 21:45:20 -04:00
Leo Franchi
5a17ad2fd9 Move spotify legalese into tomahawk account dialog 2012-04-15 21:39:40 -04:00
Leo Franchi
e1c7c9df05 TWK-854: Handle deletion of synced playlist 2012-04-15 21:09:34 -04:00
Tomahawk CI
3b4c3cd36c Automatic merge of Transifex translations 2012-04-15 22:16:23 +00:00
Leo Franchi
1b99cabef9 fix deleting on exit 2012-04-15 11:14:30 -04:00
Christian Muehlhaeuser
8bac05eb97 * Simplify code. 2012-04-15 07:18:27 +02:00
Christian Muehlhaeuser
ae2b09ab4e * Fixed SocialWidget tr() call. 2012-04-15 07:15:13 +02:00
Christian Muehlhaeuser
fff849bb88 * Added new translations. 2012-04-15 07:13:57 +02:00
Leo Franchi
5feee4ba75 Fix merge oops 2012-04-15 01:00:52 -03:00
Leo Franchi
701ef5a69d Merge branch 'spotifyplaylists' 2012-04-14 23:52:08 -04:00
Leo Franchi
794bcc6fb1 dead code-- 2012-04-14 23:50:06 -04:00
Leo Franchi
64ba0b5d7c fix some UI glitches with spotify playlist list 2012-04-14 23:50:05 -04:00
Leo Franchi
255cef8092 remove updater from settings when changing user 2012-04-14 22:46:30 -04:00
Leo Franchi
a99b35e11b always show proper credentials, update playlist when updater is removed 2012-04-14 22:36:07 -04:00
Leo Franchi
d61a99629f Rework spotify UI a bit for greater clarity 2012-04-14 22:09:22 -04:00
Tomahawk CI
7ccccae722 Automatic merge of Transifex translations 2012-04-14 22:16:15 +00:00
Leo Franchi
4d02b9945d only save diretory if user actually chose one 2012-04-14 16:50:15 -04:00
Leo Franchi
d2f6a65eb5 save/restore folder when loading playlists 2012-04-14 15:07:46 -04:00
Leo Franchi
08a15f0acb Don't tweet on love 2012-04-14 14:57:44 -04:00
Leo Franchi
d9f690d9d6 Merge remote-tracking branch 'origin/master' into spotifyplaylists
Conflicts:
	src/libtomahawk/accounts/Account.cpp
	src/tomahawkapp.cpp
2012-04-14 13:10:06 -04:00
Leo Franchi
c4a9dd6b32 Fix position when moving 2012-04-14 13:07:33 -04:00
Leo Franchi
4ec0117c43 Send tracks moved to spotify 2012-04-14 11:44:27 -04:00
Leo Franchi
b7b5e60f98 notifications for track moved 2012-04-13 23:06:39 -04:00
Leo Franchi
8069baf911 support moving to beginning 2012-04-13 22:05:25 -04:00
Leo Franchi
df37fd42fd try re-setting m_entries on new playlist revision instead of adding new/removing old only 2012-04-13 21:34:26 -04:00
Leo Franchi
f72e123140 Handle moves from spotify (doesn't show up till a restart) 2012-04-13 19:58:57 -04:00
Tomahawk CI
ba064206c4 Automatic merge of Transifex translations 2012-04-13 22:16:23 +00:00
Casey Link
a542797038 Fix NewReleases loading bug by using the new generic cache 2012-04-13 16:21:39 -05:00
Casey Link
0cf9a26004 If we can't retrieve source list from cache, re-fetch. 2012-04-13 16:15:44 -05:00
Casey Link
a6754e7467 Fix charts on subsequent starts by caching the list of sources. 2012-04-13 16:09:12 -05:00
Casey Link
6e51739ec9 Add stream operators for CacheData 2012-04-13 16:09:12 -05:00
Casey Link
c46c9bba8e Add some debug to the generic cache 2012-04-13 16:09:12 -05:00
Casey Link
613d40a605 Store the correct lifetime for cache data. 2012-04-13 16:09:12 -05:00
Casey Link
4b6eadd956 Add documentation to cache 2012-04-13 16:09:12 -05:00
Casey Link
c6beda5a7b Add a Cache mutex to protect shared data 2012-04-13 16:09:12 -05:00
Casey Link
67d943bce3 Rename TomahawkUtils::TomahawkCache to TomahawkUtils::Cache 2012-04-13 16:09:12 -05:00
Casey Link
08fa4bacd1 New TomahawkCache utility class.
A simple, generic cache utility that various bits and bobs can use.
2012-04-13 16:09:12 -05:00
Leo Franchi
bc443d25ac save new title 2012-04-13 16:01:35 -04:00
Leo Franchi
78be0b75fe oops not meant to commit that... 2012-04-13 13:48:17 -04:00
Leo Franchi
7169c6d070 Queue up spotify db ops if playlist is busy, otherwise we hit a race condition 2012-04-13 13:47:12 -04:00
Hugo Lindström
78a8c3cfc4 Initial syncstate removal on userchange 2012-04-13 09:06:26 +02:00
Tomahawk CI
68d2cb38de Automatic merge of Transifex translations 2012-04-12 22:17:09 +00:00
Hugo Lindström
332e9c0448 Output friendly errors 2012-04-12 19:12:45 +02:00
Hugo Lindström
0eafeb995d Added ErrorJob 2012-04-12 18:04:51 +02:00
Hugo Lindström
2a44de8641 Prepare for JobStatus 2012-04-12 17:48:20 +02:00
Leo Franchi
c1a7c63f03 Ask to delete a playlist on spotify side when deleting a synced playlist 2012-04-12 09:09:09 -04:00
Leo Franchi
6a24d8ebf5 fixes for handling createPlaylist command 2012-04-11 21:34:53 -04:00
Jeff Mitchell
add5bdf8de Add assert to make it obvious during development if an info plugin is not in the right thread, thanks Leo for the suggestion 2012-04-11 20:34:58 -04:00
Casey Link
90d3661c52 Bring back the right-arrow that segments the breadcrumbs 2012-04-11 18:44:09 -05:00
Casey Link
6c4e6725b4 Remove unused cruft 2012-04-11 18:44:09 -05:00
Casey Link
78192cc752 Simplify new releases ui 2012-04-11 18:44:09 -05:00
Jeff Mitchell
d93c45fd1e Since we're increasingly using toma.hk, make sure people understand that the option is recommended 2012-04-11 18:29:45 -04:00
Tomahawk CI
066a7a2660 Automatic merge of Transifex translations 2012-04-11 22:16:57 +00:00
Casey Link
548aa1a194 First pass at new releases widget 2012-04-11 16:14:50 -05:00
Casey Link
69d1450b5c Implement New Releases info plugin
Heavily based off existing charts info plugin, refactoring and consolidating
can be done later.
2012-04-11 16:06:30 -05:00
Casey Link
066c387ae9 Update charts info plugin to use the new API
This changes from the /source/billboard/chart/top100 style of uri
resource naming to /charts/billboard/top100. The server side changes
have been live for several weeks.
2012-04-11 15:58:57 -05:00
Jason Herskowitz
72df118216 Add New Releases icon for sidebar 2012-04-11 16:05:20 -04:00
Jeff Mitchell
556c0b0767 Merge branch 'twitterinfo' 2012-04-11 15:25:25 -04:00
Jeff Mitchell
511d353cc6 Somehow, who knows how, passing a QImage to the FDO notification spec
crashes some X servers, but saving the QImage to a file as a PNG,
loading it back from the file as a PNG, and passing that QImage is
totally cool. Wut.
2012-04-11 15:22:34 -04:00
Leo Franchi
ffe810349b Merge pull request #85 from nowrep/master
Fixed position of context menu in ArtistView and TrackView
2012-04-11 10:44:00 -07:00
nowrep
f42aca9a02 Fixed position of context menu in ArtistView and TrackView
- using viewport()->mapToGlobal() as QTreeView is subclass of
  QAbstractScrollArea
2012-04-11 19:27:12 +02:00
Jeff Mitchell
64fbd23008 Use returned notification ID instead of static version. Thanks to David Rosca <nowrep@gmail.com> for the fix 2012-04-11 12:54:56 -04:00
Jason Herskowitz
9db33b7fb6 New social share icon in now playing controls 2012-04-11 12:18:19 -04:00
Jeff Mitchell
75d1ab7bbe Make now-playing FDO notifications reuse, and fix a logic bug in audioengine that would cause missed notifictions 2012-04-11 11:32:29 -04:00
Leo Franchi
4871b6b76c Merge remote-tracking branch 'origin/master' into spotifyplaylists
Conflicts:
	src/libtomahawk/globalactionmanager.cpp
2012-04-11 10:24:02 -04:00
Jeff Mitchell
28c76e73bd Merge remote-tracking branch 'origin/master' into twitterinfo 2012-04-11 09:55:56 -04:00
Jeff Mitchell
3ea581c4f8 Maybe fix cover temp file writing 2012-04-11 09:55:48 -04:00
Jeff Mitchell
7284a53d0f Move Jreen bits in xmpp info plugin to the SIP side, allowing the plugin to run in the correct thread. 2012-04-11 08:19:10 -04:00
Christian Muehlhaeuser
c5eb71d0de * Small tweaks to the SocialWidget. 2012-04-11 07:35:01 +02:00
Christian Muehlhaeuser
06fbb9e0dc * Added SocialWidget, tweet or share your latest music obsessions. 2012-04-11 07:14:42 +02:00
Christian Muehlhaeuser
e33923c63f Merge pull request #83 from excieve/master
"xesam:artist" MPRIS2 type change
2012-04-10 15:37:58 -07:00
Jeff Mitchell
2b09915a0d Convert sip plugin to a weak pointer so we can check its validity before running invokeMethod on it 2012-04-10 18:36:35 -04:00
Tomahawk CI
35c56395da Automatic merge of Transifex translations 2012-04-10 22:16:55 +00:00
Jeff Mitchell
619373c2e5 Make lastfm/xmpp info plugins more robust 2012-04-10 18:16:14 -04:00
Jeff Mitchell
43806aec62 Remove album from love action 2012-04-10 17:59:23 -04:00
Jeff Mitchell
54aef2cd2e More work towards cleaning up and making safer the info plugins. Twitter should be pretty good, but need to make lastfm and xmpp use the same paradigm 2012-04-10 17:58:34 -04:00
Artem Gluvchynsky
4b38bbff30 Changed xesam:artist to a list of strings according to the Xesam spec 2012-04-11 00:19:08 +03:00
Jeff Mitchell
4eaff7a45f Get rid of double-additions of info plugins. Still not sure why it doesn't seem to delete itself. 2012-04-10 12:43:47 -04:00
Jeff Mitchell
25fba84b32 This should hopefully get rid of the messages about parent being in the wrong thread 2012-04-09 23:52:06 -04:00
Leo Franchi
042b27ea83 tomahawk side of creating a newly synced playlist 2012-04-09 23:01:03 -04:00
Leo Franchi
f51f5e4d59 remove associated actions when deleting spotify account 2012-04-09 22:20:49 -04:00
Jeff Mitchell
4c5855c95d Add twitter info plugin. Still needs some work -- when it should delete
itself (for instance if you disable the plugin and re-enable) it doesn't
seem to, leading to twitter complaining about duplicate statuses. Also
get a message about creating children for parent in different thread.

Along the way, made lastfm plugin correctly switch to the right thread
for the info plugin, fix a couple bugs (such as loving and unloving
using the same type), and so on.

Need to fix up xmpp info plugin to use the correct thread as well.

Also, right now tweets indiscriminately when you love, should turn that
off before merging to master.
2012-04-09 20:50:10 -04:00
Tomahawk CI
6a88aefadc Automatic merge of Transifex translations 2012-04-09 22:16:19 +00:00
Jason Herskowitz
feedb1450c Make capitalization of Stop Playback after this Track consistent with other context menu items 2012-04-09 14:46:42 -04:00
Jeff Mitchell
bfdc7a3d67 Fix Adium plugin with updated notfications 2012-04-09 13:11:35 -04:00
Jeff Mitchell
80a1009aa2 Update text in notification 2012-04-09 12:52:43 -04:00
Jeff Mitchell
bb0e24f074 Fix up xmpp info plugin. This plugin respects private listening
settings, since unlike mpris and fdo it isn't designed to display
locally
2012-04-09 12:19:25 -04:00
Jeff Mitchell
b6cd43d25f Vastly simplify mpris plugin by getting rid of unnecessary info system call 2012-04-09 12:03:12 -04:00
Jeff Mitchell
b0e8fd33ce Merge branch 'master' into notificationcleanup 2012-04-09 11:37:30 -04:00
Leo Franchi
3cb079b014 crash fix and only show spotify sync context menu for local playlists 2012-04-09 09:41:26 -04:00
Dominik Schmidt
651bde6b4a Don't make the context menus transparent as well. Thanks to nowrep for the hint 2012-04-09 12:45:39 +02:00
Leo Franchi
03c57d3a0f Add spotify context menu action for local playlists
This also adds a generic way for runtime components to register actions to
be shown for a certain category of items (e.g. playlists, tracks, artists, etc).
Initiating a sync from Tomahawk is still a TODO
2012-04-08 22:43:11 -04:00
Leo Franchi
6ffaa1450e safer 2012-04-08 20:29:39 -04:00
Jeff Mitchell
ca375bcc76 Remove privacy for mpris; we want to keep local info updated, it's up to the user to configure how programs proxy mpris information 2012-04-08 20:07:07 -04:00
Leo Franchi
1dda0371b5 Merge remote-tracking branch 'origin/master' into spotifyplaylists 2012-04-08 20:05:43 -04:00
Leo Franchi
1b445934a8 Work on the tomahawk side of spotify syncing. bugfixes and new UI indicators 2012-04-08 20:05:20 -04:00
Jeff Mitchell
3f39b0a95f Some cleanup 2012-04-08 19:52:17 -04:00
Jeff Mitchell
8bb31492e4 Merge branch 'master' into notificationcleanup 2012-04-08 19:31:31 -04:00
Jeff Mitchell
41a3cea05e Fix CPU usage due to fader 2012-04-08 19:30:28 -04:00
Jeff Mitchell
c6b5ea0380 Covers aren't showing up now...but at least we're not pegging CPU. Will continue to fix in a bit 2012-04-08 18:30:37 -04:00
Tomahawk CI
712805f5b0 Automatic merge of Transifex translations 2012-04-08 22:16:06 +00:00
Leo Franchi
1a6f96caaf don't delete a playlist if we don't have an updater for it or if it's already deleted 2012-04-08 16:11:43 -04:00
Jeff Mitchell
789a93dbe9 Make changes to audiocontrols fader to better handle transitions to/from default cover 2012-04-08 15:33:44 -04:00
Jeff Mitchell
7914fc9551 Initial work on notification cleanup 2012-04-08 14:36:06 -04:00
Jeff Mitchell
8a85b8bbc6 Fix changing connect status 2012-04-08 11:31:11 -04:00
Leo Franchi
a80929e52f Merge remote-tracking branch 'origin/master' into spotifyplaylists 2012-04-08 10:00:55 -04:00
Jeff Mitchell
ff3770a464 Use shared timeline for pixmapdelegatefader. 2012-04-08 09:49:39 -04:00
Jeff Mitchell
546abf4a6d Wrote this SharedTimeLine thing, then converted the wrong class to use it, oops. Seems to work perfectly, though, so might as well use it. 2012-04-07 21:17:53 -04:00
Leo Franchi
cfcdbbb728 Refactor playlist updater system to make it more generic
Updaters aren't necessarily timer-based, and each updater provides its own
configuration widget, as a checkbox might not always make sense
2012-04-07 19:13:38 -04:00
Leo Franchi
30791e9bdc less debug 2012-04-07 19:13:38 -04:00
Jeff Mitchell
4e01387eb9 I can't think of any reason that removing this wasn't a mistake, so I'm
putting it back
2012-04-07 18:57:43 -04:00
Jeff Mitchell
09ee426710 Because I am a moron, I didn't take the opportuniy when last futzing
with pushInfo to change things to a struct like I did on the pull side.
Now I'm fixing that mistake, which makes future changes to push data
far, far easier.
2012-04-07 18:51:20 -04:00
Tomahawk CI
de3b8c794b Automatic merge of Transifex translations 2012-04-07 22:16:10 +00:00
Christian Muehlhaeuser
94d97a1029 * Updated README url. 2012-04-07 19:19:47 +02:00
Hugo Lindström
af1a8ea8b4 fix missing ref 2012-04-07 10:51:45 +02:00
Hugo Lindström
d82df7f00d cleanup 2012-04-07 10:34:03 +02:00
Hugo Lindström
570171bddd emit rename signal and update spotify playlistname 2012-04-07 10:24:03 +02:00
Christian Muehlhaeuser
67d1e6e97c * Updated ChangeLog. 2012-04-07 10:03:28 +02:00
Christian Muehlhaeuser
dfa2a80d82 * Work-around VLC bug: reset volume when resuming. 2012-04-07 09:55:08 +02:00
Christian Muehlhaeuser
9d77f20710 * Boundaries are set by QSlider already. 2012-04-07 09:55:08 +02:00
Christian Muehlhaeuser
6d003028c3 * Don't update seek slider too often, use less cpu. 2012-04-07 09:55:08 +02:00
Leo Franchi
1f1f0d5bda debug-- 2012-04-06 22:45:12 -04:00
Leo Franchi
662ee55514 Hook up "delete tomahawk playlist when stopping sync" option 2012-04-06 22:44:09 -04:00
Leo Franchi
d154c141fb Compile 2012-04-06 21:23:21 -04:00
Leo Franchi
e4b90e6305 Don't create a timer with a 0ms timeout, that's not nice 2012-04-06 21:22:51 -04:00
Leo Franchi
fd81151996 Merge branch 'master' into spotifyplaylists 2012-04-06 20:03:02 -04:00
Hugo Lindström
6a6e2754c4 Also rename playlist if renamed in spotify. Todo: Both ways 2012-04-07 00:35:39 +02:00
Jeff Mitchell
ebd59724a5 Be a bit more explicit when connecting 2012-04-06 18:33:09 -04:00
Tomahawk CI
678ad2649f Automatic merge of Transifex translations 2012-04-06 22:16:10 +00:00
Jeff Mitchell
514d399f6b Bump cache version; put back in its proper place, and put in a better place in headless 2012-04-06 18:06:50 -04:00
Leo Franchi
9d88f16aa4 don't call artist->cover more than we need to 2012-04-06 17:21:26 -04:00
Jeff Mitchell
2a6a4c0252 Revert "Be a bit smarter about when we consider info loaded and updated"
This reverts commit 0c308b850d.
2012-04-06 17:17:43 -04:00
Jeff Mitchell
0c308b850d Be a bit smarter about when we consider info loaded and updated 2012-04-06 16:51:25 -04:00
Leo Franchi
55d80eb547 fix logic fail 2012-04-06 15:14:58 -04:00
Jeff Mitchell
110824bb06 Now that Jreen is fixed update signature 2012-04-06 15:03:08 -04:00
Leo Franchi
3b21c91a97 Allow specifying which type of cover image is requested 2012-04-06 14:56:31 -04:00
Leo Franchi
58adc470ce const ref'ify 2012-04-06 14:56:31 -04:00
Leo Franchi
2be9dfc45b Don't ask the infosystem for the same item data more than once racily 2012-04-06 14:56:31 -04:00
Jason Herskowitz
1a7f2cc070 Add volume fix to changelog 2012-04-06 08:35:19 -03:00
Leo Franchi
84773f7956 Add fading to various custom large track delegates and support query in fader 2012-04-05 23:31:48 -04:00
Leo Franchi
155cccb109 add fading to track charts 2012-04-05 23:31:21 -04:00
Leo Franchi
30e239c311 Don't load covers till scrolling stops in the treeview 2012-04-05 22:37:15 -04:00
Leo Franchi
f1aa7b6d28 Add fading for artist/albums in treeview as well 2012-04-05 22:24:25 -04:00
Leo Franchi
6c48be2563 Don't fade in to default covers 2012-04-05 22:05:42 -04:00
Leo Franchi
caf77a0935 debug-- 2012-04-05 21:25:15 -04:00
Leo Franchi
6af93841cb Try out some fading for album covers 2012-04-05 21:24:11 -04:00
Tomahawk CI
396f332d55 Automatic merge of Transifex translations 2012-04-05 22:16:30 +00:00
Jeff Mitchell
624e95a97b Clear status on Tomahawk startup since we can't currently clear it on
shutdown
2012-04-05 13:13:28 -04:00
Jeff Mitchell
3b9fb2c7eb Fix compile on OSX 2012-04-05 10:17:40 -04:00
Jeff Mitchell
8ba61f5496 Modify pushInfo interface to allow flags. These flags can be coded to
add extra common information for all consuming plugins. So far, a
shorturl flag has been added, making a short url available to all
plugins. I wasn't able to check this on OSX, so it might need a small
amount of touching up.
2012-04-04 21:37:34 -04:00
Leo Franchi
e147bf4861 some safety 2012-04-04 18:22:32 -04:00
Tomahawk CI
5fc54a7e4c Automatic merge of Transifex translations 2012-04-04 22:16:22 +00:00
Christian Muehlhaeuser
4ad1efbcf5 * Fixed crash in AudioControls. 2012-04-04 16:41:27 +02:00
Jason Herskowitz
caf2d18708 Change Account preference icon to a more generic Services icon and make color of preference icons match new gray 2012-04-03 22:17:03 -04:00
Jason Herskowitz
80e433abe0 Make placeholder avatar use same blue gray 2012-04-03 21:46:26 -04:00
Jason Herskowitz
464a32f35d Use different icon for collection in sidebar but don't change all the other instances that used drop-track.png 2012-04-03 20:54:10 -04:00
Christian Muehlhaeuser
b136eedc8b * Merged ChangeLog. 2012-04-04 02:45:58 +02:00
Christian Muehlhaeuser
97f2bb601f * Fixed spacing. 2012-04-04 02:45:02 +02:00
Jason Herskowitz
90e1af331b Tweak colors of footnote and queue headers to match palette of new playlist header 2012-04-03 18:16:55 -04:00
Tomahawk CI
cef3e7fac7 Automatic merge of Transifex translations 2012-04-03 22:16:14 +00:00
Leo Franchi
22e53172eb add metatype declaration 2012-04-03 09:54:48 -04:00
Leo Franchi
ee4dcc3892 Merge remote-tracking branch 'origin/master' into spotifyplaylists 2012-04-03 09:43:01 -04:00
Leo Franchi
f1c33bd67c fix our direct copy of clementine's closure class too 2012-04-03 08:32:06 -04:00
Tomahawk CI
1161ab2095 Automatic merge of Transifex translations 2012-04-02 22:16:08 +00:00
Christian Muehlhaeuser
c8743cd0e0 * Fixed non debug builds. 2012-04-02 17:41:26 +02:00
Leo Franchi
cc7ecc6795 allow updating playlist metadata 2012-04-02 09:41:35 -04:00
Christian Muehlhaeuser
e9db3ed319 * We are always on CMake >2.8.3. 2012-04-02 04:02:19 +02:00
Tomahawk CI
a40813c3b8 Automatic merge of Transifex translations 2012-04-02 01:50:50 +00:00
Tomahawk CI
6c45806fbe Automatic merge of Transifex translations 2012-04-02 01:37:21 +00:00
Christian Muehlhaeuser
bfc99e1af9 * Fixed about dialog for non debug releases. 2012-04-02 03:20:00 +02:00
Dominik Schmidt
1cd134d6b0 Add transiflex repo config 2012-04-02 04:38:13 +02:00
Leo Franchi
a80db298c0 TWK-762: Don't crash when exiting during indexing 2012-04-01 20:33:15 -04:00
Leo Franchi
a4c805b122 Save spotify ids we get returned from resolver after adding tracks 2012-04-01 14:58:59 -04:00
Leo Franchi
83a35fe3aa TWK-815: Lets not copy and paste the same code in 3 places and only fix it in one :) 2012-04-01 13:43:06 -04:00
Leo Franchi
57e36d5d01 Update translation, thanks neycho! 2012-04-01 13:06:54 -04:00
Leo Franchi
eeddd067ea Merge remote-tracking branch 'origin/master' into spotifyplaylists
Conflicts:
	resources.qrc
2012-04-01 12:56:24 -04:00
Jason Herskowitz
3f65e2b73c Gray squares playlist header. Thoughts? 2012-03-31 18:22:49 -04:00
Leo Franchi
266e7bed8b wider version of header for less tiling 2012-03-31 17:40:47 -04:00
Leo Franchi
47b1990eeb Try out a background pixmap for the infobar. What do people think? 2012-03-31 17:32:25 -04:00
Dominik Schmidt
b32f5c4904 Bump required Jreen version 2012-03-31 23:07:22 +02:00
Dominik Schmidt
bc76ce550c xmpp: Add checkbox for enforcing secure connections 2012-03-31 22:09:09 +02:00
Jeff Mitchell
4960e68208 Less CPU usage when updating time, hopefully 2012-03-31 13:39:14 -04:00
Jeff Mitchell
74ef12268e See if this fixes Chris' time-updating problem 2012-03-31 13:04:48 -04:00
Leo Franchi
676bf7f6d7 Don't block next update on delete from spotify 2012-03-31 12:18:53 -04:00
Leo Franchi
42d488eaac Uncomment assert for now 2012-03-31 11:44:49 -04:00
Leo Franchi
059d0374c6 Merge branch 'master' into spotifyplaylists
Conflicts:
	src/accounts/lastfm/lastfmplugin.h
	src/libtomahawk/playlist.h
	src/libtomahawk/resolvers/scriptresolver.cpp
	src/main.cpp
	src/tomahawkapp.h
2012-03-31 11:44:39 -04:00
Leo Franchi
5d09ff81fb Update bulgarian translation from neycho 2012-03-31 10:35:50 -04:00
Leo Franchi
d43db27ce0 Merge branch 'stable' 2012-03-31 10:27:31 -04:00
Christian Muehlhaeuser
7403713d98 * Only connect to InfoSystem on demand. 2012-03-31 08:44:07 +02:00
Christian Muehlhaeuser
e049dcd6af * Added global Recently Played page. 2012-03-31 07:53:47 +02:00
Christian Muehlhaeuser
1af928790e * Fixed delegate for latest additions. 2012-03-31 07:36:53 +02:00
Christian Muehlhaeuser
48d66649b1 * Forgot those files. 2012-03-31 07:18:01 +02:00
Christian Muehlhaeuser
c054d07110 * Fading covers in AudioControls. 2012-03-31 07:15:11 +02:00
Christian Muehlhaeuser
f0f9e6847b * Make stop-after-track better. 2012-03-31 06:38:38 +02:00
Christian Muehlhaeuser
b9c61952a6 * Fixed PlaylistLargeItemDelegate. 2012-03-31 05:48:15 +02:00
Christian Muehlhaeuser
c3e3944421 * Added stop-after-track context menu entry. 2012-03-31 05:17:15 +02:00
Leo Franchi
eddaec701b Merge pull request #79 from krf/make-compile-on-arm
Make compile on arm
2012-03-30 15:23:45 -07:00
Kevin Funk
87086e5278 Make compile on ARM (related to breakpad)
Make breakpad optional, add options
Same for CrashReporter - both don't work on ARM.
2012-03-31 00:20:14 +02:00
Leo Franchi
b49d810f01 Merge branch 'stable'
Conflicts:
	src/libtomahawk/CMakeLists.txt
	src/libtomahawk/playlist/treemodel.cpp
	src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp
	src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h
	src/tomahawkapp.cpp
2012-03-30 17:29:34 -04:00
Christian Muehlhaeuser
d8be1fa224 * Merged neycho's bg translation. 2012-03-30 23:00:37 +02:00
Leo Franchi
948a438ff2 Remove autoconnect hidden toggle 2012-03-30 15:01:38 -04:00
Leo Franchi
cdb70b05d2 Cleanups 2012-03-30 11:25:51 -04:00
Leo Franchi
0dc0067450 some cleanups 2012-03-29 23:28:09 -04:00
Christian Muehlhaeuser
a4421df9e9 * Potential fix for rotzbouw's weird crash. 2012-03-29 19:02:06 +02:00
Christian Muehlhaeuser
47774c3894 * Add polish to our released languages. All translations could do with an update now. 2012-03-29 18:04:57 +02:00
Leo Franchi
f39e9621a0 Uncomment out, oops 2012-03-28 21:39:17 -04:00
Leo Franchi
704c736046 more fixes 2012-03-28 18:23:41 -04:00
Kevin Funk
0d8a8038b7 Compile fix for ARM
Not sure why this is needed, but without this the tomahawk binary fails
to link.

Error:
`.LTHUNK9' referenced in section
`.text._ZN21AccountFactoryWrapperD1Ev[AccountFactoryWrapper::~AccountFactoryWrapper()]'
of CMakeFiles/tomahawk.dir/tomahawk_automoc.cpp.o: defined in discarded
section
`.text._ZN21AccountFactoryWrapperD2Ev[_ZN21AccountFactoryWrapperD5Ev]'
of CMakeFiles/tomahawk.dir/tomahawk_automoc.cpp.o
collect2: ld returned 1 exit status
make[2]: *** [tomahawk] Error 1
2012-03-28 23:45:48 +02:00
Jeff Mitchell
38ea9653a0 Change wording 2012-03-28 14:20:29 -04:00
Jeff Mitchell
eebf5dfe07 Dynamically enable/disable the web API, and change the wording for the option to make it more enticing 2012-03-28 14:17:27 -04:00
Dominik Schmidt
ba46795749 Merge branch 'stable'
Conflicts:
	src/libtomahawk/result.cpp
	src/libtomahawk/utils/tomahawkutils.cpp
	src/settingsdialog.cpp
	src/sip/twitter/tomahawkoauthtwitter.cpp
	src/sip/twitter/tomahawkoauthtwitter.h
2012-03-28 17:37:16 +02:00
Dominik Schmidt
00dade5460 YES, I GOT IT. I'M SURE. 2012-03-28 15:44:03 +02:00
Dominik Schmidt
301c1d21fe Make publishing the user tune optional 2012-03-28 15:34:51 +02:00
Dominik Schmidt
bac82c0abf Add missing return 2012-03-28 15:03:40 +02:00
Dominik Schmidt
8e0f44a374 Add XmppInfoPlugin for updating the user tune 2012-03-28 14:38:59 +02:00
Christian Muehlhaeuser
5593c134cd * Reorder toma.hk parameters to match website order. 2012-03-28 07:06:10 +02:00
Leo Franchi
f414e92b74 Keep track of spotify IDs of tracks in a synced playlist and update to id api 2012-03-27 23:07:58 -04:00
Leo Franchi
02ff39f595 Merge branch 'master' into spotifyplaylists
Conflicts:
	src/libtomahawk/utils/xspfloader.cpp
2012-03-27 17:49:02 -04:00
Leo Franchi
c54ca78769 fix xspf auto-updating 2012-03-27 11:26:33 -04:00
Leo Franchi
ff04ab3b92 autoupdate fixes: init on creation, and every 10 not 100 mins 2012-03-27 10:30:37 -04:00
Leo Franchi
cb484a2058 Merge remote-tracking branch 'origin/master' into spotifyplaylists
Conflicts:
	admin/mac/macdeploy.py
2012-03-26 12:26:09 -04:00
Leo Franchi
1bd7d37a0a eh 2012-03-25 09:58:09 -04:00
Jason Herskowitz
f41872540d Tweak recently played icon to give more padding 2012-03-24 20:23:20 -04:00
Leo Franchi
4dabbdf247 Disable ref work for now 2012-03-24 17:57:36 -04:00
Leo Franchi
4392e34882 Notify of tracks inserted also when dropped on sidebar item 2012-03-24 16:22:27 -04:00
Leo Franchi
aec6b557a6 fix adding hopefully 2012-03-23 18:38:29 -04:00
Leo Franchi
dddeb9e9a7 Some tomahawk-side fixes to playlist syncing. Removing works, adding not yet. 2012-03-23 18:11:36 -04:00
Jeff Mitchell
3c485949b6 Major restructuring to how ACLs will work. Disable dialog box again, for
now.
2012-03-22 17:57:57 -04:00
Leo Franchi
27978e5cd3 Now that vlc plugins are in Frameworks/vlc/plugins, we can rename plugins to PlugIns to retain case-sensitive compatibility on osx 2012-03-22 14:39:20 -04:00
Leo Franchi
fa49dde51a Merge remote-tracking branch 'origin/master' into spotifyplaylists 2012-03-22 10:36:45 -04:00
Leo Franchi
6d56d4350a Merge branch 'master' into spotifyplaylists
Conflicts:
	src/libtomahawk/playlist.cpp
	src/libtomahawk/playlist.h
2012-03-22 10:36:34 -04:00
Jeff Mitchell
a4ff57fafb Add some safety...since m_waitingForResolved won't die on an invalid object, use it to determine whether to disconnect, since there should be a 1:1 correlation 2012-03-20 14:40:54 -04:00
Jeff Mitchell
8fa4252fd6 Move the ACL check to Connection...hopefully this will work around a Qt socket crash 2012-03-20 12:48:46 -04:00
Leo Franchi
68d541d2e8 aFix crash in dragging artist, don't assume AlbumModel only contains albums as it's hacked to also contain artists. 2012-03-20 11:28:45 -04:00
Leo Franchi
75e9deabc4 Fix test when timeout fails 2012-03-19 23:59:22 -04:00
Leo Franchi
d6c7e7f57b Add WIP test login button for spotify 2012-03-19 23:55:44 -04:00
Leo Franchi
b8d3b3bc5f TWK-768: Enable xmlconsole by adding an xmlconsole arg to the settings for an account 2012-03-19 22:19:03 -04:00
Leo Franchi
b18f926fa5 TWK-744: Add individual account toggles in factory wrapper delegate 2012-03-19 22:06:46 -04:00
Leo Franchi
bf0b104d27 Guard against null sharedptr that shouldn't be null anyway -.- 2012-03-19 21:25:38 -04:00
Leo Franchi
c0ab42021e Make consistent name 2012-03-19 19:11:18 -04:00
Jeff Mitchell
4d77074c78 Reclaim copyrights 2012-03-19 16:58:15 -04:00
Jeff Mitchell
8ffd79d764 Move old code out of servent to acl registry; make ACL registry actually
do something.

Still needed: a page in settings to manage it
2012-03-19 15:53:15 -04:00
Leo Franchi
6da14794df Set playlists on config widget creation as well as on msg receive 2012-03-19 09:53:50 -04:00
Leo Franchi
f2c3edb8fe start actually implementing tomahawk-side spotify sync 2012-03-18 23:16:49 -04:00
Jason Herskowitz
e0f60931f7 Make track title prominent information in Queue and make it match new charts and latest additions 2012-03-18 19:21:33 -04:00
Jason Herskowitz
5b1aa81d1d Make track title primary info in track charts and top loved and lighten text of secondary info. Muesli, like? 2012-03-18 18:30:13 -04:00
Leo Franchi
ac274a50d3 Create playlists from spotify on flip 2012-03-18 18:23:39 -04:00
Jason Herskowitz
44a1adb922 Pretty up Recently Played widget on dashboard a bit by making played time/playee gray text 2012-03-18 17:50:21 -04:00
Leo Franchi
93c68b4ce1 Merge pull request #78 from mack-t/master
Pull additional information from tomahawk resolvers
2012-03-18 14:25:54 -07:00
mack-t
21eeab61d8 Add albumpos, discnumber and score information from tomahawk resolver 2012-03-18 16:20:57 -04:00
Leo Franchi
3aa7f5c9de ITWK-769: Don't activate window for all tomahawk urls, as play controls shouldn't 2012-03-18 15:46:07 -04:00
Leo Franchi
1468d3c0dc Add beginning of spotify playlist updater 2012-03-18 15:45:55 -04:00
Leo Franchi
6de0656794 factory-ize the playlist updater loading 2012-03-18 15:45:32 -04:00
jeff
0c4ac584e4 Refactor ACLSystem into ACLRegistry, clean it up a lot 2012-03-18 15:08:43 -04:00
Leo Franchi
b2612f9189 some further work 2012-03-18 14:56:38 -04:00
Leo Franchi
b0486f44b3 tweak size 2012-03-18 14:33:37 -04:00
Jason Herskowitz
819623300d Use recently played icon for new recently played sidebar item 2012-03-18 13:36:29 -04:00
Leo Franchi
a710782624 Merge branch 'master' into spotifyplaylists 2012-03-18 13:34:01 -04:00
Leo Franchi
42b2779240 Fix atticaid sync issue that would lose value 2012-03-18 13:26:54 -04:00
Leo Franchi
195953f4f8 Update spotify description 2012-03-18 13:26:54 -04:00
Jason Herskowitz
ba82c142ef Copy edit Url to URL 2012-03-18 10:26:13 -04:00
Jason Herskowitz
8d59a33502 Make systray icon actually use the grayscale version 2012-03-18 09:54:25 -04:00
Jason Herskowitz
2e3132732a Add grayscale icon to be used for OS X systray 2012-03-18 09:40:22 -04:00
Christian Muehlhaeuser
a2bfd73d55 * Fixed crash situation in AudioControls. 2012-03-17 17:09:57 +01:00
Christian Muehlhaeuser
ebbedb2b99 * Prevent race condition. 2012-03-17 12:10:09 +01:00
Christian Muehlhaeuser
57e55d0b88 * other vs others. 2012-03-17 11:23:40 +01:00
Christian Muehlhaeuser
15194438ee * Slightly decrease size of third chart item. 2012-03-17 10:35:29 +01:00
Christian Muehlhaeuser
6d068e33ce * Use different color for chart position. 2012-03-17 10:04:59 +01:00
Christian Muehlhaeuser
48d2ac71fa * Use bigger fonts for top chart items. 2012-03-17 09:46:35 +01:00
Christian Muehlhaeuser
afe6ed8463 * Added a Chart delegate. 2012-03-17 09:40:04 +01:00
Christian Muehlhaeuser
6e34b3f620 * Fixed size for the search widget. 2012-03-17 08:54:02 +01:00
Christian Muehlhaeuser
6f0d29dde9 * Bold font decoration for usernames in the delegate. 2012-03-17 08:08:28 +01:00
Christian Muehlhaeuser
3e11945c02 * Added PlaylistLargeItemDelegate. Loved, latest & recent tracks use it. 2012-03-17 06:55:49 +01:00
Christian Muehlhaeuser
bd098e3ff2 * Fixed cached resolving. 2012-03-17 05:49:43 +01:00
Christian Muehlhaeuser
b70114a225 * Fixed race condition during resolving. 2012-03-17 05:42:25 +01:00
Christian Muehlhaeuser
d5aed7b6df * Fetch square covers from Last.fm. 2012-03-17 01:33:03 +01:00
Christian Muehlhaeuser
d86124203c * Don't crash in onCoverUpdated if there's no current track. 2012-03-17 01:32:15 +01:00
Christian Muehlhaeuser
29c49b12b7 * This is explicitly WIP: Added Latest Additions & Recently Played nodes. 2012-03-16 23:23:58 +01:00
Christian Muehlhaeuser
d2b719b61c * DRY: Added RecentlyAddedModel. 2012-03-16 22:48:46 +01:00
Jason Herskowitz
8495c6397a Change text from GChat to Google Talk in account dialog 2012-03-16 17:43:12 -04:00
Leo Franchi
9b1a983cfd More work towards playlists 2012-03-16 17:41:26 -04:00
Christian Muehlhaeuser
8b99d234e8 * DRY: Added RecentlyPlayedModel. 2012-03-16 22:12:17 +01:00
Christian Muehlhaeuser
0e2da32f0c * Headless. Now. 2012-03-16 20:26:30 +01:00
Christian Muehlhaeuser
4d91fab887 * Headless fix. 2012-03-16 20:23:27 +01:00
Christian Muehlhaeuser
967c767f0b * More headless fixes. 2012-03-16 20:16:03 +01:00
Christian Muehlhaeuser
28f62d850d * Attempt to unbreak headless. 2012-03-16 20:14:11 +01:00
Leo Franchi
4f84158bdc Migrate spotify config to tomahawk, and set up for playlist work 2012-03-16 14:53:34 -04:00
Christian Muehlhaeuser
ce44b17544 * Updated ChangeLog. 2012-03-16 17:50:51 +01:00
Christian Muehlhaeuser
c9a3b697ef * Easier substring extraction. 2012-03-16 17:50:51 +01:00
Leo Franchi
ad82b81225 TWK-740: Don't accept the resolver account factory when adding new accounts to list 2012-03-16 11:16:40 -04:00
Leo Franchi
e3f5605c4e All QSharedPointers used in different threads need deleteLater as custom deleter. This is some of them. 2012-03-15 19:00:48 -04:00
Christian Muehlhaeuser
b34b3c7470 * Something is wonky about CLucene scoring. Rely on our internal scoring. 2012-03-15 09:04:16 +01:00
Christian Muehlhaeuser
19d3cf5bae * Don't request covers for tracks in the flat view. 2012-03-15 08:52:03 +01:00
Christian Muehlhaeuser
6408d93dc0 * Fixed TWK-758: Sorting playlist by album position. 2012-03-15 08:42:05 +01:00
Dominik Schmidt
f65b9d7f6f epic fail is epic 2012-03-15 03:29:52 +01:00
Dominik Schmidt
232409b1c4 naaaaaaaaaaaaaaaaaaaaaaaaaaaarf. 2012-03-15 02:37:02 +01:00
Dominik Schmidt
2efc4ee9d8 just say narf. 2012-03-15 02:24:38 +01:00
Dominik Schmidt
a27d918bea Make my warning actually readable ... 2012-03-15 02:12:35 +01:00
Dominik Schmidt
8503f5bbe3 Some more cleanup in FindJreen.cmake 2012-03-15 02:11:19 +01:00
Dominik Schmidt
b2779a9b6a Cleanup FindJreen.cmake and make it version aware 2012-03-15 01:24:35 +01:00
Leo Franchi
51087b5e0a oops not meant to be there 2012-03-14 19:41:21 -04:00
Leo Franchi
39bf8f9f6e Move spotify and last.fm accounts from libtomahawk to tomahawk/ 2012-03-14 19:37:18 -04:00
Dominik Schmidt
496871af04 Use the new Jreen::Logger and bump version requirement to 1.0.3 2012-03-15 00:26:09 +01:00
Dominik Schmidt
dab85e2008 Bump required CMake version also in README 2012-03-15 00:26:08 +01:00
Jeff Mitchell
5a57e285ec Set scanning threads idle priority 2012-03-14 16:14:25 -04:00
Leo Franchi
c5732d0d62 Don't crash loading covers for some tracks 2012-03-13 08:56:43 -04:00
Christian Muehlhaeuser
2e6688f42b * Use defaultPixmap() in TreeItemDelegate. 2012-03-13 03:49:02 +01:00
Christian Muehlhaeuser
6409113c0e * Lazily load TrackView covers. 2012-03-13 03:45:32 +01:00
Leo Franchi
ccd3e19fac fix spotify migration when migrating from pre-accounts 2012-03-12 22:03:31 -04:00
Christian Muehlhaeuser
18c16959ed * Added cover() method to Query. 2012-03-13 02:51:58 +01:00
Leo Franchi
60d11db923 TWK-750: Properly check if last.fm was enabled during accounts migration 2012-03-12 21:40:30 -04:00
Leo Franchi
c88058358e Fix macdeploy and build shared instead of MODULE, we don't want .so's on osx either. domme: confirm plz :) 2012-03-12 17:23:45 -04:00
Christian Muehlhaeuser
c511841f57 * Updated README. 2012-03-12 22:03:55 +01:00
Leo Franchi
cb85c767de Auto upgrade old spotify to new spotify 2012-03-11 12:31:22 -04:00
Leo Franchi
35706f16f7 Remove assert as it hits of synchrotron is down, no fun 2012-03-11 12:11:17 -04:00
Leo Franchi
538db98e2c Disable Sync code until I can figure out why clang doesn't like it 2012-03-09 22:54:49 -05:00
Leo Franchi
5c0507323c Merge branch 'spotifyAccount' 2012-03-09 22:41:29 -05:00
Leo Franchi
57490a68f0 Cleanup 2012-03-09 22:41:01 -05:00
Leo Franchi
66e67fdd4e Fix crash when accounts were loaded before attica was fetched 2012-03-09 22:37:39 -05:00
Leo Franchi
6dbcac58a4 Show description from factory for manual resolvers 2012-03-09 22:37:25 -05:00
Leo Franchi
1aeb5ed807 Don't re-sync on deletion as then deleting an account never removes it from the config file 2012-03-09 22:36:53 -05:00
Leo Franchi
2d1a036b3d Use virtual method for factory name 2012-03-09 22:36:35 -05:00
Leo Franchi
970b3e79a9 Properly load spotify account 2012-03-09 21:49:50 -05:00
Jeff Mitchell
c6cd6821bf Use new QTweetLib 0.5 API for PIN values so leading zeros are respected 2012-03-09 18:24:05 -05:00
Leo Franchi
e1edd9c5ee Account plugins have different names 2012-03-09 18:06:25 -05:00
Leo Franchi
ccee34eaa7 Initial work on Spotify account
Merge branch 'master' into spotifyAccount

Conflicts:
	src/libtomahawk/CMakeLists.txt
2012-03-09 17:56:38 -05:00
Jeff Mitchell
3f3c855a6d Fix XMPP proxy. Make no proxy hosts static so changing it works across
all threads; make a duplication method so jreen doesn't scopepointer us
to death on shutdown; pass in proxyfactory to jreen.
2012-03-09 17:41:38 -05:00
Leo Franchi
5848e7ba8c Debug and safety 2012-03-09 16:31:53 -05:00
Leo Franchi
7ac68392a6 Less debug 2012-03-09 15:34:06 -05:00
Leo Franchi
1ebeae274a fix warning 2012-03-09 15:20:56 -05:00
Leo Franchi
2710bca395 Back up old config file before upgrading, when it's an ini file 2012-03-09 15:16:16 -05:00
Leo Franchi
dc28a7694b So much for platform independence 2012-03-09 15:07:08 -05:00
Leo Franchi
a30c4f9055 Oops 2012-03-09 14:59:57 -05:00
Leo Franchi
ab026b5e2f Remove hardcoding of delegate height to accomodate different font sizes 2012-03-09 14:56:34 -05:00
Leo Franchi
99aea14b62 Migrate port and server to configuration not credentials 2012-03-09 14:50:00 -05:00
Leo Franchi
cf5c368499 Set alternating row colors for accounts list 2012-03-09 14:43:14 -05:00
Leo Franchi
2a58d53145 A bit of extra safety 2012-03-09 14:14:13 -05:00
Dominik Schmidt
9a19c9e81e Don't use dllmacro in the application 2012-03-09 02:55:46 +01:00
Dominik Schmidt
448734190c Use automoc on all platforms 2012-03-09 02:55:31 +01:00
Leo Franchi
afe2db8d51 TWK-738: Don't crash on quit 2012-03-08 19:20:41 -05:00
Leo Franchi
f4603e0cad clean up from refactor 2012-03-08 19:11:37 -05:00
Leo Franchi
6cbc8a9539 Refactor account dialogs into utils, and port tomahawk to automoc too 2012-03-08 18:53:59 -05:00
Leo Franchi
f3324ce167 Check enabled/disabled when enabling/disabling, not authenticated 2012-03-08 17:41:55 -05:00
Leo Franchi
5f674dbc83 dangerous debug byebye 2012-03-08 17:29:35 -05:00
Leo Franchi
69cfe8bb2f quazip byebye 2012-03-08 17:29:30 -05:00
Dominik Schmidt
528121d283 Fix resolver.cpp 2012-03-08 20:15:02 +01:00
Dominik Schmidt
71833b817f Fix automoc on OSX 2012-03-08 20:09:20 +01:00
Dominik Schmidt
df65d040e8 Port libtomahawk to the new cmake-build-in automoc. Requires cmake 2.8.6 2012-03-08 19:30:00 +01:00
Leo Franchi
5641f2a07c fix migrating when there is already a last.fm account, and hide debug 2012-03-08 12:32:53 -05:00
Leo Franchi
a602cbe005 add stupid amounts of debug 2012-03-08 12:24:30 -05:00
Leo Franchi
f9940ead9f More debug 2012-03-08 12:14:31 -05:00
Leo Franchi
0c7780e5e3 add some debug for domme 2012-03-08 12:01:44 -05:00
Leo Franchi
6b6d5f270f TWK-732: Fix filter for status push account types 2012-03-07 22:38:36 -05:00
Leo Franchi
0067e376ae Services
Merge branch 'accounts'

Conflicts:
	resources.qrc
	src/accounts/zeroconf/zeroconf.cpp
2012-03-07 18:23:32 -05:00
Leo Franchi
935b046acc Set git version to 0.4.99 as 0.4.0 is tagged and branched 2012-03-07 16:48:52 -05:00
Leo Franchi
2878552239 Fix various bugs in attica<->account bridge and bump config version 2012-03-02 16:23:45 -05:00
Leo Franchi
934ee4a535 Merge branch 'master' into accounts
Conflicts:
	src/libtomahawk/AtticaManager.cpp
	src/libtomahawk/AtticaManager.h
	src/libtomahawk/tomahawksettings.cpp
2012-03-01 16:58:08 -05:00
Leo Franchi
e677656b74 Merge branch 'master' into accounts 2012-02-28 20:24:07 -05:00
Leo Franchi
91e307b261 fix duplicate delete 2012-02-27 19:48:56 -05:00
Leo Franchi
91546d0684 Fix some bugs in ze last.fm account 2012-02-27 19:48:47 -05:00
Leo Franchi
f4c92793e6 Merge branch 'master' into accounts
Conflicts:
	src/libtomahawk/utils/xspfloader.cpp
	src/libtomahawk/utils/xspfloader.h
	src/tomahawkapp.cpp
	src/tomahawkwindow.h
2012-02-27 08:37:40 -05:00
Leo Franchi
540db2860e fix a crash 2012-02-25 11:59:47 -05:00
Leo Franchi
b2247febc1 Fix last.fm rsolver part of lastfm account 2012-02-24 18:52:16 -06:00
Leo Franchi
ea47a5556d better assert 2012-02-24 16:49:14 -06:00
Leo Franchi
b51480f122 Fix unchecking of unique factories 2012-02-24 11:30:22 -06:00
Leo Franchi
55d7fe9e53 Remove debugging aid 2012-02-24 11:00:36 -06:00
Leo Franchi
e6efa8dac3 Merge remote-tracking branch 'origin/master' into accounts
Conflicts:
	src/libtomahawk/tomahawksettings.cpp
	src/tomahawkapp.cpp
2012-02-24 10:59:47 -06:00
Leo Franchi
ac42abda7f Add a last.fm account on fresh config 2012-02-24 10:46:46 -06:00
Hugo Lindström
6a6f5dba7a Beginning of a bad spotifyAccount 2012-02-24 16:53:33 +01:00
Leo Franchi
d0b6d09255 Add first round of integration for custom attica accounts 2012-02-23 23:35:26 -06:00
Leo Franchi
b8ccf5a2e9 Merge remote-tracking branch 'origin/master' into accounts
Conflicts:
	src/main.cpp
2012-02-21 08:42:24 -06:00
Leo Franchi
27cde20dbf Fix Add Account button in factory config on OSX, and a few other osx tweaks 2012-02-20 23:06:49 -05:00
Leo Franchi
01fbbb6683 osx button size tweaks 2012-02-20 18:01:19 -05:00
Leo Franchi
61b55ab156 shrink spacing 2012-02-20 18:01:18 -05:00
Leo Franchi
502db67510 don't crash on exit 2012-02-20 15:45:43 -05:00
Leo Franchi
47e8f4ffc6 Add a last.fm account w. resolver and infotype. Needs merging w/ attica still 2012-02-20 00:58:38 -05:00
Leo Franchi
3e81405086 Add ability to add infoplugins to infosystem
also, add infoplugins from accounts that support them, and clean up
adding new info plugins in infoworker
2012-02-18 18:15:13 -05:00
Leo Franchi
443c554b36 Rework some scriptresolver/pipeline interaction now that we haev accounts 2012-02-18 18:14:00 -05:00
Leo Franchi
8cdce8e1ca fix some typos, remove extra code 2012-02-17 13:36:01 -05:00
Leo Franchi
e3f4fdfdd8 Some more work + debug to try to fix j's issue 2012-02-17 13:16:21 -05:00
Leo Franchi
0b452cc415 more debug for account row removing 2012-02-17 11:31:33 -05:00
Leo Franchi
e6f4674064 Only remove rows from model if removing a manual resolver. Update otherwise 2012-02-16 23:21:37 -05:00
Leo Franchi
06be1868ea More accountmodel debug 2012-02-16 22:39:12 -05:00
Leo Franchi
2412266a34 Fix painting initial coordinate for qMin 2012-02-16 22:36:46 -05:00
Leo Franchi
6638d74687 Fix typo, left->right is small->big... 2012-02-16 22:31:01 -05:00
Leo Franchi
dc41b29ab7 add some debug to account adding 2012-02-16 22:22:46 -05:00
Leo Franchi
638718a48c Add an assert and debug 2012-02-15 08:29:09 -05:00
Leo Franchi
9adc4be099 elide and tooltip 2012-02-14 18:51:38 -05:00
Leo Franchi
75ea38010f fix creating factory and other first start issue 2012-02-14 18:38:44 -05:00
Leo Franchi
0c231d5532 fix first start issues 2012-02-13 21:11:47 -05:00
Leo Franchi
7e9fa7c2a7 fix addin and removing 2012-02-13 20:04:47 -05:00
Leo Franchi
3687ebdc6b Add an Install From File and Remove Account option 2012-02-13 18:03:30 -05:00
Leo Franchi
8ceb537860 Merge branch 'accounts' of github.com:tomahawk-player/tomahawk into accounts 2012-02-13 16:11:41 -05:00
Leo Franchi
64043e059f Merge branch 'master' of github.com:tomahawk-player/tomahawk into accounts 2012-02-13 15:57:57 -05:00
Leo Franchi
011483ec54 Update UI file 2012-02-13 15:52:19 -05:00
Leo Franchi
b6ce8d282c Fix twitter dm settings name 2012-02-13 11:29:26 -05:00
Dominik Schmidt
d0a6d8a0a2 Fix windows installer 2012-02-12 22:48:37 +01:00
Leo Franchi
a02a9a4fd9 Merge remote-tracking branch 'origin/master' into accounts 2012-02-12 16:26:06 -05:00
Leo Franchi
e2749a7676 Fix some twitter stuff 2012-02-12 16:25:33 -05:00
Leo Franchi
0a3dc28bdf only migrate valid twitter accounts 2012-02-12 16:25:33 -05:00
Leo Franchi
79fd0278ce Fix turning on/off toplevel accounts 2012-02-12 16:25:33 -05:00
Dominik Schmidt
82c77e64c6 Fix windows 2012-02-12 19:59:33 +01:00
Leo Franchi
751af7862c fix merge 2012-02-11 12:24:09 -05:00
Leo Franchi
0425bfebac Merge remote-tracking branch 'origin/master' into accounts
Conflicts:
	src/accounts/xmpp/sip/xmppsip.cpp
2012-02-11 12:18:58 -05:00
Leo Franchi
40041f5c1e Finish adding filter imlpementation 2012-02-11 12:16:56 -05:00
Leo Franchi
132460b797 Non-working save 2012-02-10 19:38:36 -05:00
Leo Franchi
369c8ecd98 ui cleanup 2012-02-10 19:08:01 -05:00
Leo Franchi
478ff17e67 Merge remote-tracking branch 'lfranchi/accounts' into accounts 2012-02-10 18:53:03 -05:00
Leo Franchi
41b146f38a small cleanup 2012-02-10 18:50:51 -05:00
Leo Franchi
eea70f104f dialogs-- 2012-02-10 18:47:30 -05:00
Leo Franchi
7bae6c6b8a fix deleting 2012-02-10 18:45:28 -05:00
Leo Franchi
9ab47d769b Some fixes to the dialogs 2012-02-10 18:31:46 -05:00
Leo Franchi
23d14bd476 bit of osx tweaks 2012-02-10 17:22:59 -05:00
Leo Franchi
ecccf87992 Add multi-account config widget and hook things up 2012-02-09 23:16:18 -05:00
Leo Franchi
0dd4823a23 SHow online/offline status for factory with an account as well 2012-02-06 17:48:38 -05:00
Leo Franchi
001b9d0627 revampify layout
Please enter the commit message for your changes. Lines starting
2012-02-06 11:27:17 -05:00
Leo Franchi
0cfe2d2357 refactored UI again 2012-02-05 15:33:53 -05:00
Leo Franchi
8f1fa9b728 Step one in the pivot 2012-02-03 18:34:46 -05:00
Leo Franchi
34dbc50b3a Work to add setData to the model, and hook up model to some signals 2012-02-03 17:19:04 -05:00
Leo Franchi
daa6b7b841 more work 2012-02-02 10:54:13 -05:00
Leo Franchi
21cfb96b1e more work 2012-02-01 18:24:39 -05:00
Leo Franchi
96eb48090c Initialwork on new accounts delegate 2012-01-31 23:05:50 -05:00
Leo Franchi
f17bba773d initial delegate work 2012-01-31 18:25:34 -05:00
Leo Franchi
8eba4c171f Begin work on overhauled account UI, again 2012-01-29 19:33:12 -05:00
Leo Franchi
f2b1cc6ae3 fix looping over account existing 2012-01-29 15:02:21 -05:00
Leo Franchi
e8eb7300fc i = iniMap.constFind(sections.at(j));
Q_ASSERT(i != iniMap.constEnd());
Consolidate version macro...
2012-01-29 13:43:21 -05:00
Leo Franchi
9607d6be00 remove duplicated signal 2012-01-29 13:38:43 -05:00
Leo Franchi
ddb4bd4563 Move qdatastream registration to before settings init 2012-01-29 13:38:22 -05:00
Leo Franchi
e5414c8ff6 Merge remote-tracking branch 'origin/master' into accounts
Conflicts:
	src/accounts/xmpp/sip/xmppsip.cpp
	src/libtomahawk/CMakeLists.txt
2012-01-29 10:27:31 -05:00
Leo Franchi
7e13f1ae62 Hook up some removing 2012-01-29 10:07:15 -05:00
Leo Franchi
b78a348712 small work 2012-01-28 12:15:51 -05:00
Leo Franchi
4e450b36ee implement adding in getnewstuffmodel for attica resolvers 2012-01-27 19:10:11 -05:00
Leo Franchi
b300279e30 remove Resolver from settings list 2012-01-27 18:32:25 -05:00
Leo Franchi
e319aa248c Initial work towards merging accounts into GetNewStuffModel 2012-01-27 18:31:11 -05:00
Leo Franchi
39c7af6262 Remove ifdef of libattica 2012-01-27 13:50:29 -05:00
Leo Franchi
4334840dad QIcon->QPixmap for account icon.
QIcon doesn't make sense in this case, as it is designed to store multiple sizes/active states for icons
that are associated with e.g. toolbuttons. Account icons are just an image that represents the logo of
the account, so only one pixmap is needed.
2012-01-27 12:49:29 -05:00
Leo Franchi
22def2c617 Add resolver account wrapper and attica flag 2012-01-23 23:28:49 -05:00
Leo Franchi
cf9389a0de work towards integrating resolvers in accounts refactor 2012-01-22 20:08:32 -05:00
Leo Franchi
601bc7729a Initial account UI update. Buttons needs styling and implementation 2012-01-08 18:33:13 -05:00
Leo Franchi
0aa61b9fa8 Reduce how fast we watch for other apps, reduce timer wakeups a bit 2012-01-08 18:32:28 -05:00
Leo Franchi
8483e38f58 style 2012-01-08 18:32:10 -05:00
Leo Franchi
a78ef004f0 Add migration from pre-accounts to accounts, and fix twitter in various places 2012-01-07 12:49:37 -05:00
Leo Franchi
811b6842c5 Merge branch 'master' into accounts
Conflicts:
	src/accounts/twitter/CMakeLists.txt
	src/accounts/zeroconf/CMakeLists.txt
	src/sip/jabber/CMakeLists.txt
	src/sip/jabber/googlewrapper/CMakeLists.txt
2012-01-06 17:32:14 -05:00
Leo Franchi
d8a8575b55 Merge branch 'master' into accounts 2011-12-31 18:02:08 -06:00
Leo Franchi
801d7e5d89 fix crash on closing account config dialog 2011-12-31 18:00:19 -06:00
Leo Franchi
aaf147a39a make twitter compile 2011-12-23 11:13:30 -06:00
Leo Franchi
2d66daec41 initial twitter fix 2011-12-22 12:34:09 -05:00
Leo Franchi
f74165424f Port zeroconf plugin 2011-12-18 13:31:36 -05:00
Leo Franchi
2e45bf5e26 Merge remote-tracking branch 'origin/master' into accounts
Conflicts:
	src/accounts/xmpp/sip/xmppsip.cpp
	src/accounts/xmpp/sip/xmppsip.h
	src/libtomahawk/sip/SipHandler.cpp
	src/libtomahawk/sip/SipPlugin.cpp
	src/libtomahawk/sip/SipPlugin.h
	src/settingsdialog.cpp
	src/sip/CMakeLists.txt
	src/sip/jabber/googlewrapper/googlewrapper.cpp
	src/sip/twitter/twitter.cpp
	src/sip/xmpp/CMakeLists.txt
	src/tomahawkwindow.cpp
2011-12-16 18:45:18 -05:00
Leo Franchi
7783f48bae show account name in delegate properly 2011-12-16 18:11:15 -05:00
Leo Franchi
3607d364e7 port google wrapper over 2011-12-16 17:31:54 -05:00
Leo Franchi
aefec1eaac missing bits and pieces of accounts and auto-connect
port settings dialog to new accounts
fix adding and removing of accounts
2011-12-16 16:20:26 -05:00
Leo Franchi
00adb66cf0 ready for settings dialog work 2011-12-11 22:57:14 -05:00
Leo Franchi
b6911525a4 separate more stuff into siphandler/accountmanager 2011-12-11 22:41:59 -05:00
Leo Franchi
328d055ee1 some work 2011-11-28 13:17:27 -05:00
Leo Franchi
cef9c620dc Revert last two commits, were not meant to be pushed 2011-11-18 21:17:24 -05:00
Leo Franchi
eedf940e5f Bit more work 2011-11-18 16:58:56 -05:00
Leo Franchi
e3785e50f2 Some work on accounts 2011-11-18 16:56:48 -05:00
Jeff Mitchell
aae400bea9 Move sip into accounts, and redo the exports so that it links on boxes
with --as-needed by default (and presumably Windows too)
2011-11-14 17:39:13 -05:00
Jeff Mitchell
01aa3ee9a5 Rename sip libraries 2011-11-14 16:10:31 -05:00
Jeff Mitchell
ccb6d82e88 Merge branch 'master' into accounts
Conflicts:
	src/libtomahawk/CMakeLists.txt
	src/libtomahawk/sip/SipPlugin.h
2011-11-14 15:41:40 -05:00
Jeff Mitchell
bfcf4d3bdb More cleanup work. Also, move twitter authentication to the account, so it's centralized 2011-11-06 13:18:19 -05:00
Jeff Mitchell
eaab5df5be Merge branch 'master' into accounts 2011-11-06 12:37:40 -05:00
Jeff Mitchell
ccde46447e Put canSelfAuthenticate in the right place 2011-11-05 20:17:18 -04:00
Jeff Mitchell
8b862774c9 Protect-ize account members and some methods 2011-11-05 19:32:57 -04:00
Jeff Mitchell
d50e41f4d2 XMPP via Accounts compiles. NFC if it works, but this is a big step...
(Also, GoogleWrapper not ported yet)
2011-11-05 18:56:55 -04:00
Jeff Mitchell
1736f4caaa Rename tomahawksipmessage to tomahawkxmppmessage -- after all it's quite xmpp specific 2011-11-05 15:51:31 -04:00
Jeff Mitchell
9db0b5ed40 Twitter actually saves auth and connects 2011-11-05 13:36:58 -04:00
Jeff Mitchell
13cfda6e1e Account properly saves itself now and can reload a saved account 2011-11-05 12:22:57 -04:00
Jeff Mitchell
8e2721236f Merge branch 'master' into accounts 2011-11-05 10:34:44 -04:00
Jeff Mitchell
c906bd4e8f Merge branch 'master' into accounts 2011-11-05 10:13:03 -04:00
Jeff Mitchell
988554934b Merge branch 'master' into accounts 2011-11-05 08:32:32 -04:00
Jeff Mitchell
709a25ce97 More compilation fixes, though settings dialog needs serious reworking. Can't figure out why it isn't linking atm 2011-10-22 14:45:40 -04:00
Jeff Mitchell
fb6d9967dc Merge branch 'master' into accounts 2011-10-22 14:07:57 -04:00
Jeff Mitchell
8f24acd008 More account updates 2011-10-22 13:59:05 -04:00
Jeff Mitchell
f548d36586 Further work towards compilation 2011-10-22 13:26:00 -04:00
Jeff Mitchell
c3064d8249 More twitter changeover to accounts work, mostly on sip -- does not
compile, does not work yet
2011-10-04 19:34:44 -04:00
Jeff Mitchell
60aec5ac0f Merge branch 'master' into accounts
Conflicts:
	src/libtomahawk/CMakeLists.txt
	src/sip/zeroconf/zeroconf.cpp
2011-10-04 18:06:22 -04:00
Jeff Mitchell
abd7edab36 twitter account showing a config dialog 2011-09-24 18:03:21 -04:00
Jeff Mitchell
88350b6a6c More account work; most of the pure-account side of a twitter account, but not yet tested 2011-09-24 17:38:24 -04:00
Jeff Mitchell
c7f6144bfe First commit towards new accounts system. Shouldn't work, but compiles. 2011-09-24 13:29:43 -04:00
953 changed files with 87834 additions and 45256 deletions

9
.tx/config Normal file
View File

@@ -0,0 +1,9 @@
[main]
host = https://www.transifex.net
[tomahawk.tomahawk-master]
file_filter = lang/tomahawk_<lang>.ts
source_file = lang/tomahawk_en.ts
source_lang = en
type = QT

View File

@@ -1,10 +1,7 @@
PROJECT( tomahawk )
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
CMAKE_MINIMUM_REQUIRED( VERSION 2.8.6 )
SET( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
IF( ${CMAKE_VERSION} VERSION_GREATER 2.8.3 )
CMAKE_POLICY(SET CMP0017 NEW)
ENDIF( ${CMAKE_VERSION} VERSION_GREATER 2.8.3 )
CMAKE_POLICY(SET CMP0017 NEW)
###
### Tomahawk application info
@@ -15,8 +12,8 @@ SET( TOMAHAWK_APPLICATION_NAME "Tomahawk" )
SET( TOMAHAWK_DESCRIPTION_SUMMARY "The social media player" )
SET( TOMAHAWK_VERSION_MAJOR 0 )
SET( TOMAHAWK_VERSION_MINOR 4 )
SET( TOMAHAWK_VERSION_PATCH 1 )
SET( TOMAHAWK_VERSION_MINOR 5 )
SET( TOMAHAWK_VERSION_PATCH 0 )
#SET( TOMAHAWK_VERSION_RC 0 )
@@ -26,8 +23,22 @@ add_definitions( "-fvisibility=hidden" )
# build options
option(BUILD_GUI "Build Tomahawk with GUI" ON)
option(BUILD_RELEASE "Generate TOMAHAWK_VERSION without GIT info" OFF)
option(WITH_BREAKPAD "Build with breakpad integration" ON)
option(WITH_CRASHREPORTER "Build with CrashReporter" ON)
option(WITH_BINARY_ATTICA "Enable support for downloading binary resolvers automatically" ON)
option(LEGACY_KDE_INTEGRATION "Install tomahawk.protocol file, deprecated since 4.6.0" OFF)
IF( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" )
message(STATUS "Build of breakpad library disabled on this platform.")
SET(WITH_BREAKPAD OFF)
SET(WITH_CRASHREPORTER OFF)
ENDIF()
# add definitions based on build options
IF(WITH_BREAKPAD)
message(STATUS "Build with support for breakpad.")
ENDIF()
# generate version string
# base string used in release and unstable builds
@@ -40,7 +51,7 @@ ENDIF()
IF( NOT BUILD_RELEASE )
INCLUDE( CMakeDateStamp )
SET( TOMAHAWK_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" )
IF( ${TOMAHAWK_VERSION_DATE} GREATER 0)
IF( TOMAHAWK_VERSION_DATE GREATER 0)
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}.${TOMAHAWK_VERSION_DATE} )
ENDIF()
@@ -58,7 +69,7 @@ SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
# make predefined install dirs available everywhere
INCLUDE(GNUInstallDirs)
INCLUDE( GNUInstallDirs )
# installer creation
INCLUDE( TomahawkCPack.cmake )
@@ -90,8 +101,8 @@ if(PHONON_FOUND)
message(STATUS "Phonon found; ensure that phonon-vlc is at least 0.4")
endif()
macro_optional_find_package(LibEchonest 1.1.10)
macro_log_feature(LIBECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 1.1.10 is needed for dynamic playlists and the infosystem")
macro_optional_find_package(LibEchonest 1.2.1)
macro_log_feature(LIBECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 1.2.1 is needed for dynamic playlists and the infosystem")
macro_optional_find_package(CLucene 0.9.23)
macro_log_feature(CLucene_FOUND "CLucene" "The open-source, C++ search engine" "http://clucene.sf.net" TRUE "" "CLucene is used for indexing the collection")
@@ -110,36 +121,20 @@ macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++
macro_optional_find_package(QCA2)
macro_log_feature(QCA2_FOUND "QCA2" "Provides encryption and signing functions required for Grooveshark resolver" "http://delta.affinix.com/qca/" FALSE "" "")
macro_optional_find_package(LibAttica)
macro_log_feature(LIBATTICA_FOUND "libattica" "Provides support for automatic fetching and managing of resolvers from the tomahawk website" "https://projects.kde.org/projects/kdesupport/attica" FALSE "" "")
macro_optional_find_package(LibAttica 0.4.0)
macro_log_feature(LIBATTICA_FOUND "libattica" "Provides support for automatic fetching and managing of resolvers from the tomahawk website" "https://projects.kde.org/projects/kdesupport/attica" TRUE "" "")
macro_optional_find_package(QuaZip)
macro_log_feature(QuaZip_FOUND "QuaZip" "Provides support for extracting downloaded resolvers automatically." "http://quazip.sourceforge.net/" FALSE "" "")
macro_log_feature(QuaZip_FOUND "QuaZip" "Provides support for extracting downloaded resolvers automatically." "http://quazip.sourceforge.net/" TRUE "" "")
macro_optional_find_package(Jreen)
macro_log_feature(LIBJREEN_FOUND "Jreen" "Qt XMPP Library" "https://github.com/euroelessar/jreen" FALSE "" "Jreen is needed for the Jabber SIP plugin.\n")
macro_optional_find_package(Jreen 1.0.5)
macro_log_feature(JREEN_FOUND "Jreen" "Qt XMPP Library" "http://qutim.org/jreen / https://github.com/euroelessar/jreen" FALSE "" "Jreen is needed for the Jabber SIP plugin.\n")
macro_optional_find_package(QTweetLib)
macro_log_feature(QTWEETLIB_FOUND "QTweetLib" "Qt Twitter Library" "https://github.com/minimoog/QTweetLib" FALSE "" "QTweetLib is needed for the Twitter SIP plugin.\n")
IF( NOT QuaZip_FOUND )
add_subdirectory( ${CMAKE_SOURCE_DIR}/src/libtomahawk/thirdparty/quazip )
SET( QuaZip_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/libtomahawk/thirdparty/quazip )
SET( QuaZip_LIBRARY quazip )
SET( QuaZip_LIBRARIES ${QuaZip_LIBRARY} )
SET( QuaZip_FOUND true )
macro_log_feature(QuaZip_FOUND "QuaZip" "Provides support for extracting downloaded resolvers automatically. Building internal copy" "http://quazip.sourceforge.net/" FALSE "" "")
# copy headers to build/quazip so we can use proper includes inside the code
FILE( COPY ${CMAKE_SOURCE_DIR}/src/libtomahawk/thirdparty/quazip/quazip/ DESTINATION ${CMAKE_BINARY_DIR}/libtomahawk/thirdparty/quazip )
ENDIF()
# required
#While we distribute our own liblastfm2, don't need to look for it
#macro_optional_find_package(LibLastFm 0.3.3)
#macro_log_feature(LIBLASTFM_FOUND "LastFm" "Qt library for the Last.fm webservices" "https://github.com/mxcl/liblastfm" FALSE "" "liblastfm is needed for scrobbling tracks to Last.fm and fetching cover artwork")
set(LIBLASTFM_FOUND true)
macro_optional_find_package(LibLastFm 1.0.0)
macro_log_feature(LIBLASTFM_FOUND "liblastfm" "Qt library for the Last.fm webservices" "https://github.com/eartle/liblastfm" TRUE "" "liblastfm is needed for scrobbling tracks to Last.fm and fetching cover artwork")
#### submodules start
# automatically init submodules here, don't delete this code we may add submodules again
@@ -213,9 +208,3 @@ ADD_SUBDIRECTORY( src/libtomahawk )
SET( TOMAHAWK_LIBRARIES tomahawklib )
ADD_SUBDIRECTORY( src )
ADD_SUBDIRECTORY( admin )
IF( BUILD_GUI )
IF( NOT DISABLE_CRASHREPORTER )
ADD_SUBDIRECTORY( src/breakpad/CrashReporter )
ENDIF()
ENDIF()

View File

@@ -0,0 +1,99 @@
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
SET(DEFAULT_ARGS)
FOREACH(arg_name ${arg_names})
SET(${prefix}_${arg_name})
ENDFOREACH(arg_name)
FOREACH(option ${option_names})
SET(${prefix}_${option} FALSE)
ENDFOREACH(option)
SET(current_arg_name DEFAULT_ARGS)
SET(current_arg_list)
FOREACH(arg ${ARGN})
SET(larg_names ${arg_names})
LIST(FIND larg_names "${arg}" is_arg_name)
IF (is_arg_name GREATER -1)
SET(${prefix}_${current_arg_name} ${current_arg_list})
SET(current_arg_name ${arg})
SET(current_arg_list)
ELSE (is_arg_name GREATER -1)
SET(loption_names ${option_names})
LIST(FIND loption_names "${arg}" is_option)
IF (is_option GREATER -1)
SET(${prefix}_${arg} TRUE)
ELSE (is_option GREATER -1)
SET(current_arg_list ${current_arg_list} ${arg})
ENDIF (is_option GREATER -1)
ENDIF (is_arg_name GREATER -1)
ENDFOREACH(arg)
SET(${prefix}_${current_arg_name} ${current_arg_list})
ENDMACRO(PARSE_ARGUMENTS)
MACRO(CAR var)
SET(${var} ${ARGV1})
ENDMACRO(CAR)
MACRO(CDR var junk)
SET(${var} ${ARGN})
ENDMACRO(CDR)
macro(add_tomahawk_plugin)
parse_arguments(PLUGIN
"SOURCES;UI;LINK_LIBRARIES;TYPE;EXPORT_MACRO;COMPILE_DEFINITIONS"
"NO_INSTALL"
${ARGN}
)
car(PLUGIN_NAME ${PLUGIN_DEFAULT_ARGS})
# message("*** Arguments for ${PLUGIN_NAME}")
# message("Sources: ${PLUGIN_SOURCES}")
# message("Link libraries: ${PLUGIN_LINK_LIBRARIES}")
# message("UI: ${PLUGIN_UI}")
# message("TYPE: ${PLUGIN_TYPE}")
# message("EXPORT_MACRO: ${PLUGIN_EXPORT_MACRO}")
# create target name once for convenience
set(target "tomahawk_${PLUGIN_TYPE}_${PLUGIN_NAME}")
# qt stuff
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(PLUGIN_UI)
qt4_wrap_ui(PLUGIN_UI_SOURCES ${PLUGIN_UI})
list(APPEND PLUGIN_SOURCES ${PLUGIN_UI_SOURCES})
endif()
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/resources.qrc")
qt4_add_resources(PLUGIN_RC_SOURCES "resources.qrc")
list(APPEND PLUGIN_SOURCES ${PLUGIN_RC_SOURCES})
unset(PLUGIN_RC_SOURCES)
endif()
# add target
add_library(${target} MODULE ${PLUGIN_SOURCES})
# definitions - can this be moved into set_target_properties below?
add_definitions(${QT_DEFINITIONS})
set_target_properties(${target} PROPERTIES AUTOMOC TRUE COMPILE_DEFINITIONS ${PLUGIN_EXPORT_MACRO})
if(PLUGIN_COMPILE_DEFINITIONS)
# Dear CMake, i hate you! Sincerely, domme
# At least in CMake 2.8.8, you CANNOT set more than one COMPILE_DEFINITIONS value
# only takes the first one if called multiple times or bails out with wrong number of arguments
# when passing in a list, thus i redefine the export macro here in hope it won't mess up other targets
add_definitions( "-D${PLUGIN_EXPORT_MACRO}" )
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${PLUGIN_COMPILE_DEFINITIONS})
endif()
# add link targets
target_link_libraries(${target} tomahawklib)
if(PLUGIN_LINK_LIBRARIES)
target_link_libraries(${target} ${PLUGIN_LINK_LIBRARIES})
endif()
# make installation optional, maybe useful for dummy plugins one day
if(NOT PLUGIN_NO_INSTALL)
include(GNUInstallDirs)
install(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endmacro()

View File

@@ -1,23 +0,0 @@
# - Try to find GLOOX
# Find GLOOX headers, libraries and the answer to all questions.
#
# GLOOX_FOUND True if gloox got found
# GLOOX_INCLUDE_DIR Location of gloox headers
# GLOOX_LIBRARIES List of libaries to use gloox
#
# Copyright (c) 2009 Nigmatullin Ruslan <euroelessar@gmail.com>
#
# Redistribution and use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
FIND_PATH( GLOOX_INCLUDE_DIR "gloox/gloox.h" )
FIND_LIBRARY( GLOOX_LIBRARIES gloox )
if( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
message( STATUS "Found gloox: ${GLOOX_LIBRARIES}" )
set( GLOOX_FOUND 1 )
else( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )
message( STATUS "Could NOT find gloox" )
endif( GLOOX_LIBRARIES AND GLOOX_INCLUDE_DIR )

View File

@@ -5,40 +5,31 @@
# LIBJREEN_LIBRARY, the path to libjreen
# LIBJREEN_FOUND, whether libjreen was found
FIND_PACKAGE(PkgConfig QUIET)
PKG_CHECK_MODULES(PC_JREEN QUIET libjreen)
find_path(LIBJREEN_INCLUDE_DIR NAMES jreen/jreen.h
HINTS
~/usr/include
/opt/local/include
/usr/include
/usr/local/include
/opt/kde4/include
${CMAKE_INSTALL_PREFIX}/include
${KDE4_INCLUDE_DIR}
FIND_PATH(JREEN_INCLUDE_DIR NAMES jreen/jreen.h
HINTS
${PC_JREEN_INCLUDEDIR}
${PC_JREEN_INCLUDE_DIRS}
${CMAKE_INSTALL_INCLUDEDIR}
${KDE4_INCLUDE_DIR}
)
find_library( LIBJREEN_LIBRARY NAMES jreen
PATHS
~/usr/lib
/opt/local/lib
/usr/lib
/usr/lib64
/usr/local/lib
/opt/kde4/lib
${CMAKE_INSTALL_PREFIX}/lib
${CMAKE_INSTALL_PREFIX}/lib64
${KDE4_LIB_DIR}
FIND_LIBRARY(JREEN_LIBRARIES NAMES jreen
HINTS
${PC_JREEN_LIBDIR}
${PC_JREEN_LIBRARY_DIRS}
${CMAKE_INSTALL_LIBDIR}
${KDE4_LIB_DIR}
)
IF(JREEN_LIBRARIES AND JREEN_INCLUDE_DIR AND NOT PC_JREEN_VERSION)
MESSAGE(WARNING "You don't have pkg-config and so the Jreen version check does not work!")
ENDIF()
if(LIBJREEN_INCLUDE_DIR AND LIBJREEN_LIBRARY)
set(LIBJREEN_FOUND TRUE)
message(STATUS "Found libjreen: ${LIBJREEN_INCLUDE_DIR}, ${LIBJREEN_LIBRARY}")
else(LIBJREEN_INCLUDE_DIR AND LIBJREEN_LIBRARY)
set(LIBJREEN_FOUND FALSE)
if (LIBJREEN_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find required package libjreen")
endif(LIBJREEN_FIND_REQUIRED)
endif(LIBJREEN_INCLUDE_DIR AND LIBJREEN_LIBRARY)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jreen
REQUIRED_VARS JREEN_LIBRARIES JREEN_INCLUDE_DIR)
mark_as_advanced(LIBJREEN_INCLUDE_DIR LIBJREEN_LIBRARY)
MARK_AS_ADVANCED(JREEN_INCLUDE_DIR JREEN_LIBRARIES)

View File

@@ -1,42 +1,34 @@
# - Find LibLastFM
# Find the liblastfm includes and the liblastfm libraries
# This module defines
# LIBLASTFM_INCLUDE_DIR, root lastfm include dir
# LIBLASTFM_LIBRARY, the path to liblastfm
# LIBLASTFM_FOUND, whether liblastfm was found
# - Try to find LibLastFm
#
# LIBLASTFM_FOUND - system has liblastfm
# LIBLASTFM_INCLUDE_DIRS - the liblastfm include directories
# LIBLASTFM_LIBRARIES - link these to use liblastfm
#
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
#
# Dependencies
if(NOT QT4_FOUND)
find_package(Qt4 REQUIRED)
endif()
find_path(LIBLASTFM_INCLUDE_DIR NAMES Audioscrobbler
HINTS
~/usr/include
/opt/local/include
/usr/local/include
/usr/include
/opt/kde4/include
${KDE4_INCLUDE_DIR}
PATH_SUFFIXES lastfm
# Include dir
find_path(LIBLASTFM_INCLUDE_DIR
# Track.h doesn't exist in liblastfm-0.3.1, was called Track back then
NAMES lastfm/Track.h
PATHS ${KDE4_INCLUDE_DIR}
)
find_library( LIBLASTFM_LIBRARY NAMES lastfm
PATHS
~/usr/lib
/opt/local/lib
/usr/local/lib
/usr/lib
/usr/lib64
/opt/kde4/lib
${KDE4_LIB_DIR}
# Finally the library itself
find_library(LIBLASTFM_LIBRARY
NAMES lastfm
PATHS ${KDE4_LIB_DIR}
)
set(LIBLASTFM_LIBRARIES ${LIBLASTFM_LIBRARY})
set(LIBLASTFM_INCLUDE_DIRS ${LIBLASTFM_INCLUDE_DIR})
if(LIBLASTFM_INCLUDE_DIR AND LIBLASTFM_LIBRARY)
set(LIBLASTFM_FOUND TRUE)
message(STATUS "Found liblastfm: ${LIBLASTFM_INCLUDE_DIR}, ${LIBLASTFM_LIBRARY}")
else(LIBLASTFM_INCLUDE_DIR AND LIBLASTFM_LIBRARY)
set(LIBLASTFM_FOUND FALSE)
if (LIBLASTFM_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find required package LibLastFm")
endif(LIBLASTFM_FIND_REQUIRED)
endif(LIBLASTFM_INCLUDE_DIR AND LIBLASTFM_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibLastFm DEFAULT_MSG LIBLASTFM_LIBRARIES LIBLASTFM_INCLUDE_DIRS)
mark_as_advanced(LIBLASTFM_INCLUDE_DIR LIBLASTFM_LIBRARY)
mark_as_advanced(LIBLASTFM_LIBRARIES LIBLASTFM_INCLUDE_DIRS)

View File

@@ -38,7 +38,9 @@ else (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES)
find_path(QCA2_INCLUDE_DIR qca.h
HINTS ${PC_QCA2_INCLUDEDIR} ${PC_QCA2_INCLUDE_DIRS}
PATH_SUFFIXES QtCrypto)
PATH_SUFFIXES QtCrypto
PATHS /usr/local/lib/qca.framework/Headers/
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QCA2 DEFAULT_MSG QCA2_LIBRARIES QCA2_INCLUDE_DIR)

View File

@@ -278,9 +278,9 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${INSTALL_PATH}\bin\libqxtweb-standalone.dll"
File "${INSTALL_PATH}\bin\libtomahawk_portfwd.dll"
File "${INSTALL_PATH}\bin\libtomahawk_lastfm2.dll"
File "${INSTALL_PATH}\bin\libtomahawklib.dll"
File "${INSTALL_PATH}\lib\libtomahawk_sip*.dll"
; plugins
File "${INSTALL_PATH}\lib\libtomahawk_*_*.dll"
!endif
!ifndef INSTALL_PATH
;Main executable.
@@ -292,8 +292,8 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${BUILD_PATH}\libtomahawklib.dll"
File "${BUILD_PATH}\libqxtweb-standalone.dll"
File "${BUILD_PATH}\libtomahawk_portfwd.dll"
File "${BUILD_PATH}\libtomahawk_lastfm2.dll"
File "${BUILD_PATH}\libtomahawk_sip*.dll"
; plugins
File "${BUILD_PATH}\libtomahawk_*_*.dll"
!endif
;License & release notes.
@@ -349,6 +349,7 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${MING_BIN}\zlib1.dll"
File "${MING_BIN}\libechonest.dll"
File "${MING_BIN}\liblastfm.dll"
File "${MING_BIN}\libQTweetLib.dll"
File "${MING_BIN}\libquazip.dll"

View File

@@ -1,3 +1,37 @@
Version 0.5.0:
* SOCKS5 proxy support improvements for resolvers and more.
* Initial Access Control support, allowing users to define who is able to
access and stream from their collection.
* Priortize resolution of a track on double-click.
* Spotify Resolver can now be easily installed on-demand from the settings.
* You can now sync selected playlists (and updates) with Spotify.
* Support .aiff (AIFF mimetype) files.
* Cleaned up Diagnostics window.
* You can tell Tomahawk to stop playback after a certain track finished.
* Double-clicking a playlist name (in the sidebar) will start the playlist.
* You can now import your entire Last.fm playback history into Tomahawk.
* Fixed sorting of related artists.
* Support for multimedia keys (Play, Pause, Next etc.) on Windows & Linux.
* When listening privately scrobbling to Last.fm and Adium is now disabled.
* Added a toolbar with page back / forward buttons and the global search.
* New grid-like view with direct playback controls.
* You can now browse new releases (by genre).
* Added social sharing widget, which allows you to tweet about a song.
* Added a track page showing a song's similar tracks and statistics.
* Separate Loved Tracks and Recently Played views per source.
* Combine an artist's albums into a single aggregated view.
* Added translations for Arabic, French, Bulgarian, Spanish and more.
* Fixed XSPF auto-updating.
* New Tomahawk logo and icon.
Version 0.4.2:
* Fix ZeroConf protocol showing IP addresses instead of host names.
* Updated translations for various languages.
* Resuming playback restores correct volume settings.
* Reduced CPU usage during playback.
* Fixed not starting up due to case sensitivity issue on OS X.
* Fixed volume issue (too quiet) on Windows.
Version 0.4.1:
* Fixed various crashes.
* Fixed issues with auto-updating XSPF playlists.
@@ -13,15 +47,13 @@ Version 0.4.0:
* Fixed icons not appearing in resolvers list.
* Fixed various UI glitches and stray error messages in stations.
* Fixed bug where album page would resolve bottom-to-top.
* Fixed bug where Footnotes would not update when changing selected album in Album View.
* Fixed bug where Footnotes would not update when changing selected album.
* Fixed dragging albums and artists from charts, album, and artist views.
* Fixed bug where filter text would be one step behind filter value.
* Fixed bug where resolvers would enable themselves after auto-updating.
* Fixed occasional crash when dropping tracks onto New Station item.
* Added jump-to-current-track support for search results page.
* Fixed out of sync Show/Hide menu items on OS X when hidden with cmd-h.
* Fixed non-resolving tracks when dragging from album view.
* Fixed /Volumes directory not showing up on OS X.
* Fixed fetching album covers for albums with special characters.
* Show errors and continue gracefully when resolved audio is not available.
* Fixed various crashes on exit.
@@ -35,7 +67,6 @@ Version 0.4.0:
* Added SoundCloudWall.com charts.
* Added ability to "lock on" to a user when listening along, to skip along.
* Fixed bug where loved tracks would be refreshed much too often.
* Fixed startup crash on OS X.
* Fixed some font size issues.
* Sped up Tomahawk startup by moving chart loading into a separate thread.
* Added support for parsing Grooveshark and Tinysong tracks and playlists.
@@ -43,6 +74,9 @@ Version 0.4.0:
* Added artist and album results to global searches.
* Fixed style and contrast issues when using GTK styles.
* Fixed paths to artwork when using MPRIS2 interface.
* Fixed out of sync Show/Hide menu items on OS X when hidden with cmd-h.
* Fixed /Volumes directory not showing up on OS X.
* Fixed startup crash on OS X.
Version 0.3.3:
* Automatically load Super Collection tracks when no official release

16
README
View File

@@ -13,11 +13,11 @@ Compiling Tomahawk
Detailed building instructions for Ubuntu
-----------------------------------------
See: http://wiki.tomahawk-player.org/mediawiki/index.php/Building_Ubuntu_Binary_on_Maverick_(10.10)
See: http://wiki.tomahawk-player.org/mediawiki/index.php/Building_Ubuntu_Binary_on_Precise_(12.04)
Detailed building instructions for OS X
---------------------------------------
See: http://wiki.tomahawk-player.org/mediawiki/index.php/Building_OS_X_Application_Bundle_on_Snow_Leopard_(10.6)
See: http://wiki.tomahawk-player.org/mediawiki/index.php/Building_OS_X_Application_Bundle_on_Snow_Leopard_(10.6)_and_Lion_(10.7)
Doxygen Documentation
---------------------
@@ -27,25 +27,25 @@ Doxygen Documentation
Dependencies
------------
CMake 2.8.0 - http://www.cmake.org/
CMake 2.8.6 - http://www.cmake.org/
Qt 4.7.0 - http://qt.nokia.com/
QJson 0.7.1 - http://qjson.sourceforge.net/
SQLite 3.6.22 - http://www.sqlite.org/
TagLib 1.6.2 - http://developer.kde.org/~wheeler/taglib.html
Boost 1.3 - http://www.boost.org/
CLucene 0.9.23 (0.9.21 will fail) - http://clucene.sourceforge.net/download.shtml
libechonest 1.2.0 - http://projects.kde.org/projects/playground/libs/libechonest/
libechonest 1.2.1 - http://projects.kde.org/projects/playground/libs/libechonest/
Attica 0.4.0 - ftp://ftp.kde.org/pub/kde/stable/attica/
QuaZip 0.4.3 - http://quazip.sourceforge.net/
The following dependencies are optional, but recommended:
Attica 0.2.0 - ftp://ftp.kde.org/pub/kde/stable/attica/
QuaZip 0.4.3 - http://quazip.sourceforge.net/
Jreen 1.0.3 - https://github.com/euroelessar/jreen
Jreen 1.0.5 - http://qutim.org/jreen / https://github.com/euroelessar/jreen
QTweetLib 0.5.0 - https://github.com/minimoog/QTweetLib
liblastfm 1.0.1 - http://github.com/eartle/liblastfm/
Third party libraries that we ship with our source:
MiniUPnP 1.6 - http://miniupnp.free.fr/
liblastfm 0.4.0 - http://github.com/jonocole/liblastfm/
Enjoy!

View File

@@ -1,6 +1,6 @@
#!/usr/bin/python
# This file is part of Clementine.
# This file is part of Tomahawk.
# It was inspired in large part by the macdeploy script in Clementine.
#
# Clementine is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
import os
import re
import subprocess
import commands
import sys
FRAMEWORK_SEARCH_PATH=[
@@ -27,161 +28,163 @@ FRAMEWORK_SEARCH_PATH=[
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Cellar/gettext/0.18.1.1/lib', '.']
LIBSPOTIFY_VERSION = commands.getoutput("brew ls -version libspotify | tr -s \" \" \"\\\\012\" | tail -n 1").strip()
LIBSPOTIFY_PATH = "/usr/local/lib/libspotify.%s.dylib" % LIBSPOTIFY_VERSION
VLC_PLUGINS=[
'access/libaccess_attachment_plugin.dylib',
#'access/libaccess_avio_plugin.dylib',
'access/libaccess_fake_plugin.dylib',
'access/libaccess_ftp_plugin.dylib',
'access/libaccess_http_plugin.dylib',
'access/libaccess_imem_plugin.dylib',
'access/libaccess_mmap_plugin.dylib',
'access/libaccess_mms_plugin.dylib',
'access/libaccess_realrtsp_plugin.dylib',
'access/libaccess_tcp_plugin.dylib',
'access/libaccess_udp_plugin.dylib',
'access/libcdda_plugin.dylib',
'access/libfilesystem_plugin.dylib',
'access/libqtcapture_plugin.dylib',
'access/librtp_plugin.dylib',
'access/libzip_plugin.dylib',
'access_output/libaccess_output_dummy_plugin.dylib',
'access_output/libaccess_output_file_plugin.dylib',
'access_output/libaccess_output_http_plugin.dylib',
'access_output/libaccess_output_shout_plugin.dylib',
'access_output/libaccess_output_udp_plugin.dylib',
'audio_filter/liba52tofloat32_plugin.dylib',
'audio_filter/liba52tospdif_plugin.dylib',
'audio_filter/libaudio_format_plugin.dylib',
'audio_filter/libaudiobargraph_a_plugin.dylib',
'audio_filter/libchorus_flanger_plugin.dylib',
'audio_filter/libconverter_fixed_plugin.dylib',
'audio_filter/libdolby_surround_decoder_plugin.dylib',
'audio_filter/libdtstofloat32_plugin.dylib',
'audio_filter/libdtstospdif_plugin.dylib',
'audio_filter/libequalizer_plugin.dylib',
'audio_filter/libheadphone_channel_mixer_plugin.dylib',
'audio_filter/libmono_plugin.dylib',
'audio_filter/libmpgatofixed32_plugin.dylib',
'audio_filter/libnormvol_plugin.dylib',
'audio_filter/libparam_eq_plugin.dylib',
'audio_filter/libscaletempo_plugin.dylib',
'audio_filter/libsimple_channel_mixer_plugin.dylib',
'audio_filter/libspatializer_plugin.dylib',
'audio_filter/libtrivial_channel_mixer_plugin.dylib',
'audio_filter/libugly_resampler_plugin.dylib',
'audio_mixer/libfloat32_mixer_plugin.dylib',
'audio_mixer/libspdif_mixer_plugin.dylib',
'audio_mixer/libtrivial_mixer_plugin.dylib',
'audio_output/libaout_file_plugin.dylib',
'audio_output/libauhal_plugin.dylib',
'codec/liba52_plugin.dylib',
'codec/libadpcm_plugin.dylib',
'codec/libaes3_plugin.dylib',
'codec/libaraw_plugin.dylib',
'codec/libavcodec_plugin.dylib',
'codec/libcc_plugin.dylib',
'codec/libcdg_plugin.dylib',
'codec/libdts_plugin.dylib',
'codec/libfaad_plugin.dylib',
'codec/libfake_plugin.dylib',
'codec/libflac_plugin.dylib',
'codec/libfluidsynth_plugin.dylib',
'codec/libinvmem_plugin.dylib',
'codec/liblpcm_plugin.dylib',
'codec/libmpeg_audio_plugin.dylib',
'codec/libpng_plugin.dylib',
'codec/librawvideo_plugin.dylib',
'codec/libspeex_plugin.dylib',
'codec/libspudec_plugin.dylib',
'codec/libtheora_plugin.dylib',
'codec/libtwolame_plugin.dylib',
'codec/libvorbis_plugin.dylib',
'control/libgestures_plugin.dylib',
'control/libhotkeys_plugin.dylib',
'control/libmotion_plugin.dylib',
'control/libnetsync_plugin.dylib',
'control/libsignals_plugin.dylib',
'demux/libaiff_plugin.dylib',
'demux/libasf_plugin.dylib',
'demux/libau_plugin.dylib',
#'demux/libavformat_plugin.dylib',
'demux/libavi_plugin.dylib',
'demux/libdemux_cdg_plugin.dylib',
'demux/libdemuxdump_plugin.dylib',
'demux/libdirac_plugin.dylib',
'demux/libes_plugin.dylib',
'demux/libflacsys_plugin.dylib',
'demux/liblive555_plugin.dylib',
'demux/libmkv_plugin.dylib',
'demux/libmod_plugin.dylib',
'demux/libmp4_plugin.dylib',
'demux/libmpc_plugin.dylib',
'demux/libmpgv_plugin.dylib',
'demux/libnsc_plugin.dylib',
'demux/libnsv_plugin.dylib',
'demux/libnuv_plugin.dylib',
'demux/libogg_plugin.dylib',
'demux/libplaylist_plugin.dylib',
'demux/libps_plugin.dylib',
'demux/libpva_plugin.dylib',
'demux/librawaud_plugin.dylib',
'demux/librawdv_plugin.dylib',
'demux/librawvid_plugin.dylib',
'demux/libreal_plugin.dylib',
'demux/libsmf_plugin.dylib',
'demux/libts_plugin.dylib',
'demux/libtta_plugin.dylib',
'demux/libty_plugin.dylib',
'demux/libvc1_plugin.dylib',
'demux/libvoc_plugin.dylib',
'demux/libwav_plugin.dylib',
'demux/libxa_plugin.dylib',
'meta_engine/libfolder_plugin.dylib',
'meta_engine/libtaglib_plugin.dylib',
'misc/libaudioscrobbler_plugin.dylib',
'misc/libdummy_plugin.dylib',
'misc/libexport_plugin.dylib',
'misc/libfreetype_plugin.dylib',
'misc/libgnutls_plugin.dylib',
'misc/liblogger_plugin.dylib',
'misc/liblua_plugin.dylib',
'misc/libosd_parser_plugin.dylib',
'misc/libquartztext_plugin.dylib',
'misc/libstats_plugin.dylib',
'misc/libvod_rtsp_plugin.dylib',
'misc/libxml_plugin.dylib',
'misc/libxtag_plugin.dylib',
'mmx/libi420_rgb_mmx_plugin.dylib',
'mmx/libi420_yuy2_mmx_plugin.dylib',
'mmx/libi422_yuy2_mmx_plugin.dylib',
'mmx/libmemcpymmx_plugin.dylib',
'mmxext/libmemcpymmxext_plugin.dylib',
'mux/libmux_asf_plugin.dylib',
'mux/libmux_avi_plugin.dylib',
'mux/libmux_dummy_plugin.dylib',
'mux/libmux_mp4_plugin.dylib',
'mux/libmux_mpjpeg_plugin.dylib',
'mux/libmux_ogg_plugin.dylib',
'mux/libmux_ps_plugin.dylib',
'mux/libmux_ts_plugin.dylib',
'mux/libmux_wav_plugin.dylib',
'packetizer/libpacketizer_copy_plugin.dylib',
'packetizer/libpacketizer_dirac_plugin.dylib',
'packetizer/libpacketizer_flac_plugin.dylib',
'packetizer/libpacketizer_h264_plugin.dylib',
'packetizer/libpacketizer_mlp_plugin.dylib',
'packetizer/libpacketizer_mpeg4audio_plugin.dylib',
'packetizer/libpacketizer_mpeg4video_plugin.dylib',
'packetizer/libpacketizer_mpegvideo_plugin.dylib',
'packetizer/libpacketizer_vc1_plugin.dylib',
'sse2/libi420_rgb_sse2_plugin.dylib',
'sse2/libi420_yuy2_sse2_plugin.dylib',
'sse2/libi422_yuy2_sse2_plugin.dylib',
'stream_filter/libdecomp_plugin.dylib',
'stream_filter/libstream_filter_rar_plugin.dylib',
'stream_filter/libstream_filter_record_plugin.dylib',
'visualization/libvisual_plugin.dylib',
'libaccess_attachment_plugin.dylib',
#'libaccess_avio_plugin.dylib',
#'libaccess_fake_plugin.dylib',
'libaccess_ftp_plugin.dylib',
'libaccess_http_plugin.dylib',
'libaccess_imem_plugin.dylib',
#'libaccess_mmap_plugin.dylib',
'libaccess_mms_plugin.dylib',
'libaccess_realrtsp_plugin.dylib',
'libaccess_tcp_plugin.dylib',
'libaccess_udp_plugin.dylib',
'libcdda_plugin.dylib',
'libfilesystem_plugin.dylib',
'libqtcapture_plugin.dylib',
'librtp_plugin.dylib',
'libzip_plugin.dylib',
'libaccess_output_dummy_plugin.dylib',
'libaccess_output_file_plugin.dylib',
'libaccess_output_http_plugin.dylib',
'libaccess_output_shout_plugin.dylib',
'libaccess_output_udp_plugin.dylib',
'liba52tofloat32_plugin.dylib',
'liba52tospdif_plugin.dylib',
'libaudio_format_plugin.dylib',
'libaudiobargraph_a_plugin.dylib',
'libchorus_flanger_plugin.dylib',
'libconverter_fixed_plugin.dylib',
'libdolby_surround_decoder_plugin.dylib',
'libdtstofloat32_plugin.dylib',
'libdtstospdif_plugin.dylib',
'libequalizer_plugin.dylib',
'libheadphone_channel_mixer_plugin.dylib',
'libmono_plugin.dylib',
'libmpgatofixed32_plugin.dylib',
'libnormvol_plugin.dylib',
'libparam_eq_plugin.dylib',
'libscaletempo_plugin.dylib',
'libsimple_channel_mixer_plugin.dylib',
'libspatializer_plugin.dylib',
'libtrivial_channel_mixer_plugin.dylib',
'libugly_resampler_plugin.dylib',
'libfloat32_mixer_plugin.dylib',
#'libspdif_mixer_plugin.dylib',
#'libtrivial_mixer_plugin.dylib',
'libaout_file_plugin.dylib',
'libauhal_plugin.dylib',
'liba52_plugin.dylib',
'libadpcm_plugin.dylib',
'libaes3_plugin.dylib',
'libaraw_plugin.dylib',
'libavcodec_plugin.dylib',
'libcc_plugin.dylib',
'libcdg_plugin.dylib',
'libdts_plugin.dylib',
'libfaad_plugin.dylib',
#'libfake_plugin.dylib',
'libflac_plugin.dylib',
'libfluidsynth_plugin.dylib',
#'libinvmem_plugin.dylib',
'liblpcm_plugin.dylib',
'libmpeg_audio_plugin.dylib',
'libpng_plugin.dylib',
'librawvideo_plugin.dylib',
'libspeex_plugin.dylib',
'libspudec_plugin.dylib',
'libtheora_plugin.dylib',
'libtwolame_plugin.dylib',
'libvorbis_plugin.dylib',
'libgestures_plugin.dylib',
'libhotkeys_plugin.dylib',
'libmotion_plugin.dylib',
'libnetsync_plugin.dylib',
#'libsignals_plugin.dylib',
'libaiff_plugin.dylib',
'libasf_plugin.dylib',
'libau_plugin.dylib',
#'libavformat_plugin.dylib',
'libavi_plugin.dylib',
'libdemux_cdg_plugin.dylib',
'libdemuxdump_plugin.dylib',
'libdirac_plugin.dylib',
'libes_plugin.dylib',
'libflacsys_plugin.dylib',
'liblive555_plugin.dylib',
'libmkv_plugin.dylib',
'libmod_plugin.dylib',
'libmp4_plugin.dylib',
'libmpc_plugin.dylib',
'libmpgv_plugin.dylib',
'libnsc_plugin.dylib',
'libnsv_plugin.dylib',
'libnuv_plugin.dylib',
'libogg_plugin.dylib',
'libplaylist_plugin.dylib',
'libps_plugin.dylib',
'libpva_plugin.dylib',
'librawaud_plugin.dylib',
'librawdv_plugin.dylib',
'librawvid_plugin.dylib',
'libreal_plugin.dylib',
'libsmf_plugin.dylib',
'libts_plugin.dylib',
'libtta_plugin.dylib',
'libty_plugin.dylib',
'libvc1_plugin.dylib',
'libvoc_plugin.dylib',
'libwav_plugin.dylib',
'libxa_plugin.dylib',
'libfolder_plugin.dylib',
'libtaglib_plugin.dylib',
'libaudioscrobbler_plugin.dylib',
'libdummy_plugin.dylib',
'libexport_plugin.dylib',
'libfreetype_plugin.dylib',
'libgnutls_plugin.dylib',
'liblogger_plugin.dylib',
'liblua_plugin.dylib',
'libosd_parser_plugin.dylib',
'libquartztext_plugin.dylib',
'libstats_plugin.dylib',
'libvod_rtsp_plugin.dylib',
'libxml_plugin.dylib',
#'libxtag_plugin.dylib',
'libi420_rgb_mmx_plugin.dylib',
'libi420_yuy2_mmx_plugin.dylib',
'libi422_yuy2_mmx_plugin.dylib',
'libmemcpymmx_plugin.dylib',
'libmemcpymmxext_plugin.dylib',
'libmux_asf_plugin.dylib',
'libmux_avi_plugin.dylib',
'libmux_dummy_plugin.dylib',
'libmux_mp4_plugin.dylib',
'libmux_mpjpeg_plugin.dylib',
'libmux_ogg_plugin.dylib',
'libmux_ps_plugin.dylib',
'libmux_ts_plugin.dylib',
'libmux_wav_plugin.dylib',
'libpacketizer_copy_plugin.dylib',
'libpacketizer_dirac_plugin.dylib',
'libpacketizer_flac_plugin.dylib',
'libpacketizer_h264_plugin.dylib',
'libpacketizer_mlp_plugin.dylib',
'libpacketizer_mpeg4audio_plugin.dylib',
'libpacketizer_mpeg4video_plugin.dylib',
'libpacketizer_mpegvideo_plugin.dylib',
'libpacketizer_vc1_plugin.dylib',
'libi420_rgb_sse2_plugin.dylib',
'libi420_yuy2_sse2_plugin.dylib',
'libi422_yuy2_sse2_plugin.dylib',
'libdecomp_plugin.dylib',
'libstream_filter_rar_plugin.dylib',
'libstream_filter_record_plugin.dylib',
'libvisual_plugin.dylib',
]
VLC_SEARCH_PATH=[
@@ -199,15 +202,24 @@ QT_PLUGINS = [
]
TOMAHAWK_PLUGINS = [
'libtomahawk_sipjabber.dylib',
'libtomahawk_sipgoogle.dylib',
'libtomahawk_siptwitter.dylib',
'libtomahawk_sipzeroconf.dylib',
'libtomahawk_qtweetlib.dylib',
'libtomahawk_account_xmpp.so',
'libtomahawk_account_google.so',
'libtomahawk_account_twitter.so',
'libtomahawk_account_zeroconf.so',
'libtomahawk_infoplugin_adium.so',
'libtomahawk_infoplugin_charts.so',
'libtomahawk_infoplugin_discogs.so',
'libtomahawk_infoplugin_echonest.so',
'libtomahawk_infoplugin_hypem.so',
'libtomahawk_infoplugin_musicbrainz.so',
'libtomahawk_infoplugin_musixmatch.so',
'libtomahawk_infoplugin_newreleases.so',
'libtomahawk_infoplugin_rovi.so',
'libtomahawk_infoplugin_spotify.so',
]
QT_PLUGINS_SEARCH_PATH=[
'/usr/local/Cellar/qt/4.7.4/plugins',
'/usr/local/Cellar/qt/4.8.2/plugins',
]
@@ -250,7 +262,7 @@ frameworks_dir = os.path.join(bundle_dir, 'Contents', 'Frameworks')
commands.append(['mkdir', '-p', frameworks_dir])
resources_dir = os.path.join(bundle_dir, 'Contents', 'Resources')
commands.append(['mkdir', '-p', resources_dir])
plugins_dir = os.path.join(bundle_dir, 'Contents', 'plugins')
plugins_dir = os.path.join(bundle_dir, 'Contents', 'qt-plugins')
binary = os.path.join(bundle_dir, 'Contents', 'MacOS', bundle_name)
fixed_libraries = []
@@ -364,8 +376,7 @@ def FixVLCPlugin(abs_path, subdir):
FixAllLibraries(broken_libs)
#print "Copying plugin....%s %s %s" % (plugins_dir, subdir, os.path.join(abs_path.split('/')[-2:]))
plugindir = abs_path.split('/')[-2]
new_path = os.path.join(plugins_dir, subdir, plugindir, os.path.basename(abs_path))
new_path = os.path.join(plugins_dir, subdir, os.path.basename(abs_path))
args = ['mkdir', '-p', os.path.dirname(new_path)]
commands.append(args)
args = ['ditto', '--arch=i386', '--arch=x86_64', abs_path, new_path]
@@ -491,21 +502,21 @@ def FindVLCPlugin(name):
FixBinary(binary)
for plugin in VLC_PLUGINS:
FixVLCPlugin(FindVLCPlugin(plugin), '../Frameworks/vlc/plugins')
FixVLCPlugin(FindVLCPlugin(plugin), '../plugins')
for plugin in TOMAHAWK_PLUGINS:
FixPlugin(plugin, '../MacOS')
try:
FixPlugin('spotify_tomahawkresolver', '../MacOS')
except:
print 'Failed to find spotify resolver'
try:
FixPlugin('tomahawk_crash_reporter', '../MacOS')
except:
print 'Failed to find tomahawk_crash_reporter'
try:
FixPlugin(LIBSPOTIFY_PATH, "../Frameworks")
except:
print "Failed to copy libspotify from os: %s" % LIBSPOTIFY_PATH
for plugin in QT_PLUGINS:
FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin))

View File

@@ -1,2 +1,2 @@
[Paths]
Plugins = PlugIns
Plugins = qt-plugins

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,304 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="600px" height="600px" viewBox="0 0 600 600" enable-background="new 0 0 600 600" xml:space="preserve">
<path fill="#010101" d="M543.773,253.359c0-49.962-19.305-86.572-54.194-104.54C477.84,71.133,405.027,13.418,316.568,13.418
c-86.917,0-159.483,56.481-172.605,132.58c-38.049,16.818-59.889,55.24-59.889,107.361c0,27.029,7.188,51.824,20.321,71.749
c-1.816,1.565-3.444,3.282-4.77,5.239c0,0,2.582,2.359,3.689,3.373c-4.262,2.123-8.22,4.322-11.555,6.67
c0,0,3.021,7.355,5.896,14.353c-11.991,9.688-21.312,18.92-27.553,27.51c0,0,1.611,1.789,2.011,2.225
c-12.354,9.158-22.133,18.205-28.528,27.021c0,0,6.927,7.35,12.408,13.166c-17.824,28.76-43.348,74.85-43.348,102.988
c0,3.278,0.346,6.315,1.093,9.053c1.764,6.443,5.752,11.438,11.229,14.059c15.255,7.312,39.646-6.362,72.589-40.434
c-0.828,8.287-1.457,16.662-1.457,24.736c0,16.805,2.266,32.069,8.77,41.25c4.887,6.895,10.898,9.067,15.084,9.682
c6.723,0.99,26.375,3.797,57.992-61.295c2.678,0.705,5.421,1.178,8.235,1.178c8.798,0,17.065-3.424,23.287-9.639
c4.284-4.287,7.133-9.584,8.562-15.312c7.516-2.129,14.555-6.701,20.779-13.19c19.562,24.86,44.779,37.643,75.38,37.643
c7.317,0,14.474-0.754,21.281-2.242c0.392-0.073,2.555-0.623,2.555-0.623l0.62-0.166c23.05-5.823,42.463-20.409,58-43.254
c7.2,9.23,15.731,15.994,24.849,19.457c1.141,6.658,4.226,12.808,9.102,17.691c6.22,6.213,14.487,9.639,23.288,9.639
c8.798,0,17.063-3.426,23.285-9.639c6.221-6.229,9.647-14.494,9.647-23.293c0-8.797-3.429-17.066-9.647-23.293
c-2.988-2.988-6.478-5.297-10.248-6.924c0.275-2.947,0.611-5.849,0.611-9.009c0-10.028-1.398-20.979-4.19-31.897
c-1.196-4.672-2.757-8.746-4.513-12.568c2.84-6.467,4.807-13.268,4.807-20.426c0-7.316-1.74-14.422-4.706-21.01
C509.263,358.345,543.773,313.068,543.773,253.359z M451.232,150.998c-33.396-54.619-88.048-93.359-134.569-85.472
c-49.022-7.864-102.775,30.64-135.326,85.018c-2.646,0.208-5.276,0.497-7.875,0.88c8.694-54.414,69.431-111.108,143.107-111.108
c74.113,0,135.142,57.197,143.271,112.08C457.013,151.799,454.137,151.348,451.232,150.998z"/>
<path fill="#010101" stroke="#FFFFFF" stroke-width="4.8437" d="M110.937,367.38c-72.03,93.07-97.843,163.349-81.865,170.996
c15.97,7.654,74.912-46.055,139.701-143.287c45.751-68.647,60.797-94.43,45.68-95.922l20.614-43.357l-10.687-6.644l-33.91,33.371
C179.323,272.615,166.073,296.146,110.937,367.38z"/>
<path fill="#010101" stroke="#FFFFFF" stroke-width="4.8437" d="M140.932,379.755c-39.101,113.041-39.738,189.89-20.813,192.654
c18.912,2.787,59.039-67.617,89.306-182.603c21.383-81.178,27.257-111.029,11.438-108l5.133-48.806l-13.207-3.354l-22.192,42.936
C175.736,266.142,170.865,293.244,140.932,379.755z"/>
<circle fill="none" stroke="#010101" stroke-width="4.8437" cx="410.28" cy="388.832" r="37.801"/>
<path fill="#ED2224" stroke="#010101" stroke-width="4.8437" d="M475.237,157.792c-7.115-73.197-76.231-130.645-160.495-130.645
c-83.402,0-152.009,56.27-160.306,128.393c-39.811,13.607-58.455,52.219-58.455,97.818c0,56.946,34.681,103.108,89.925,103.108
c35.784,0,67.089-19.432,84.771-48.551c14.01,3.533,28.776,5.463,44.064,5.463c13.16,0,25.934-1.438,38.173-4.076
c17.966,28.357,49.108,47.164,84.604,47.164c55.665,0,90.696-46.162,90.696-103.108
C528.218,210.073,512.209,173.073,475.237,157.792z M314.742,274.908c-10.501,0-20.723-0.878-30.584-2.506
c1.125-6.177,1.778-12.527,1.778-19.043c0-56.941-44.786-103.104-100.03-103.104c-4.858,0-9.597,0.478-14.271,1.169
c8.692-54.414,69.43-111.108,143.105-111.108c74.113,0,135.144,57.197,143.27,112.08c-6.617-1.398-13.473-2.141-20.49-2.141
c-55.675,0-100.801,46.163-100.801,103.104c0,6.852,0.687,13.536,1.931,20.013C330.872,274.364,322.888,274.908,314.742,274.908z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-1087.6663" y1="191.4385" x2="-992.1917" y2="191.4385" gradientTransform="matrix(-0.3782 -0.8348 1.083 -0.4907 -423.9551 -476.2263)">
<stop offset="0" style="stop-color:#010101"/>
<stop offset="0.2606" style="stop-color:#3E221C"/>
<stop offset="0.7732" style="stop-color:#B03126"/>
<stop offset="1" style="stop-color:#ED2224"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M153.69,260.35c31.322-14.19,65.739-18.887,77.129,6.254c11.391,25.14-4.763,57.026-36.091,71.214
c-31.323,14.192-65.948,5.311-77.338-19.83C106,292.849,122.366,274.543,153.69,260.35z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-1275.886" y1="215.5034" x2="-1180.4114" y2="215.5034" gradientTransform="matrix(-0.9008 -0.3607 0.555 -1.386 -752.6548 131.7681)">
<stop offset="0" style="stop-color:#B11F24"/>
<stop offset="0.1017" style="stop-color:#B62024"/>
<stop offset="1" style="stop-color:#ED2224"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M427.738,265.165c16.043-40.085,41.342-74.985,68.475-64.122
c27.121,10.86,36.109,52.165,20.056,92.248c-16.053,40.089-51.062,63.773-78.189,52.912
C410.95,335.343,411.683,305.253,427.738,265.165z"/>
<path fill="#010101" stroke="#010101" stroke-width="4.8437" d="M448.219,425.226c7.774,30.396,3.98,62.357-14.521,62.357
c-16.301,0-34.904-17.332-42.675-47.732c-7.777-30.399,4.243-75.016,14.521-62.364C423.584,399.707,440.442,394.826,448.219,425.226
z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-639.5422" y1="548.502" x2="-691.4051" y2="458.673" gradientTransform="matrix(0.9868 0.0515 0.0515 0.7987 840.2104 72.6462)">
<stop offset="0" style="stop-color:#5B3E1D"/>
<stop offset="0.1121" style="stop-color:#42301B"/>
<stop offset="0.2377" style="stop-color:#2E2316"/>
<stop offset="0.3753" style="stop-color:#1D1710"/>
<stop offset="0.5292" style="stop-color:#0E0C08"/>
<stop offset="0.7122" style="stop-color:#030302"/>
<stop offset="1" style="stop-color:#000000"/>
</linearGradient>
<path fill="url(#SVGID_3_)" stroke="#010101" stroke-width="4.8437" d="M184.076,437.859c-6.111,23.875,1.745,46.508,17.54,50.549
c15.79,4.039,33.552-12.045,39.658-35.924c6.101-23.882-9.153-57.129-24.947-61.17C200.537,387.275,190.178,413.972,184.076,437.859
z"/>
<path fill="#010101" stroke="#010101" stroke-width="4.8437" d="M314.837,65.525c72.757-12.333,165.505,89.311,165.505,187.528
c0,98.213-74.307,162.833-165.707,162.833"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-664.3811" y1="374.0068" x2="-500.546" y2="90.2362" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#000000"/>
<stop offset="1" style="stop-color:#5B3E1D"/>
</linearGradient>
<path fill="url(#SVGID_4_)" stroke="#010101" stroke-width="4.8437" d="M314.635,415.888c-91.402,0-165.299-64.619-165.299-162.833
c0-98.218,88.615-199.862,165.5-187.528"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-760.302" y1="-37.9087" x2="-639.3506" y2="-247.4027" gradientTransform="matrix(-0.6092 0.7802 -0.4118 -0.3216 -240.6183 671.6459)">
<stop offset="0" style="stop-color:#8B654B"/>
<stop offset="1" style="stop-color:#000000"/>
</linearGradient>
<path fill="url(#SVGID_5_)" d="M169.611,266.578c-27.578-21.539-16.863-81.354,23.935-133.604
c40.804-52.245,93.81-72.894,126.21-59.689c26.672,10.864,14.476,85.434-26.326,137.681
C252.63,263.215,197.193,288.112,169.611,266.578z"/>
<circle fill="#010101" cx="214.367" cy="388.832" r="34.682"/>
<g>
<path fill="#F4DFED" d="M131.831,427.708c-23.973,79.734-18.741,132.268-9.011,135.459c10.854,3.564,43.561-47.223,60.839-128.324
c12.189-57.264,11.729-83.75,0.009-81.625l3.505-31.108l-8.899-2.435l-14.271,32.445
C152.554,347.564,150.184,366.689,131.831,427.708z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-710.6404" y1="319.3252" x2="-710.6405" y2="562.8164" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#571A54"/>
<stop offset="0.2641" style="stop-color:#7C5378"/>
<stop offset="0.528" style="stop-color:#A78AA3"/>
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
<stop offset="1" style="stop-color:#F9F3F8"/>
</linearGradient>
<path fill="url(#SVGID_6_)" d="M146.41,479.117l-22.914,19.186l35.325-65.182l4.683-17.371c0,0,3.1-26.758-24.228,14.713
c16.962-56.432,32.317-62.998,32.317-62.998l11.402-46.658l-4.725-1.131l-14.702,30.23c-11.429-4.588-13.859,14.521-32.392,75.483
c-24.226,79.656-20.501,124.087-8.358,137.777L146.41,479.117z"/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-789.3508" y1="444.1797" x2="-821.2424" y2="531.975" gradientTransform="matrix(0.9399 -0.3414 0.3414 0.9399 754.2939 -277.891)">
<stop offset="0" style="stop-color:#802986"/>
<stop offset="0.2641" style="stop-color:#9D66A2"/>
<stop offset="0.528" style="stop-color:#BE9BC2"/>
<stop offset="0.7459" style="stop-color:#DBC8DE"/>
<stop offset="0.9095" style="stop-color:#F0E6F1"/>
<stop offset="1" style="stop-color:#F9F3F8"/>
</linearGradient>
<path fill="url(#SVGID_7_)" d="M147.332,501.478l31.839-92.399c0,0,6.608,60.69-7.474,93.406
c1.438-44.879-2.328-36.951-9.176-25.257C159.71,482.031,147.332,501.478,147.332,501.478z"/>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-764.8928" y1="411.2344" x2="-797.3259" y2="500.5203" gradientTransform="matrix(0.9399 -0.3414 0.3414 0.9399 754.2939 -277.891)">
<stop offset="0" style="stop-color:#802986"/>
<stop offset="0.2641" style="stop-color:#9D66A2"/>
<stop offset="0.528" style="stop-color:#BE9BC2"/>
<stop offset="0.7459" style="stop-color:#DBC8DE"/>
<stop offset="0.9095" style="stop-color:#F0E6F1"/>
<stop offset="1" style="stop-color:#F9F3F8"/>
</linearGradient>
<path fill="url(#SVGID_8_)" d="M156.286,463.716l38.825-93.953c0,0,2.251,62.279-11.831,94.992
c-0.298-44.25-5.388-28.09-8.538-23.508C165.662,454.416,156.286,463.716,156.286,463.716z"/>
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-872.7551" y1="422.8174" x2="-924.3751" y2="475.0038" gradientTransform="matrix(0.711 -0.7032 0.7032 0.711 517.3177 -556.6326)">
<stop offset="0" style="stop-color:#571A54"/>
<stop offset="0.2641" style="stop-color:#7C5378"/>
<stop offset="0.528" style="stop-color:#A78AA3"/>
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
<stop offset="1" style="stop-color:#F9F3F8"/>
</linearGradient>
<path fill="url(#SVGID_9_)" d="M180.916,431.115l9.787-73.404c0,0,18.589,43.111,16.428,71.426
c-11.771-30.424-13.671-21.049-17.576-14.961C187.396,417.539,180.916,431.115,180.916,431.115z"/>
<path fill="#1E3D73" d="M174.914,335.556L158.76,362.31l-23.24,76.646c0,0,1.211-8.172,1.788-15.883l-18.783,50.772
c0,0,8.386-31.227,3.607-28.383c-4.775,2.84,4.227-21.91-23.102,13.73c5.316-18.517,20.495-39.511,33.324-54.9
c-2.172,0.473-7.102,4.787-18.388,18.373c4.381-15.232,14.956-32.934,25.357-47.898c-1.159-2.682-5.151-3.889-21.234,5.224
C134.366,356.718,174.914,335.556,174.914,335.556z"/>
</g>
<g>
<path fill="#F4DFED" d="M94.453,401.164c-49.752,66.752-62.779,117.912-54.719,124.242c8.987,7.059,57.062-29.513,100.989-99.847
c31.011-49.655,39.62-74.709,27.879-76.713l13.916-28.053l-7.539-5.318l-24.483,25.623
C141.291,332.912,132.531,350.072,94.453,401.164z"/>
<path fill="#656B84" d="M90.603,454.464l-28.088,10.205l55.456-49.201l10.331-14.729c0,0,12.047-24.097-27.796,5.559
c35.213-47.256,51.892-48.182,51.892-48.182l26.641-39.957l-4.058-2.683l-24.133,23.4c-9.179-8.223-17.989,8.91-56.226,59.885
c-49.96,66.601-61.634,109.635-54.889,126.646L90.603,454.464z"/>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-752.551" y1="484.6816" x2="-736.7991" y2="395.3488" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#571A54"/>
<stop offset="0.2641" style="stop-color:#7C5378"/>
<stop offset="0.528" style="stop-color:#A78AA3"/>
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
<stop offset="1" style="stop-color:#F9F3F8"/>
</linearGradient>
<path fill="url(#SVGID_10_)" d="M83.829,475.791l61.476-75.98c0,0-14.509,59.306-38.916,85.248
c16.678-41.694,12.058-33.366,0-26.873C101.491,460.822,83.829,475.791,83.829,475.791z"/>
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="-727.8064" y1="453.3486" x2="-711.9149" y2="363.2233" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#571A54"/>
<stop offset="0.2641" style="stop-color:#7C5378"/>
<stop offset="0.528" style="stop-color:#A78AA3"/>
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
<stop offset="1" style="stop-color:#F9F3F8"/>
</linearGradient>
<path fill="url(#SVGID_11_)" d="M105.143,443.357l68.562-75.052c0,0-19.143,59.297-43.551,85.248
c14.824-41.7,10.567-27.994,0-25.022C124.802,430.041,105.143,443.357,105.143,443.357z"/>
<path fill="#656B84" d="M139.423,421.125l34.262-65.654c0,0,2.748,46.867-8.945,72.74c-0.676-32.615-3.041-28.432-11.413-20.061
C150.5,410.974,139.423,421.125,139.423,421.125z"/>
<path fill="#656B84" d="M166.408,329.255l-24.322,19.631l-48.011,64.111c0,0,3.931-7.273,7.104-14.322L66.185,439.99
c0,0,18.552-26.484,13.089-25.449c-5.464,1.041,11.451-19.148-26.399,5.02c11.313-15.588,32.751-30.137,50.064-40.227
c-2.205-0.299-8.316,2.076-23.552,10.988c9.312-12.818,25.302-25.842,40.183-36.357c-0.175-2.918-3.515-5.416-21.74-2.346
C121.065,335.3,166.408,329.255,166.408,329.255z"/>
</g>
<g>
<path fill="#D9AF82" d="M315.05,115.063c-50.514,0-83.218,15.021-109.641,64.839c-2.502,4.713-0.23,14.337-2.796,19.152
c-13.845,26.007-37.089,48.236-37.089,71.707c0,34.335,19.1,65.637,42.505,89.296c12.185,71.646,34.7,151.595,104.339,151.595"/>
<path fill="#010101" d="M203.271,178.766c-1.521,2.855-1.59,6.774-1.656,10.562c-0.062,3.283-0.123,6.677-1.14,8.588
c-4.537,8.519-10.146,16.707-15.577,24.624c-11.21,16.353-21.797,31.798-21.797,48.221c0,30.307,15.166,62.38,42.666,90.412
c12.578,73.607,36.113,150.479,106.6,150.479v-1.547c-67.084,0-89.722-78.556-101.95-150.453l-0.127-0.748l-0.54-0.549
c-26.957-27.257-41.805-58.361-41.805-87.594c0-14.923,10.174-29.766,20.949-45.482c5.501-8.027,11.19-16.327,15.855-25.087
c1.562-2.935,1.638-6.92,1.707-10.773c0.059-3.221,0.118-6.551,1.088-8.381c24.258-45.734,54.398-65.974,107.503-65.974v-2.422
C259.849,112.641,228.506,131.181,203.271,178.766z"/>
</g>
<path fill="#8B654B" d="M312.368,511.65c72.045,0,92.163-79.949,104.338-151.595c23.405-23.657,42.514-54.959,42.514-89.296
c0-37.004-22.588-49.51-38.609-77.154c-5.681-9.798-1.496-24.634-8.084-33.382c-26.905-35.728-53.772-45.162-97.477-45.162"/>
<ellipse fill="#D9AF82" cx="313.792" cy="343.947" rx="21.906" ry="68.144"/>
<path fill="#8B654B" d="M342.916,373.455c0,7.812-14.979,12.535-27.273,12.535c-12.293,0-27.81-4.736-27.81-12.549
c3.432-3.433,15.246,4.885,27.544,4.885C334.789,378.326,342.916,312.496,342.916,373.455z"/>
<path fill="#D9AF82" d="M335.697,435.216c0,37.637-9.81,68.832-21.91,68.832c-12.096,0-21.899-31.195-21.899-68.832
c0-37.639,9.882-50.258,21.977-50.258C325.962,384.958,335.697,397.578,335.697,435.216z"/>
<path opacity="0.36" fill="#8A644B" enable-background="new " d="M328.365,281.605c-1.826,24.682-14.186-7.573-34.757,20.975
c-8.672,12.025-23.23,10.877-38.845,10.877c-39.61,0-66.544-26.031-67.859-38.869c-2.517-24.557,29.024-39.586,71.464-39.586
C297.028,235.002,329.255,269.622,328.365,281.605z"/>
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="-644.0354" y1="340.7031" x2="-568.3508" y2="340.7031" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#D9AF82"/>
<stop offset="0.0786" style="stop-color:#DFB791"/>
<stop offset="0.2053" style="stop-color:#E7C1A5"/>
<stop offset="0.345" style="stop-color:#EDC9B5"/>
<stop offset="0.5023" style="stop-color:#F1CFC0"/>
<stop offset="0.6917" style="stop-color:#F4D3C7"/>
<stop offset="1" style="stop-color:#F5D4C9"/>
</linearGradient>
<path opacity="0.36" fill="url(#SVGID_12_)" enable-background="new " d="M272.246,361.529
c-28.722,19.461-56.346-24.299-57.491-43.314c15.913,13.822,62.032,18.457,75.685-2.516L272.246,361.529z"/>
<path opacity="0.36" fill="#8A644B" enable-background="new " d="M313.706,461.212c-38.167,0-61.229-13.68-61.229-31.629
c0-6.049,15.649-24.078,37.318-49.365c5.952-3.699,7.464,10.037,14.958,4.73C331.61,392.044,328.318,461.212,313.706,461.212z"/>
<g>
<path fill="#8A644B" d="M260.464,472.117c8.341,23.938,32.817,36.465,52.688,36.465v-4.844
C294.99,503.738,268.056,493.921,260.464,472.117L260.464,472.117z"/>
</g>
<g>
<path fill="#8A644B" d="M180.954,271.658c0,21.359,5.388,36.679,27.101,48.222c0.587,1.121,7.021,13.387,7.021,13.387
c8.916,16.375,19.021,34.939,19.021,54.406h4.844c0-20.699-10.416-39.84-19.612-56.725l-7.586-14.455l-0.709-0.426
C190.51,305.4,180.954,291.289,180.954,271.658L180.954,271.658z"/>
</g>
<g>
<path fill="#010101" d="M208.814,230.649l-0.104-0.97c-3.106-15.25-3.226-33.651-0.312-49.217l-4.764-0.889
C200.613,195.722,205.583,214.815,208.814,230.649z"/>
</g>
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="-667.7327" y1="310.1709" x2="-407.218" y2="310.1709" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#5B3E1D"/>
<stop offset="1" style="stop-color:#010101"/>
</linearGradient>
<path fill="url(#SVGID_13_)" d="M423.943,199.054c-3.983-11.059-0.737-20.853-8.062-31.231
c-19.885-28.185-51.07-56.271-108.998-52.618l5.214,140.363c0,0-122.733-25.589-121.021,15.935c0.229,5.387,40.188,2.88,63.46,4.428
c-26.092,4.566-32.185,5.898-32.185,8.838c0,6.206,21.861,0.683,25.106,2.467c4.978,2.739-43.139,7.052-34.351,8.757
c10.057,1.951,44.474,3.086,57.442,3.086c28.931,0,41.077-25.413,41.077-4.485c7.348,27.894,14.739,59.239,13.974,69.882
c-1.477,20.661-19.62,20.188-19.62,20.188l5.089,24.285c-8.557,0.438-6.245-1.324-13.85-0.549c-14.429,0-32.354,13.03-32.354,16.055
l39.989,0.434c0,0-29.081,13.771-22.977,22.931c4.765,7.143,20.316,13.377,31.093,13.424c0,0,3.271,8.549,3.271,22.352
c0,13.812-4.035,22.564-4.035,22.564c46.171,0,67.49-49.035,80.324-118.445c6.083-32.877,20.018-58.104,36.034-71.658
c15.742-13.319,23.008-26.64,23.008-52.07C451.577,249.847,443.574,230.354,423.943,199.054z"/>
<path fill="#D9AF82" d="M325.395,252.416l-13.297,4.328c0,0-65.85-96.356-46.493-121.312c12.682-16.357,24.609-18.136,40.046-19.238
c13.519-0.965,21.294,16.525,27.302,24.271C350.375,162.927,325.395,252.416,325.395,252.416z"/>
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="-629.0159" y1="50.6562" x2="-540.175" y2="50.6562" gradientTransform="matrix(0.676 0.6564 -0.9247 0.9523 711.8302 511.1852)">
<stop offset="0" style="stop-color:#FFFFFF"/>
<stop offset="0.0769" style="stop-color:#F4E9DD"/>
<stop offset="0.1814" style="stop-color:#EBD6BF"/>
<stop offset="0.2951" style="stop-color:#E5C7A8"/>
<stop offset="0.419" style="stop-color:#DFBC96"/>
<stop offset="0.5585" style="stop-color:#DCB58B"/>
<stop offset="0.7265" style="stop-color:#DAB084"/>
<stop offset="1" style="stop-color:#D9AF82"/>
</linearGradient>
<path fill="url(#SVGID_14_)" d="M305.253,199.27c-26.745,27.542-70.168,41.961-81.281,24.357
c-14.515-22.972-12.896-47.545,13.854-75.082c26.74-27.547,64.922-33.847,85.28-14.081
C343.464,154.233,332.003,171.726,305.253,199.27z"/>
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="-617.7107" y1="401.4551" x2="-617.7107" y2="317.8633" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#D9AF82"/>
<stop offset="0.1127" style="stop-color:#BD936E"/>
<stop offset="0.2679" style="stop-color:#A57C5E"/>
<stop offset="0.4437" style="stop-color:#966E53"/>
<stop offset="0.6554" style="stop-color:#8D664D"/>
<stop offset="1" style="stop-color:#8A644B"/>
</linearGradient>
<path fill="url(#SVGID_15_)" d="M272.246,361.529c0,46.272-35.419,42.799-45.104,36.896c0-45.752-17.229-80.211-17.229-80.211
S249.882,354.22,272.246,361.529z"/>
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="-925.8547" y1="344.666" x2="-972.7458" y2="361.7328" gradientTransform="matrix(-1 0 0 1 -562.3931 0.3506)">
<stop offset="0" style="stop-color:#382815"/>
<stop offset="0.4081" style="stop-color:#553E2B"/>
<stop offset="1" style="stop-color:#8B654B"/>
</linearGradient>
<path fill="url(#SVGID_16_)" d="M359.338,356.349c0,46.271,21.506,44.033,31.073,44.033c7.488-45.135,35.671-81.516,35.671-81.516
S381.703,349.044,359.338,356.349z"/>
<path fill="none" stroke="#010101" stroke-width="4.8437" d="M173.934,294.978"/>
<g>
<path fill="#010101" d="M311.507,115.089c53.106,0,83.247,20.214,107.505,65.948c0.902,1.702,0.902,4.883,0.902,7.96
c-0.005,4.146-0.005,8.432,2.029,11.419c16.157,23.757,31.934,48.809,31.934,70.969c0,32.38-12.817,62.458-37.073,86.969
l-0.541,0.551l-0.13,0.748c-12.222,71.897-36.672,150.451-103.765,150.451v1.518c70.499,0,95.847-76.844,108.416-150.455
c24.803-25.336,37.937-56.355,37.937-89.781c0-23.537-16.19-49.311-32.774-73.694c-1.151-1.698-1.19-5.061-1.19-8.37
c0-0.109,0.004-0.537,0.004-0.646c0-3.567-0.041-7.221-1.471-9.91C398.053,131.18,366.71,112.64,311.51,112.64v2.449H311.507
L311.507,115.089z"/>
</g>
<polygon fill="#010101" points="339.974,84.79 334.59,115.675 300.608,113.719 312.435,66.413 "/>
<circle fill="#010101" stroke="#010101" stroke-width="4.8437" cx="452.06" cy="492.948" r="19.204"/>
<g>
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="-749.6116" y1="335.9512" x2="-687.9983" y2="335.9512" gradientTransform="matrix(1 0 0 1 858.79 0.3506)">
<stop offset="0" style="stop-color:#571A54"/>
<stop offset="0.2641" style="stop-color:#7C5378"/>
<stop offset="0.528" style="stop-color:#A78AA3"/>
<stop offset="0.7459" style="stop-color:#CDBCCB"/>
<stop offset="0.9095" style="stop-color:#EAE1E8"/>
<stop offset="1" style="stop-color:#F9F3F8"/>
</linearGradient>
<path fill="url(#SVGID_17_)" d="M109.178,338.035c9.592-7.824,34.694,4.861,34.833,4.861l26.78-8.396
C170.211,334.501,120.246,321.648,109.178,338.035z"/>
</g>
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="-1081.0227" y1="320.6133" x2="-1063.3801" y2="320.6133" gradientTransform="matrix(-0.0113 -0.7169 1.2476 -0.0198 -98.6661 -397.1379)">
<stop offset="0" style="stop-color:#D9AF82"/>
<stop offset="0.0786" style="stop-color:#DFB791"/>
<stop offset="0.2053" style="stop-color:#E7C1A5"/>
<stop offset="0.345" style="stop-color:#EDC9B5"/>
<stop offset="0.5023" style="stop-color:#F1CFC0"/>
<stop offset="0.6917" style="stop-color:#F4D3C7"/>
<stop offset="1" style="stop-color:#F5D4C9"/>
</linearGradient>
<path opacity="0.36" fill="url(#SVGID_18_)" enable-background="new " d="M313.352,358.851c6.074-0.1,11.045,2.654,11.102,6.15
c0.06,3.49-4.829,6.398-10.907,6.498c-6.076,0.1-11.045-2.658-11.105-6.154C302.388,361.853,307.269,358.947,313.352,358.851z"/>
<path fill="#483218" d="M397.109,309.378c15.699-3.76,26.445-18.402,20.099-27.063c-38.738,19.354-75.295,11.369-85.529,9.147
C368.014,309.492,371.117,315.595,397.109,309.378z"/>
<path fill="#B4B4B4" d="M310.92,73.714c-38.372,0-93.116,22.758-117.549,74.944c-6.089,12.999-6.656,32.87,0.64,45.014
c0,0,18.604-81.43,108.229-86.494"/>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="Layer_1"
x="0px"
y="0px"
width="606.2478"
height="595.49866"
viewBox="0 0 606.24779 595.49863"
enable-background="new 0 0 841.89 595.28"
xml:space="preserve"
inkscape:version="0.48.2 r9819"
sodipodi:docname="tomahawk-icon.svg"><metadata
id="metadata15"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs13" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1440"
inkscape:window-height="794"
id="namedview11"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="431.12548"
inkscape:cy="336.94553"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1"
inkscape:snap-page="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"><sodipodi:guide
position="-3.5728101e-05,-1.501866e-05"
orientation="0,841.89001"
id="guide2994" /><sodipodi:guide
position="841.88997,-1.501866e-05"
orientation="-595.28003,0"
id="guide2996" /><sodipodi:guide
position="841.88997,595.28001"
orientation="0,-841.89001"
id="guide2998" /><sodipodi:guide
position="-3.5728101e-05,595.28001"
orientation="595.28003,0"
id="guide3000" /></sodipodi:namedview>
<g
id="g3"
transform="matrix(7.3080643,0,0,7.1790074,-2773.1692,-1839.0104)">
<g
id="g5">
<path
d="m 420.947,265.168 c -17.911,0 -32.477,14.565 -32.477,32.472 0,17.906 14.565,32.476 32.477,32.476 2.568,0 5.06,-0.318 7.459,-0.888 v -28.011 l -22.338,15.806 c -0.198,0.135 -0.444,0.213 -0.681,0.213 -0.184,0 -0.372,-0.039 -0.541,-0.136 -0.396,-0.202 -0.642,-0.608 -0.642,-1.043 v -37.053 c 0,-0.435 0.246,-0.845 0.642,-1.053 0.396,-0.193 0.864,-0.159 1.222,0.092 l 22.338,15.807 v -16.028 h 0.951 8.945 v 47.234 c 9.076,-5.764 15.121,-15.888 15.121,-27.417 10e-4,-17.905 -14.569,-32.471 -32.476,-32.471 z"
id="path7"
inkscape:connector-curvature="0"
style="fill:none" />
<path
d="m 420.947,256.165 c -22.874,0 -41.48,18.606 -41.48,41.475 0,22.87 18.606,41.475 41.48,41.475 22.869,0 41.476,-18.605 41.476,-41.475 0,-22.869 -18.607,-41.475 -41.476,-41.475 z m 17.356,68.892 v -47.234 h -8.945 -0.951 v 16.028 l -22.338,-15.807 c -0.357,-0.251 -0.826,-0.285 -1.222,-0.092 -0.396,0.208 -0.642,0.618 -0.642,1.053 v 37.053 c 0,0.435 0.246,0.841 0.642,1.043 0.169,0.097 0.357,0.136 0.541,0.136 0.236,0 0.482,-0.078 0.681,-0.213 l 22.338,-15.806 v 28.011 c -2.399,0.569 -4.891,0.888 -7.459,0.888 -17.911,0 -32.477,-14.57 -32.477,-32.476 0,-17.906 14.565,-32.472 32.477,-32.472 17.906,0 32.477,14.565 32.477,32.472 -0.001,11.528 -6.046,21.652 -15.122,27.416 z"
id="path9"
inkscape:connector-curvature="0"
style="fill:#e63e30" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

BIN
data/images/collection.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
data/images/jump-link.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
data/images/lastfm-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
data/images/track-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,20 @@
-----BEGIN PUBLIC KEY-----
MIIDOzCCAi0GByqGSM44BAEwggIgAoIBAQDRltnNbKWFroVCsG1nTSdlTDmo7fjl
tgOuQ0YB2s0a1bcqgQ5YJRE59pFvF/z2pkHEHdyBA6USd9N7/T9lolwNcJoByJpO
MobUNs04elqZXliriaAdoSb2g6ZpxiedppbbyNP/BlK6o+zpyn0LVYXDI/OwJFzS
xjGXM+rBEWdUJnogZxV31gF9W3yD1Quz6icBulT9V/Soo6me9Mc60ooKSYj4Zgqd
3ln8tG90RFnWfbb0nbrITvR3ll6XXLfn081tjhymcXqHcgvaaqcmpKWL6ZWwX1mH
3t1pImnif/tSSZPG21KGE3FtuQ/+YFo19apQ6U6l8kaSFxqcDLAYzBy9AhUA/QfN
8WEIvzOEZ9uSWT7lYy64mUkCggEABsUmcs3kwjrmszIAAmPIowA0DBrxWZL03JBV
bDKT6tNHZaFFlCufVSjiL1EFZjRARC16OWYaDcElUsZYFMcsNIIa8LyDQaq6+SSm
quhMO5heeJiYPrutDiJzbJr0+HoY77Ll+Q4/cEkl0UAN4Ovp18WKwaq6GpHAvBnv
71LunLGAKsVb5joXBQ8In6zQkibJhgiBJwzLK90/j0OTiDaaOwM3PsAegORBVlVE
TAk4AQmawmF8nBGLzTyKXl83J571ku1Mm2JTl16jMYziKARKXYBmkcP1at0YddVK
WWpAwRKSxOucVJYfV58JqmjZqst8BBeH6esQKr5dklUvvDMaEwOCAQYAAoIBAQCw
5mo+8/R3S9cNYg9o8JNJGdSbMhSkurILHh9WNElsIC3RNtPcpijmAnWtXTVDhe6w
77wLj37tUuFGbsu2qPXtZoup35emf9DDshZ5w5UOclPaZ9HYjlC1H64c6d66Rllk
fY6FRDv9qVfjT84APbvMDrk6csJ5YHxFPDaqeQaFB0nxFiCMVwjEx+ZSvQNK1jJ2
o2gtuOvSPVSphsMeJ72DDNxO+SRRVnOmWaxg9rlmFuGle6Z+UJ2FItfmPEvhSBMY
hzndUbC7Wi4sIpBzbm9O5MiPYMv0VmN+0t1156EiC9uR4f7AKH2S94dnQob/YeY0
jMH+XxU/wzGUCmsOx1lx
-----END PUBLIC KEY-----

View File

@@ -43,8 +43,8 @@
</style>
</head>
<body>
<a href="http://www.playdar.org/" title="Tomahawk - Powered by Playdar" id="head">
<img alt="Tomahawk - Powered by Playdar" src="/staticdata/tomahawk_auth_logo.png" width="196" height="45"/>
<a href="http://www.tomahawk-player.org" title="Tomahawk - Powered by Playdar" id="head">
<img alt="Tomahawk - Powered by Playdar" src="/staticdata/tomahawk_auth_logo.png" width="200" height="30">
</a>
<div id="content">

View File

@@ -32,8 +32,8 @@
</style>
</head>
<body>
<a href="http://www.gettomahawk.com/" title="Tomahawk - Powered by Playdar" id="head">
<img alt="Tomahawk - Powered by Playdar" src="/staticdata/tomahawk_auth_logo.png" width="196" height="45"/>
<a href="http://www.tomahawk-player.org" title="Tomahawk - Powered by Playdar" id="head">
<img alt="Tomahawk - Powered by Playdar" src="/staticdata/tomahawk_auth_logo.png" width="200" height="30">
</a>
<div id="content">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 27 KiB

3962
lang/tomahawk_ar.ts Normal file

File diff suppressed because it is too large Load Diff

3971
lang/tomahawk_bg.ts Normal file

File diff suppressed because it is too large Load Diff

3959
lang/tomahawk_ca.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3964
lang/tomahawk_fr.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,15 @@
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/lang">
<file>tomahawk_en.qm</file>
<file>tomahawk_bg.qm</file>
<file>tomahawk_de.qm</file>
<file>tomahawk_sv.qm</file>
<file>tomahawk_es.qm</file>
<file>tomahawk_fr.qm</file>
<file>tomahawk_pl.qm</file>
<file>tomahawk_pt_BR.qm</file>
<file>tomahawk_ru.qm</file>
<file>tomahawk_es.qm</file>
<file>tomahawk_sv.qm</file>
<file>tomahawk_ja.qm</file>
<file>tomahawk_ar.qm</file>
</qresource>
</RCC>

3947
lang/tomahawk_ja.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3953
lang/tomahawk_ru.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3936
lang/tomahawk_tr.ts Normal file

File diff suppressed because it is too large Load Diff

3936
lang/tomahawk_zh_CN.ts Normal file

File diff suppressed because it is too large Load Diff

3936
lang/tomahawk_zh_TW.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,25 +1,48 @@
FILE (GLOB TS_FILES ${CMAKE_SOURCE_DIR}/lang/*.ts)
QT4_ADD_TRANSLATION(QM_FILES ${TS_FILES})
macro(add_tomahawk_translations language)
list(APPEND TOMAHAWK_LANGUAGES ${ARGV})
## HACK HACK HACK - around rcc limitations to allow out of source-tree building
SET( trans_file tomahawk_i18n )
SET( trans_srcfile ${CMAKE_SOURCE_DIR}/lang/${trans_file}.qrc)
SET( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc)
SET( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${trans_file}.cxx)
set(tomahawk_i18n_qrc_content "<!DOCTYPE RCC><RCC version=\"1.0\">\n")
# Copy the QRC file to the output directory
ADD_CUSTOM_COMMAND(
OUTPUT ${trans_infile}
COMMAND ${CMAKE_COMMAND} -E copy ${trans_srcfile} ${trans_infile}
MAIN_DEPENDENCY ${trans_srcfile}
)
# tomahawk and qt language files
set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}<qresource prefix=\"/lang\">\n")
foreach(lang ${TOMAHAWK_LANGUAGES})
set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}<file>tomahawk_${lang}.qm</file>\n")
if(NOT lang STREQUAL "en" AND EXISTS ${QT_TRANSLATIONS_DIR}/qt_${lang}.qm)
file(COPY ${QT_TRANSLATIONS_DIR}/qt_${lang}.qm DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}<file>qt_${lang}.qm</file>\n")
endif()
# Run the resource compiler (rcc_options should already be set)
ADD_CUSTOM_COMMAND(
OUTPUT ${trans_outfile}
COMMAND ${QT_RCC_EXECUTABLE}
ARGS ${rcc_options} -name ${trans_file} -o ${trans_outfile} ${trans_infile}
MAIN_DEPENDENCY ${trans_infile}
DEPENDS ${QM_FILES}
)
# build explicitly enabled languages
list(APPEND TS_FILES "${CMAKE_SOURCE_DIR}/lang/tomahawk_${lang}.ts")
endforeach()
set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}</qresource>\n")
set(tomahawk_i18n_qrc_content "${tomahawk_i18n_qrc_content}</RCC>\n")
file(WRITE ${CMAKE_BINARY_DIR}/lang/tomahawk_i18n.qrc "${tomahawk_i18n_qrc_content}" )
QT4_ADD_TRANSLATION(QM_FILES ${TS_FILES})
## HACK HACK HACK - around rcc limitations to allow out of source-tree building
SET( trans_file tomahawk_i18n )
SET( trans_srcfile ${CMAKE_BINARY_DIR}/lang/${trans_file}.qrc)
SET( trans_infile ${CMAKE_CURRENT_BINARY_DIR}/${trans_file}.qrc)
SET( trans_outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${trans_file}.cxx)
# Copy the QRC file to the output directory
ADD_CUSTOM_COMMAND(
OUTPUT ${trans_infile}
COMMAND ${CMAKE_COMMAND} -E copy ${trans_srcfile} ${trans_infile}
MAIN_DEPENDENCY ${trans_srcfile}
)
# Run the resource compiler (rcc_options should already be set)
ADD_CUSTOM_COMMAND(
OUTPUT ${trans_outfile}
COMMAND ${QT_RCC_EXECUTABLE}
ARGS ${rcc_options} -name ${trans_file} -o ${trans_outfile} ${trans_infile}
MAIN_DEPENDENCY ${trans_infile}
DEPENDS ${QM_FILES}
)
endmacro()

View File

@@ -1,7 +1,5 @@
<RCC>
<qresource prefix="/">
<file>data/images/avatar-dude-plus.png</file>
<file>data/images/avatar-dude.png</file>
<file>data/images/back-pressed.png</file>
<file>data/images/back-rest.png</file>
<file>data/images/filter.png</file>
@@ -9,6 +7,8 @@
<file>data/images/not-loved.png</file>
<file>data/images/no-album-art-placeholder.png</file>
<file>data/images/no-artist-image-placeholder.png</file>
<file>data/images/artist-placeholder-grid.png</file>
<file>data/images/album-placeholder-grid.png</file>
<file>data/images/track-placeholder.png</file>
<file>data/images/now-playing-panel.png</file>
<file>data/images/now-playing-speaker.png</file>
@@ -66,12 +66,10 @@
<file>data/images/echonest_logo.png</file>
<file>data/images/loading-animation.gif</file>
<file>data/images/info.png</file>
<file>data/images/home.png</file>
<file>data/images/back.png</file>
<file>data/images/forward.png</file>
<file>data/images/music-icon.png</file>
<file>data/images/configure.png</file>
<file>data/images/create-playlist.png</file>
<file>data/images/private-listening.png</file>
<file>data/images/add.png</file>
<file>data/images/recently-played.png</file>
@@ -87,6 +85,7 @@
<file>data/images/station.png</file>
<file>data/images/new-additions.png</file>
<file>data/images/charts.png</file>
<file>data/images/new-releases.png</file>
<file>data/images/loved_playlist.png</file>
<file>data/images/dashboard.png</file>
<file>data/images/artist-icon.png</file>
@@ -134,7 +133,18 @@
<file>data/images/no-album-no-case.png</file>
<file>data/images/rdio.png</file>
<file>data/images/grooveshark.png</file>
<file>data/images/lastfm-icon.png</file>
<file>data/images/spotifycore-logo.png</file>
<file>data/images/playlist-header-tiled.png</file>
<file>data/images/share.png</file>
<file>data/sql/dbmigrate-27_to_28.sql</file>
<file>data/images/process-stop.png</file>
<file>data/icons/tomahawk-icon-128x128-grayscale.png</file>
<file>data/images/collection.png</file>
<file>data/misc/tomahawk_pubkey.pem</file>
<file>data/images/track-icon-sidebar.png</file>
<file>data/images/jump-link.png</file>
<file>data/images/scrollbar-vertical-handle.png</file>
<file>data/images/scrollbar-horizontal-handle.png</file>
</qresource>
</RCC>

View File

@@ -1,6 +1,7 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
* Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,23 +17,25 @@
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#include "audiocontrols.h"
#include "ui_audiocontrols.h"
#include "AudioControls.h"
#include "ui_AudioControls.h"
#include <QtNetwork/QNetworkReply>
#include <QtGui/QDropEvent>
#include <QtGui/QMouseEvent>
#include "audio/audioengine.h"
#include "playlist/playlistview.h"
#include "database/database.h"
#include "widgets/imagebutton.h"
#include "utils/tomahawkutils.h"
#include "utils/logger.h"
#include "album.h"
#include "dropjob.h"
#include "globalactionmanager.h"
#include "viewmanager.h"
#include "audio/AudioEngine.h"
#include "playlist/PlaylistView.h"
#include "database/Database.h"
#include "widgets/ImageButton.h"
#include "utils/TomahawkUtilsGui.h"
#include "utils/Logger.h"
#include "Album.h"
#include "DropJob.h"
#include "SocialWidget.h"
#include "GlobalActionManager.h"
#include "ViewManager.h"
#include "Source.h"
using namespace Tomahawk;
@@ -40,9 +43,10 @@ using namespace Tomahawk;
AudioControls::AudioControls( QWidget* parent )
: QWidget( parent )
, ui( new Ui::AudioControls )
, m_repeatMode( PlaylistInterface::NoRepeat )
, m_repeatMode( PlaylistModes::NoRepeat )
, m_shuffled( false )
, m_lastSliderCheck( 0 )
, m_parent( parent )
{
ui->setupUi( this );
setAcceptDrops( true );
@@ -50,13 +54,10 @@ AudioControls::AudioControls( QWidget* parent )
QFont font( ui->artistTrackLabel->font() );
font.setPixelSize( 12 );
#ifdef Q_WS_MAC
font.setPixelSize( font.pixelSize() - 2 );
#endif
ui->artistTrackLabel->setFont( font );
ui->artistTrackLabel->setElideMode( Qt::ElideMiddle );
ui->artistTrackLabel->setType( QueryLabel::ArtistAndTrack );
ui->artistTrackLabel->setJumpLinkVisible( true );
ui->albumLabel->setFont( font );
ui->albumLabel->setType( QueryLabel::Album );
@@ -81,8 +82,12 @@ AudioControls::AudioControls( QWidget* parent )
ui->repeatButton->setPixmap( RESPATH "images/repeat-off-pressed.png", QIcon::Off, QIcon::Active );
ui->volumeLowButton->setPixmap( RESPATH "images/volume-icon-muted.png" );
ui->volumeHighButton->setPixmap( RESPATH "images/volume-icon-full.png" );
ui->socialButton->setPixmap( RESPATH "images/share.png" );
ui->loveButton->setPixmap( RESPATH "images/not-loved.png" );
ui->loveButton->setCheckable( true );
ui->socialButton->setFixedSize( QSize( 20, 20 ) );
ui->loveButton->setFixedSize( QSize( 20, 20 ) );
#ifdef Q_WS_MAC
ui->ownerLabel->setForegroundRole( QPalette::Text );
@@ -92,14 +97,12 @@ AudioControls::AudioControls( QWidget* parent )
ui->metaDataArea->setStyleSheet( "QWidget#metaDataArea {\nborder-width: 4px;\nborder-image: url(" RESPATH "images/now-playing-panel.png) 4 4 4 4 stretch stretch; }" );
ui->seekSlider->setEnabled( true );
ui->seekSlider->setTimeLine( &m_sliderTimeLine );
ui->volumeSlider->setRange( 0, 100 );
ui->volumeSlider->setValue( AudioEngine::instance()->volume() );
m_phononTickCheckTimer.setSingleShot( true );
m_sliderTimeLine.setCurveShape( QTimeLine::LinearCurve );
ui->seekSlider->setTimeLine( &m_sliderTimeLine );
connect( &m_phononTickCheckTimer, SIGNAL( timeout() ), SLOT( phononTickCheckTimeout() ) );
connect( &m_sliderTimeLine, SIGNAL( frameChanged( int ) ), ui->seekSlider, SLOT( setValue( int ) ) );
@@ -119,8 +122,9 @@ AudioControls::AudioControls( QWidget* parent )
connect( ui->shuffleButton, SIGNAL( clicked() ), SLOT( onShuffleClicked() ) );
connect( ui->artistTrackLabel, SIGNAL( clickedArtist() ), SLOT( onArtistClicked() ) );
connect( ui->artistTrackLabel, SIGNAL( clickedTrack() ), SLOT( onTrackClicked() ) );
connect( ui->albumLabel, SIGNAL( clickedAlbum() ), SLOT( onAlbumClicked() ) );
connect( ui->artistTrackLabel, SIGNAL( clickedTrack() ), SLOT( onTrackClicked() ) );
connect( ui->albumLabel, SIGNAL( clickedAlbum() ), SLOT( onAlbumClicked() ) );
connect( ui->socialButton, SIGNAL( clicked() ), SLOT( onSocialButtonClicked() ) );
connect( ui->loveButton, SIGNAL( clicked( bool ) ), SLOT( onLoveButtonClicked( bool ) ) );
// <From AudioEngine>
@@ -199,17 +203,22 @@ AudioControls::onPlaybackStarted( const Tomahawk::result_ptr& result )
ui->seekSlider->setRange( 0, duration );
ui->seekSlider->setValue( 0 );
ui->seekSlider->setEnabled( AudioEngine::instance()->canSeek() );
m_phononTickCheckTimer.stop();
m_sliderTimeLine.stop();
m_sliderTimeLine.setDuration( duration );
m_sliderTimeLine.setFrameRange( 0, duration );
m_sliderTimeLine.setCurveShape( QTimeLine::LinearCurve );
m_sliderTimeLine.setCurrentTime( 0 );
m_seekMsecs = -1;
ui->seekSlider->setVisible( true );
int updateRate = (double)1000 / ( (double)ui->seekSlider->contentsRect().width() / (double)( duration / 1000 ) );
m_sliderTimeLine.setUpdateInterval( qBound( 40, updateRate, 500 ) );
m_noTimeChange = false;
m_lastSliderCheck = 0;
}
@@ -220,12 +229,12 @@ AudioControls::onPlaybackLoading( const Tomahawk::result_ptr& result )
{
if ( !m_currentTrack.isNull() )
{
disconnect( m_currentTrack->album().data(), SIGNAL( updated() ), this, SLOT( onAlbumCoverUpdated() ) );
disconnect( m_currentTrack->toQuery().data(), SIGNAL( updated() ), this, SLOT( onCoverUpdated() ) );
disconnect( m_currentTrack->toQuery().data(), SIGNAL( socialActionsLoaded() ), this, SLOT( onSocialActionsLoaded() ) );
}
m_currentTrack = result;
connect( m_currentTrack->album().data(), SIGNAL( updated() ), SLOT( onAlbumCoverUpdated() ) );
connect( m_currentTrack->toQuery().data(), SIGNAL( updated() ), SLOT( onCoverUpdated() ) );
connect( m_currentTrack->toQuery().data(), SIGNAL( socialActionsLoaded() ), SLOT( onSocialActionsLoaded() ) );
ui->artistTrackLabel->setResult( result );
@@ -243,34 +252,36 @@ AudioControls::onPlaybackLoading( const Tomahawk::result_ptr& result )
ui->loveButton->setEnabled( true );
ui->loveButton->setVisible( true );
ui->socialButton->setEnabled( true );
ui->socialButton->setVisible( true );
setAlbumCover();
setCover();
setSocialActions();
}
void
AudioControls::onAlbumCoverUpdated()
AudioControls::onCoverUpdated()
{
Album* album = qobject_cast< Album* >( sender() );
if ( !album || album != m_currentTrack->album().data() )
Query* query = qobject_cast< Query* >( sender() );
if ( !query || !m_currentTrack || query != m_currentTrack->toQuery().data() )
return;
setAlbumCover();
setCover();
}
void
AudioControls::setAlbumCover()
AudioControls::setCover()
{
if ( !m_currentTrack->album()->cover( ui->coverImage->size() ).isNull() )
if ( !m_currentTrack->toQuery()->cover( ui->coverImage->size() ).isNull() )
{
QPixmap cover;
cover = m_currentTrack->album()->cover( ui->coverImage->size() );
ui->coverImage->setPixmap( cover );
cover = m_currentTrack->toQuery()->cover( ui->coverImage->size() );
ui->coverImage->setPixmap( cover, false );
}
else
ui->coverImage->setPixmap( TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultAlbumCover, TomahawkUtils::ScaledCover, ui->coverImage->size() ) );
ui->coverImage->setPixmap( TomahawkUtils::defaultPixmap( TomahawkUtils::DefaultAlbumCover, TomahawkUtils::ScaledCover, ui->coverImage->size() ), true );
}
@@ -278,16 +289,10 @@ void
AudioControls::onSocialActionsLoaded()
{
Query* query = qobject_cast< Query* >( sender() );
if ( !query || !m_currentTrack || query != m_currentTrack->toQuery().data() )
if ( !query || !m_currentTrack || !query->equals( m_currentTrack->toQuery() ) )
return;
query_ptr currentQuery = m_currentTrack->toQuery();
if ( query->artist() == currentQuery->artist() &&
query->track() == currentQuery->track() &&
query->album() == currentQuery->album() )
{
setSocialActions();
}
setSocialActions();
}
@@ -321,7 +326,6 @@ AudioControls::onPlaybackResumed()
{
tDebug( LOGEXTRA ) << Q_FUNC_INFO;
ui->stackedLayout->setCurrentWidget( ui->pauseButton );
ui->loveButton->setVisible( true );
m_sliderTimeLine.resume();
}
@@ -348,7 +352,7 @@ AudioControls::onPlaybackStopped()
ui->ownerLabel->setText( "" );
ui->timeLabel->setText( "" );
ui->timeLeftLabel->setText( "" );
ui->coverImage->setPixmap( QPixmap() );
ui->coverImage->setPixmap( QPixmap(), true );
ui->seekSlider->setVisible( false );
m_sliderTimeLine.stop();
m_sliderTimeLine.setCurrentTime( 0 );
@@ -356,6 +360,8 @@ AudioControls::onPlaybackStopped()
ui->stackedLayout->setCurrentWidget( ui->playPauseButton );
ui->loveButton->setEnabled( false );
ui->loveButton->setVisible( false );
ui->socialButton->setEnabled( false );
ui->socialButton->setVisible( false );
}
@@ -369,7 +375,7 @@ AudioControls::onPlaybackTimer( qint64 msElapsed )
ui->timeLeftLabel->setText( "-" + TomahawkUtils::timeToString( m_currentTrack->duration() - seconds ) );
m_lastTextSecondShown = seconds;
}
//tDebug( LOGEXTRA ) << Q_FUNC_INFO << "msElapsed =" << msElapsed << "and timer current time =" << m_sliderTimeLine.currentTime() << "and m_seekMsecs =" << m_seekMsecs;
if ( msElapsed > 0 && msElapsed != m_lastSliderCheck && m_seekMsecs == -1 && msElapsed - 500 < m_lastSliderCheck )
return;
@@ -386,9 +392,10 @@ AudioControls::onPlaybackTimer( qint64 msElapsed )
if ( sender() != &m_phononTickCheckTimer )
m_phononTickCheckTimer.start( 1000 );
int currentTime = m_sliderTimeLine.currentTime();
if ( m_noTimeChange )
{
if ( m_sliderTimeLine.currentTime() != msElapsed )
if ( currentTime != msElapsed )
{
m_sliderTimeLine.setPaused( true );
m_noTimeChange = false;
@@ -397,12 +404,12 @@ AudioControls::onPlaybackTimer( qint64 msElapsed )
m_sliderTimeLine.resume();
}
}
else if ( m_sliderTimeLine.currentTime() >= msElapsed || m_seekMsecs != -1 )
else if ( currentTime >= msElapsed || m_seekMsecs != -1 )
{
m_sliderTimeLine.setPaused( true );
m_noTimeChange = false;
if ( m_sliderTimeLine.currentTime() == msElapsed )
if ( currentTime == msElapsed )
m_noTimeChange = true;
m_sliderTimeLine.setCurrentTime( msElapsed );
@@ -412,12 +419,10 @@ AudioControls::onPlaybackTimer( qint64 msElapsed )
}
else if ( m_sliderTimeLine.duration() > msElapsed && m_sliderTimeLine.state() == QTimeLine::NotRunning && AudioEngine::instance()->state() == AudioEngine::Playing )
{
ui->seekSlider->setEnabled( AudioEngine::instance()->canSeek() );
m_sliderTimeLine.start();
}
else if ( m_sliderTimeLine.state() == QTimeLine::Paused && AudioEngine::instance()->state() != AudioEngine::Paused )
{
ui->seekSlider->setEnabled( AudioEngine::instance()->canSeek() );
m_sliderTimeLine.resume();
}
@@ -426,13 +431,13 @@ AudioControls::onPlaybackTimer( qint64 msElapsed )
void
AudioControls::onRepeatModeChanged( PlaylistInterface::RepeatMode mode )
AudioControls::onRepeatModeChanged( PlaylistModes::RepeatMode mode )
{
m_repeatMode = mode;
switch ( m_repeatMode )
{
case PlaylistInterface::NoRepeat:
case PlaylistModes::NoRepeat:
{
// switch to RepeatOne
ui->repeatButton->setPixmap( RESPATH "images/repeat-off-rest.png" );
@@ -440,7 +445,7 @@ AudioControls::onRepeatModeChanged( PlaylistInterface::RepeatMode mode )
}
break;
case PlaylistInterface::RepeatOne:
case PlaylistModes::RepeatOne:
{
// switch to RepeatAll
ui->repeatButton->setPixmap( RESPATH "images/repeat-1-on-rest.png" );
@@ -448,7 +453,7 @@ AudioControls::onRepeatModeChanged( PlaylistInterface::RepeatMode mode )
}
break;
case PlaylistInterface::RepeatAll:
case PlaylistModes::RepeatAll:
{
// switch to NoRepeat
ui->repeatButton->setPixmap( RESPATH "images/repeat-all-on-rest.png" );
@@ -467,24 +472,24 @@ AudioControls::onRepeatClicked()
{
switch ( m_repeatMode )
{
case PlaylistInterface::NoRepeat:
case PlaylistModes::NoRepeat:
{
// switch to RepeatOne
ViewManager::instance()->setRepeatMode( PlaylistInterface::RepeatOne );
ViewManager::instance()->setRepeatMode( PlaylistModes::RepeatOne );
}
break;
case PlaylistInterface::RepeatOne:
case PlaylistModes::RepeatOne:
{
// switch to RepeatAll
ViewManager::instance()->setRepeatMode( PlaylistInterface::RepeatAll );
ViewManager::instance()->setRepeatMode( PlaylistModes::RepeatAll );
}
break;
case PlaylistInterface::RepeatAll:
case PlaylistModes::RepeatAll:
{
// switch to NoRepeat
ViewManager::instance()->setRepeatMode( PlaylistInterface::NoRepeat );
ViewManager::instance()->setRepeatMode( PlaylistModes::NoRepeat );
}
break;
@@ -540,7 +545,7 @@ AudioControls::onAlbumClicked()
void
AudioControls::onTrackClicked()
{
ViewManager::instance()->showCurrentTrack();
ViewManager::instance()->show( m_currentTrack->toQuery() );
}
@@ -583,16 +588,24 @@ AudioControls::droppedTracks( QList< query_ptr > tracks )
{
// queue and play the first no matter what
GlobalActionManager::instance()->handlePlayTrack( tracks.first() );
// just queue the rest
for ( int i = 1; i < tracks.size(); i++ )
{
ViewManager::instance()->queue()->model()->append( tracks[ i ] );
}
ViewManager::instance()->queue()->model()->append( tracks );
}
}
void
AudioControls::onSocialButtonClicked()
{
if ( !m_socialWidget.isNull() )
return;
m_socialWidget = new SocialWidget( m_parent );
m_socialWidget.data()->setPosition( m_socialWidget.data()->mapFromGlobal( QCursor::pos() ) );
m_socialWidget.data()->setQuery( m_currentTrack->toQuery() );
m_socialWidget.data()->show();
}
void
AudioControls::onLoveButtonClicked( bool checked )
{

View File

@@ -1,6 +1,7 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
* Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -23,13 +24,14 @@
#include <QtCore/QTimer>
#include <QtCore/QTimeLine>
#include "result.h"
#include "playlistinterface.h"
#include "query.h"
#include "Result.h"
#include "PlaylistInterface.h"
#include "Query.h"
class QDropEvent;
class QDragEnterEvent;
class QDragMoveEvent;
class SocialWidget;
namespace Ui
{
@@ -49,9 +51,9 @@ signals:
void pausePressed();
public slots:
void onRepeatModeChanged( Tomahawk::PlaylistInterface::RepeatMode mode );
void onRepeatModeChanged( Tomahawk::PlaylistModes::RepeatMode mode );
void onShuffleModeChanged( bool enabled );
protected:
void changeEvent( QEvent* e );
void dragEnterEvent ( QDragEnterEvent* );
@@ -60,7 +62,7 @@ protected:
private slots:
void phononTickCheckTimeout();
void onPlaybackStarted( const Tomahawk::result_ptr& result );
void onPlaybackLoading( const Tomahawk::result_ptr& result );
void onPlaybackPaused();
@@ -77,22 +79,24 @@ private slots:
void onArtistClicked();
void onAlbumClicked();
void onTrackClicked();
void onSocialButtonClicked();
void onLoveButtonClicked( bool );
void onAlbumCoverUpdated();
void droppedTracks( QList<Tomahawk::query_ptr> );
void onCoverUpdated();
void onSocialActionsLoaded();
private:
void setAlbumCover();
void setCover();
void setSocialActions();
Ui::AudioControls *ui;
Ui::AudioControls* ui;
QWeakPointer<SocialWidget> m_socialWidget;
Tomahawk::result_ptr m_currentTrack;
Tomahawk::PlaylistInterface::RepeatMode m_repeatMode;
Tomahawk::PlaylistModes::RepeatMode m_repeatMode;
bool m_shuffled;
QTimer m_phononTickCheckTimer;
@@ -101,6 +105,8 @@ private:
qint64 m_lastSliderCheck;
bool m_noTimeChange;
qint64 m_lastTextSecondShown;
QWidget* m_parent;
};
#endif // AUDIOCONTROLS_H

View File

@@ -142,7 +142,7 @@
<number>0</number>
</property>
<item>
<widget class="QLabel" name="coverImage">
<widget class="FadingPixmap" name="coverImage">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -151,14 +151,14 @@
</property>
<property name="minimumSize">
<size>
<width>58</width>
<height>58</height>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>58</width>
<height>58</height>
<width>60</width>
<height>60</height>
</size>
</property>
<property name="alignment">
@@ -177,6 +177,9 @@
<property name="bottomMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="1,0,0">
<property name="topMargin">
@@ -185,6 +188,12 @@
<property name="bottomMargin">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="trackLabelLayout">
<property name="topMargin">
@@ -193,6 +202,15 @@
<property name="bottomMargin">
<number>0</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="spacing">
<number>3</number>
</property>
<item>
<widget class="QueryLabel" name="artistTrackLabel">
<property name="sizePolicy">
@@ -207,9 +225,6 @@
<height>16</height>
</size>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="text">
<string>Artist</string>
</property>
@@ -229,9 +244,6 @@
<height>16</height>
</size>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="text">
<string>Album</string>
</property>
@@ -287,6 +299,22 @@
</property>
</spacer>
</item>
<item>
<widget class="ImageButton" name="socialButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="text">
<string>social</string>
</property>
</widget>
</item>
<item>
<widget class="ImageButton" name="loveButton">
<property name="sizePolicy">
@@ -340,6 +368,15 @@
<property name="leftMargin">
<number>4</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="timeLabel">
<property name="text">
@@ -416,6 +453,9 @@
<property name="rightMargin">
<number>2</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
@@ -554,12 +594,17 @@
<customwidget>
<class>ImageButton</class>
<extends>QPushButton</extends>
<header>widgets/imagebutton.h</header>
<header>widgets/ImageButton.h</header>
</customwidget>
<customwidget>
<class>QueryLabel</class>
<extends>QLabel</extends>
<header>widgets/querylabel.h</header>
<header>widgets/QueryLabel.h</header>
</customwidget>
<customwidget>
<class>FadingPixmap</class>
<extends>QLabel</extends>
<header>widgets/FadingPixmap.h</header>
</customwidget>
</customwidgets>
<resources/>

View File

@@ -13,8 +13,6 @@ SET( QT_USE_QTNETWORK TRUE )
SET( QT_USE_QTXML TRUE )
SET( QT_USE_QTWEBKIT TRUE )
add_definitions( -DQT_SHAREDPOINTER_TRACK_POINTERS )
INCLUDE( ${QT_USE_FILE} )
INCLUDE( AddAppIconMacro )
@@ -37,121 +35,65 @@ ENDIF()
#ENDFOREACH( moddir )
SET( tomahawkSources ${tomahawkSources}
web/api_v1.cpp
web/Api_v1.cpp
musicscanner.cpp
shortcuthandler.cpp
scanmanager.cpp
ubuntuunityhack.cpp
tomahawkapp.cpp
MusicScanner.cpp
ShortcutHandler.cpp
ScanManager.cpp
UbuntuUnityHack.cpp
TomahawkApp.cpp
main.cpp
)
IF(LIBLASTFM_FOUND)
SET(tomahawkSources ${tomahawkSources}
scrobbler.cpp
Scrobbler.cpp
)
ENDIF(LIBLASTFM_FOUND)
SET( tomahawkSourcesGui ${tomahawkSourcesGui}
sourcetree/sourcesmodel.cpp
sourcetree/sourcesproxymodel.cpp
sourcetree/sourcetreeview.cpp
sourcetree/sourcedelegate.cpp
sourcetree/animationhelper.cpp
sourcetree/items/sourcetreeitem.cpp
sourcetree/items/sourceitem.cpp
sourcetree/items/playlistitems.cpp
sourcetree/items/categoryitems.cpp
sourcetree/items/genericpageitems.cpp
sourcetree/items/temporarypageitem.cpp
sourcetree/items/groupitem.cpp
sourcetree/items/historyitem.cpp
sourcetree/SourcesModel.cpp
sourcetree/SourcesProxyModel.cpp
sourcetree/SourceTreeView.cpp
sourcetree/SourceDelegate.cpp
sourcetree/AnimationHelper.cpp
sourcetree/items/SourceTreeItem.cpp
sourcetree/items/SourceItem.cpp
sourcetree/items/PlaylistItems.cpp
sourcetree/items/CategoryItems.cpp
sourcetree/items/GenericPageItems.cpp
sourcetree/items/TemporaryPageItem.cpp
sourcetree/items/GroupItem.cpp
sourcetree/items/HistoryItem.cpp
breakpad/BreakPad.cpp
tomahawktrayicon.cpp
audiocontrols.cpp
settingsdialog.cpp
diagnosticsdialog.cpp
configdelegatebase.cpp
sipconfigdelegate.cpp
resolverconfigdelegate.cpp
settingslistdelegate.cpp
resolversmodel.cpp
tomahawkwindow.cpp
TomahawkTrayIcon.cpp
AudioControls.cpp
SettingsDialog.cpp
DiagnosticsDialog.cpp
SettingsListDelegate.cpp
TomahawkWindow.cpp
LoadXSPFDialog.cpp
SocialWidget.cpp
)
SET( tomahawkHeaders ${tomahawkHeaders}
tomahawkapp.h
web/api_v1.h
musicscanner.h
scanmanager.h
ubuntuunityhack.h
shortcuthandler.h
)
IF(LIBLASTFM_FOUND)
SET(tomahawkHeaders ${tomahawkHeaders}
scrobbler.h
)
ENDIF(LIBLASTFM_FOUND)
IF(LIBATTICA_FOUND)
SET( tomahawkSourcesGui ${tomahawkSourcesGui} GetNewStuffDialog.cpp GetNewStuffDelegate.cpp GetNewStuffModel.cpp )
SET( tomahawkHeadersGui ${tomahawkHeadersGui} GetNewStuffDialog.h GetNewStuffDelegate.h GetNewStuffModel.h )
INCLUDE_DIRECTORIES( ${LIBATTICA_INCLUDE_DIR} )
ENDIF(LIBATTICA_FOUND)
SET( tomahawkHeadersGui ${tomahawkHeadersGui}
sourcetree/sourcesmodel.h
sourcetree/sourcesproxymodel.h
sourcetree/sourcetreeview.h
sourcetree/sourcedelegate.h
sourcetree/animationhelper.h
sourcetree/items/sourcetreeitem.h
sourcetree/items/sourceitem.h
sourcetree/items/playlistitems.h
sourcetree/items/categoryitems.h
sourcetree/items/genericpageitems.h
sourcetree/items/temporarypageitem.h
sourcetree/items/groupitem.h
sourcetree/items/historyitem.h
tomahawktrayicon.h
audiocontrols.h
settingsdialog.h
diagnosticsdialog.h
configdelegatebase.h
resolverconfigdelegate.h
sipconfigdelegate.h
settingslistdelegate.h
resolversmodel.h
delegateconfigwrapper.h
tomahawkwindow.h
LoadXSPFDialog.h
)
IF( WITH_BREAKPAD )
LIST(APPEND tomahawkSourcesGui breakpad/BreakPad.cpp)
ENDIF()
SET( tomahawkUI ${tomahawkUI}
tomahawkwindow.ui
diagnosticsdialog.ui
stackedsettingsdialog.ui
proxydialog.ui
TomahawkWindow.ui
DiagnosticsDialog.ui
StackedSettingsDialog.ui
ProxyDialog.ui
audiocontrols.ui
GetNewStuffDialog.ui
AudioControls.ui
LoadXSPFDialog.ui
SocialWidget.ui
)
INCLUDE_DIRECTORIES(
.
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_BINARY_DIR}/thirdparty/liblastfm2/src
audio
database
@@ -159,7 +101,6 @@ INCLUDE_DIRECTORIES(
network
sourcetree
topbar
utils
libtomahawk
mac
@@ -171,8 +112,11 @@ INCLUDE_DIRECTORIES(
${TAGLIB_INCLUDES}
${PHONON_INCLUDES}
${QJSON_INCLUDE_DIR}
${LIBATTICA_INCLUDE_DIR}
${LIBECHONEST_INCLUDE_DIR}
${LIBECHONEST_INCLUDE_DIR}/..
${LIBLASTFM_INCLUDE_DIRS}
${LIBLASTFM_INCLUDE_DIRS}/..
)
SET( OS_SPECIFIC_LINK_LIBRARIES "" )
@@ -187,42 +131,38 @@ ENDIF( UNIX )
IF( APPLE )
INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/thirdparty/SPMediaKeyTap )
SET( tomahawkHeaders ${tomahawkHeaders} mac/tomahawkapp_mac.h mac/macshortcuthandler.h )
SET( tomahawkSources ${tomahawkSources} mac/tomahawkapp_mac.mm mac/macshortcuthandler.cpp )
IF(HAVE_SPARKLE)
SET( tomahawkHeaders ${tomahawkHeaders} ${SPARKLE}/Headers )
ENDIF(HAVE_SPARKLE)
SET( tomahawkSources ${tomahawkSources} mac/TomahawkApp_Mac.mm mac/MacShortcutHandler.cpp )
ENDIF( APPLE )
IF(GLOOX_FOUND)
INCLUDE_DIRECTORIES( ${GLOOX_INCLUDE_DIR} )
SET( tomahawkHeaders ${tomahawkHeaders} xmppbot/xmppbot.h )
SET( tomahawkSources ${tomahawkSources} xmppbot/xmppbot.cpp )
ENDIF(GLOOX_FOUND)
ADD_SUBDIRECTORY( sip )
ADD_SUBDIRECTORY( accounts )
ADD_SUBDIRECTORY( infoplugins )
IF(QCA2_FOUND)
INCLUDE_DIRECTORIES( ${QCA2_INCLUDE_DIR} )
ENDIF(QCA2_FOUND)
INCLUDE(GNUInstallDirs)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.h.in
${CMAKE_CURRENT_BINARY_DIR}/config.h)
# translations
include( ${CMAKE_SOURCE_DIR}/lang/translations.cmake )
add_tomahawk_translations(ar bg ca de en es fr ja pl pt_BR ru sv tr zh_CN zh_TW)
SET( final_src ${final_src} ${tomahawkMoc} ${tomahawkSources} ${tomahawkHeaders} ${trans_outfile})
SET( final_src ${final_src} ${tomahawkMoc} ${tomahawkSources} ${trans_outfile})
IF( BUILD_GUI )
LIST(APPEND tomahawkHeaders ${tomahawkHeadersGui})
LIST(APPEND tomahawkSources ${tomahawkSourcesGui})
qt4_wrap_ui( tomahawkUI_H ${tomahawkUI} )
IF( WITH_CRASHREPORTER )
ADD_SUBDIRECTORY( breakpad/CrashReporter )
ENDIF()
ENDIF()
kde4_add_app_icon( tomahawkSources "${CMAKE_SOURCE_DIR}/data/icons/tomahawk-icon-*.png" )
qt4_add_resources( RC_SRCS "../resources.qrc" )
qt4_wrap_cpp( tomahawkMoc ${tomahawkHeaders} )
SET( final_src ${final_src} ${tomahawkUI_H} ${tomahawkMoc} ${tomahawkSources} ${RC_SRCS} )
IF( UNIX AND NOT APPLE )
@@ -230,28 +170,28 @@ IF( UNIX AND NOT APPLE )
ENDIF( UNIX AND NOT APPLE )
IF( APPLE )
ADD_EXECUTABLE( tomahawk MACOSX_BUNDLE ${final_src} )
SET_TARGET_PROPERTIES(tomahawk PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_BINARY_DIR}/Info.plist"
)
SET_TARGET_PROPERTIES(tomahawk PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_BINARY_DIR}/Info.plist")
ENDIF( APPLE )
IF( WIN32 )
ADD_EXECUTABLE( tomahawk WIN32 ${final_src} )
ENDIF( WIN32 )
SET_TARGET_PROPERTIES(tomahawk PROPERTIES AUTOMOC TRUE)
MESSAGE( STATUS "OS_SPECIFIC_LINK_LIBRARIES: ${OS_SPECIFIC_LINK_LIBRARIES}" )
SET(LINK_LIBRARIES "")
IF(LIBLASTFM_FOUND)
SET(LINK_LIBRARIES ${LINK_LIBRARIES} tomahawk_lastfm2 )
SET( LINK_LIBRARIES ${LINK_LIBRARIES} ${LIBLASTFM_LIBRARIES} )
ENDIF(LIBLASTFM_FOUND)
IF(GLOOX_FOUND)
SET(LINK_LIBRARIES ${LINK_LIBRARIES} ${GLOOX_LIBRARIES} )
ENDIF(GLOOX_FOUND)
IF(QCA2_FOUND)
SET(LINK_LIBRARIES ${LINK_LIBRARIES} ${QCA2_LIBRARIES} )
SET( LINK_LIBRARIES ${LINK_LIBRARIES} ${QCA2_LIBRARIES} )
ENDIF(QCA2_FOUND)
IF(WITH_BREAKPAD)
SET( LINK_LIBRARIES ${LINK_LIBRARIES} tomahawk_breakpad )
ENDIF()
TARGET_LINK_LIBRARIES( tomahawk
tomahawk_breakpad
${LINK_LIBRARIES}
${TOMAHAWK_LIBRARIES}
${PHONON_LIBS}

View File

@@ -17,9 +17,12 @@
#cmakedefine LEOPARD
#cmakedefine HAVE_SPARKLE
#cmakedefine WITH_BREAKPAD
#cmakedefine WITH_CRASHREPORTER
#cmakedefine WITH_BINARY_ATTICA
#cmakedefine LIBLASTFM_FOUND
#cmakedefine GLOOX_FOUND
#cmakedefine QCA2_FOUND
#cmakedefine LIBATTICA_FOUND
#endif // CONFIG_H_IN

View File

@@ -19,7 +19,7 @@
#ifndef CONFIGDELEGATEBASE_H
#define CONFIGDELEGATEBASE_H
#include "dllmacro.h"
#include "DllMacro.h"
#include <QStyledItemDelegate>
@@ -36,16 +36,15 @@ public:
virtual bool editorEvent ( QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index );
// if you want to use a checkbox, you need to have this say where to paint it
virtual QRect checkRectForIndex( const QStyleOptionViewItem& option, const QModelIndex& idx ) const = 0;
virtual QRect checkRectForIndex( const QStyleOptionViewItem& option, const QModelIndex& idx, int role ) const = 0;
// if you want to use a config wrench, you need to have this say where to paint it
virtual QRect configRectForIndex( const QStyleOptionViewItem& option, const QModelIndex& idx ) const = 0;
virtual QList<int> extraCheckRoles() const { return QList<int>(); }
signals:
void configPressed( const QModelIndex& idx );
protected:
void drawCheckBox( QStyleOptionViewItemV4& opt, QPainter* p, const QWidget* w ) const;
void drawConfigWrench( QPainter* painter, QStyleOptionViewItemV4& option, QStyleOptionToolButton& topt ) const;
private:
QModelIndex m_configPressed;

262
src/DiagnosticsDialog.cpp Normal file
View File

@@ -0,0 +1,262 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2011, Dominik Schmidt <dev@dominik-schmidt.de>
* Copyright 2011, Jeff Mitchell <jeff@tomahawk-player.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Tomahawk is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#include "DiagnosticsDialog.h"
#include "ui_DiagnosticsDialog.h"
#include "config.h"
#include "accounts/AccountManager.h"
#include "network/Servent.h"
#include "SourceList.h"
#include <QLabel>
#include <QTextEdit>
#include <QDialogButtonBox>
#include <QPushButton>
#include <QApplication>
#include <QClipboard>
#include <QDebug>
#include "utils/Logger.h"
#include "sip/SipHandler.h"
DiagnosticsDialog::DiagnosticsDialog( QWidget *parent )
: QDialog( parent )
, ui( new Ui::DiagnosticsDialog )
{
ui->setupUi( this );
connect( ui->clipboardButton, SIGNAL( clicked() ), this, SLOT( copyToClipboard() ) );
connect( ui->buttonBox, SIGNAL( rejected() ), this, SLOT( reject() ) );
ui->scrollAreaWidgetContents->setLayout( new QVBoxLayout() );
updateLogView();
}
void
DiagnosticsDialog::updateLogView()
{
QString log;
log.append(
QString("TOMAHAWK DIAGNOSTICS LOG -%1 \n\n")
.arg( QDateTime::currentDateTime().toString() )
);
// network
log.append( "TOMAHAWK-VERSION: " TOMAHAWK_VERSION "\n\n" );
// network
log.append( "NETWORK:\n General:\n" );
if ( Servent::instance()->visibleExternally() )
{
log.append(
QString(
" visible: true\n"
" host: %1\n"
" port: %2\n"
"\n"
).arg( Servent::instance()->externalAddress() )
.arg( Servent::instance()->externalPort() )
);
}
else
{
log.append( " visible: false" );
}
ui->scrollAreaWidgetContents->layout()->addWidget( new QLabel( log, this ) );
// Peers / Accounts, TODO
ui->scrollAreaWidgetContents->layout()->addWidget( new QLabel( "ACCOUNTS:\n", this ) );
const QList< Tomahawk::source_ptr > sources = SourceList::instance()->sources( true );
const QList< Tomahawk::Accounts::Account* > accounts = Tomahawk::Accounts::AccountManager::instance()->accounts( Tomahawk::Accounts::SipType );
foreach ( Tomahawk::Accounts::Account* account, accounts )
{
Q_ASSERT( account && account->sipPlugin() );
if ( !account || !account->sipPlugin() )
continue;
connect( account, SIGNAL( connectionStateChanged( Tomahawk::Accounts::Account::ConnectionState ) ),
SLOT( onAccountConnectionStateChanged( Tomahawk::Accounts::Account::ConnectionState ) ) );
connect( account, SIGNAL( error( int, QString ) ),
SLOT( onAccountError( int, QString ) ) );
connect( account->sipPlugin(), SIGNAL( peerOnline( QString ) ), SLOT( onPeerOnline( QString ) ) );
connect( account->sipPlugin(), SIGNAL( peerOffline( QString ) ), SLOT( onPeerOffline( QString ) ) );
connect( account->sipPlugin(), SIGNAL( sipInfoReceived( QString, SipInfo ) ), SLOT( onSipInfoReceived( QString, SipInfo ) ) );
connect( account->sipPlugin(), SIGNAL( softwareVersionReceived( QString, QString ) ), SLOT( onSoftwareVersionReceived( QString, QString ) ) );
QLabel* accountInfoLabel = new QLabel( this );
ui->scrollAreaWidgetContents->layout()->addWidget( accountInfoLabel );
m_accountDescriptionStore.insert( account, accountInfoLabel );
updateAccountLabel( account );
}
}
void
DiagnosticsDialog::copyToClipboard()
{
QString log;
foreach ( QLabel* label, m_accountDescriptionStore.values() )
{
log += label->text() + "\n\n";
}
QApplication::clipboard()->setText( log );
}
void
DiagnosticsDialog::onAccountConnectionStateChanged( Tomahawk::Accounts::Account::ConnectionState /* state */ )
{
Tomahawk::Accounts::Account* account = qobject_cast< Tomahawk::Accounts::Account* >( sender() );
Q_ASSERT( account );
updateAccountLabel( account );
}
void
DiagnosticsDialog::onAccountError( int /* errorId */ , QString /* errorString */ )
{
Tomahawk::Accounts::Account* account = qobject_cast< Tomahawk::Accounts::Account* >( sender() );
Q_ASSERT( account );
}
void
DiagnosticsDialog::onPeerOnline( const QString& )
{
Tomahawk::Accounts::Account* account = qobject_cast< SipPlugin* >( sender() )->account();
Q_ASSERT( account );
updateAccountLabel( account );
}
void
DiagnosticsDialog::onPeerOffline( const QString& )
{
Tomahawk::Accounts::Account* account = qobject_cast< SipPlugin* >( sender() )->account();
Q_ASSERT( account );
updateAccountLabel( account );
}
void
DiagnosticsDialog::onSipInfoReceived( const QString& /* peerId */ , const SipInfo& /* info */ )
{
Tomahawk::Accounts::Account* account = qobject_cast< SipPlugin* >( sender() )->account();
Q_ASSERT( account );
updateAccountLabel( account );
}
void
DiagnosticsDialog::onSoftwareVersionReceived( const QString& /* peerId */ , const QString& /* versionString */ )
{
Tomahawk::Accounts::Account* account = qobject_cast< SipPlugin* >( sender() )->account();
Q_ASSERT( account );
updateAccountLabel( account );
}
void
DiagnosticsDialog::updateAccountLabel( Tomahawk::Accounts::Account* account )
{
QLabel* accountInfoLabel = m_accountDescriptionStore.value( account );
if ( accountInfoLabel )
{
QString accountInfo;
QString stateString;
switch( account->connectionState() )
{
case Tomahawk::Accounts::Account::Connecting:
stateString = "Connecting";
break;
case Tomahawk::Accounts::Account::Connected:
stateString = "Connected";
break;
case Tomahawk::Accounts::Account::Disconnected:
stateString = "Disconnected";
break;
case Tomahawk::Accounts::Account::Disconnecting:
stateString = "Disconnecting";
}
accountInfo.append(
QString( " %2 (%1): %3 (%4)\n" )
.arg( account->accountServiceName() )
.arg( account->sipPlugin()->friendlyName() )
.arg( account->accountFriendlyName())
.arg( stateString )
);
foreach( const QString& peerId, account->sipPlugin()->peersOnline() )
{
QString versionString = SipHandler::instance()->versionString( peerId );
SipInfo sipInfo = SipHandler::instance()->sipInfo( peerId );
if ( !sipInfo.isValid() )
{
accountInfo.append(
QString(" %1: %2 %3" /*"(%4)"*/ "\n")
.arg( peerId )
.arg( "sipinfo invalid" )
.arg( versionString )
// .arg( connected ? "connected" : "not connected")
);
}
else if ( sipInfo.isVisible() )
{
accountInfo.append(
QString(" %1: %2:%3 %4" /*" (%5)"*/ "\n")
.arg( peerId )
.arg( sipInfo.host().hostName() )
.arg( sipInfo.port() )
.arg( versionString )
// .arg( connected ? "connected" : "not connected")
);
}
else
{
accountInfo.append(
QString(" %1: visible: false %2" /*" (%3)"*/ "\n")
.arg( peerId )
.arg( versionString )
// .arg( connected ? "connected" : "not connected")
);
}
}
accountInfo.append( "\n" );
accountInfoLabel->setText( accountInfo );
}
}

View File

@@ -19,7 +19,15 @@
#ifndef DIGANOSTICSDIALOG_H
#define DIAGNOSTICSDIALOG_H
#include "accounts/Account.h"
#include <QDialog>
#include <QMap>
class QLabel;
class SipInfo;
namespace Ui
{
@@ -37,8 +45,19 @@ public:
private slots:
void updateLogView();
void copyToClipboard();
void onAccountConnectionStateChanged( Tomahawk::Accounts::Account::ConnectionState state );
void onAccountError( int errorId, QString errorString );
void onPeerOnline( const QString& );
void onPeerOffline( const QString& );
void onSipInfoReceived( const QString& peerId, const SipInfo& info );
void onSoftwareVersionReceived( const QString& peerId, const QString& versionString );
void updateAccountLabel( Tomahawk::Accounts::Account* );
private:
QMap< Tomahawk::Accounts::Account*, QLabel* > m_accountDescriptionStore;
Ui::DiagnosticsDialog* ui;
};

View File

@@ -26,19 +26,26 @@
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTextEdit" name="logView"/>
<widget class="QScrollArea" name="scrollArea">
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>708</width>
<height>386</height>
</rect>
</property>
</widget>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="updateButton">
<property name="text">
<string>Update</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="clipboardButton">
<property name="text">

View File

@@ -1,323 +0,0 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Leo Franchi <lfranchi@kde.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Tomahawk is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#include "GetNewStuffDelegate.h"
#include "GetNewStuffModel.h"
#include "utils/tomahawkutils.h"
#include "utils/logger.h"
#include <QtGui/QPainter>
#include <QApplication>
#include <QMouseEvent>
#include "AtticaManager.h"
#define PADDING 4
#define PADDING_BETWEEN_STARS 2
#define STAR_SIZE 12
#ifdef Q_WS_MAC
#define SIZEHINT_HEIGHT 70
#else
#define SIZEHINT_HEIGHT 60
#endif
GetNewStuffDelegate::GetNewStuffDelegate( QObject* parent )
: QStyledItemDelegate ( parent )
, m_widestTextWidth( 0 )
, m_hoveringOver( -1 )
{
m_defaultCover.load( RESPATH "images/sipplugin-online.png" );
m_ratingStarPositive.load( RESPATH "images/starred.png" );
m_ratingStarNegative.load( RESPATH "images/star-unstarred.png" );
m_onHoverStar.load( RESPATH "images/star-hover.png" );
m_ratingStarPositive = m_ratingStarPositive.scaled( STAR_SIZE, STAR_SIZE, Qt::KeepAspectRatio, Qt::SmoothTransformation );
m_ratingStarNegative = m_ratingStarNegative.scaled( STAR_SIZE, STAR_SIZE, Qt::KeepAspectRatio, Qt::SmoothTransformation );
m_onHoverStar = m_onHoverStar.scaled( STAR_SIZE, STAR_SIZE, Qt::KeepAspectRatio, Qt::SmoothTransformation );
const int w = SIZEHINT_HEIGHT - 2*PADDING;
m_defaultCover = m_defaultCover.scaled( w, w, Qt::KeepAspectRatio, Qt::SmoothTransformation );
// save the widest wifth
QFont f( QApplication::font() );
f.setPointSize( f.pointSize() - 1 );
QFontMetrics fm( f );
QStringList l = QStringList() << tr( "Installed" ) << tr( "Installing" ) << tr( "Failed" ) << tr( "Uninstalling" );
foreach ( const QString& str, l )
{
if ( fm.width( str ) > m_widestTextWidth )
m_widestTextWidth = fm.width( str );
}
}
void
GetNewStuffDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
QStyleOptionViewItemV4 opt = option;
initStyleOption( &opt, index );
QApplication::style()->drawPrimitive( QStyle::PE_PanelItemViewItem, &opt, painter, opt.widget );
painter->setRenderHint( QPainter::Antialiasing );
QFont titleFont = opt.font;
titleFont.setBold( true );
titleFont.setPointSize( titleFont.pointSize() + 2 );
QFontMetrics titleMetrics( titleFont );
QFont authorFont = opt.font;
authorFont.setItalic( true );
authorFont.setPointSize( authorFont.pointSize() - 1 );
QFontMetrics authorMetrics( authorFont );
QFont descFont = authorFont;
descFont.setItalic( false );
QFontMetrics descMetrics( descFont );
QFont installFont = opt.font;
installFont.setPointSize( installFont.pointSize() - 1 );
QFontMetrics installMetrics( descFont );
const int height = opt.rect.height();
const int center = height / 2 + opt.rect.top();
// Pixmap
QPixmap p = index.data( Qt::DecorationRole ).value< QPixmap >();
const int pixmapWidth = height - 2*PADDING;
QRect pixmapRect( PADDING, PADDING + opt.rect.top(), pixmapWidth, pixmapWidth );
if ( p.isNull() ) // default image... TODO
p = m_defaultCover;
else
p = p.scaled( pixmapRect.size(), Qt::KeepAspectRatio, Qt::SmoothTransformation );
painter->drawPixmap( pixmapRect, p );
// Go from right edge now, stars, install button, and downloaded info
// install / status button
AtticaManager::ResolverState state = static_cast< AtticaManager::ResolverState >( index.data( GetNewStuffModel::StateRole ).toInt() );
QString actionText;
switch( state )
{
case AtticaManager::Uninstalled:
actionText = tr( "Install" );
break;
case AtticaManager::Installing:
actionText = tr( "Installing" );
break;
case AtticaManager::Upgrading:
actionText = tr( "Upgrading" );
break;
case AtticaManager::Failed:
actionText = tr( "Failed" );
break;
case AtticaManager::Installed:
actionText = tr( "Uninstall" );
break;
case AtticaManager::NeedsUpgrade:
actionText = tr( "Upgrade" );
break;
}
const int btnWidth = m_widestTextWidth + 7;
const int leftEdge = opt.rect.width() - PADDING - btnWidth - 3;
const QRect btnRect( leftEdge, center - ( installMetrics.height() + 4 ) / 2, btnWidth, installMetrics.height() + 4 );
m_cachedButtonRects[ QPair<int, int>(index.row(), index.column()) ] = btnRect;
QPen saved = painter->pen();
painter->setPen( opt.palette.color( QPalette::Active, QPalette::AlternateBase ) );
QPainterPath btnPath;
const int radius = 3;
//btnPath.addRoundedRect( btnRect, 3, 3 );
// draw top half gradient
const int btnCenter = btnRect.bottom() - ( btnRect.height() / 2 );
btnPath.moveTo( btnRect.left(), btnCenter );
btnPath.lineTo( btnRect.left(), btnRect.top() + radius );
btnPath.quadTo( QPoint( btnRect.topLeft() ), QPoint( btnRect.left() + radius, btnRect.top() ) );
btnPath.lineTo( btnRect.right() - radius, btnRect.top() );
btnPath.quadTo( QPoint( btnRect.topRight() ), QPoint( btnRect.right(), btnRect.top() + radius ) );
btnPath.lineTo( btnRect.right(),btnCenter );
btnPath.lineTo( btnRect.left(), btnCenter );
QLinearGradient g;
g.setColorAt( 0, QColor(54, 127, 211) );
g.setColorAt( 0.5, QColor(43, 104, 182) );
//painter->setPen( bg.darker() );
painter->fillPath( btnPath, g );
//painter->drawPath( btnPath );
btnPath = QPainterPath();
btnPath.moveTo( btnRect.left(), btnCenter );
btnPath.lineTo( btnRect.left(), btnRect.bottom() - radius );
btnPath.quadTo( QPoint( btnRect.bottomLeft() ), QPoint( btnRect.left() + radius, btnRect.bottom() ) );
btnPath.lineTo( btnRect.right() - radius, btnRect.bottom() );
btnPath.quadTo( QPoint( btnRect.bottomRight() ), QPoint( btnRect.right(), btnRect.bottom() - radius ) );
btnPath.lineTo( btnRect.right(), btnCenter );
btnPath.lineTo( btnRect.left(), btnCenter );
g.setColorAt( 0, QColor(34, 85, 159) );
g.setColorAt( 0.5, QColor(35, 79, 147) );
painter->fillPath( btnPath, g );
painter->setFont( installFont );
painter->drawText( btnRect, Qt::AlignCenter, actionText );
painter->setPen( saved );
// rating stars
int rating = index.data( GetNewStuffModel::RatingRole ).toInt();
const int ratingWidth = 5 * ( m_ratingStarPositive.width() + PADDING_BETWEEN_STARS );
int runningEdge = ( btnRect.right() - btnRect.width() / 2 ) - ratingWidth / 2;
for ( int i = 1; i < 6; i++ )
{
QRect r( runningEdge, btnRect.top() - m_ratingStarPositive.height() - PADDING, m_ratingStarPositive.width(), m_ratingStarPositive.height() );
if ( i == 1 )
m_cachedStarRects[ QPair<int, int>(index.row(), index.column()) ] = r;
const bool userHasRated = index.data( GetNewStuffModel::UserHasRatedRole ).toBool();
if ( !userHasRated && // Show on-hover animation if the user hasn't rated it yet, and is hovering over it
m_hoveringOver > -1 &&
m_hoveringItem == index )
{
if ( i <= m_hoveringOver ) // positive star
painter->drawPixmap( r, m_onHoverStar );
else
painter->drawPixmap( r, m_ratingStarNegative );
}
else
{
if ( i <= rating ) // positive or rated star
{
if ( userHasRated )
painter->drawPixmap( r, m_onHoverStar );
else
painter->drawPixmap( r, m_ratingStarPositive );
}
else
painter->drawPixmap( r, m_ratingStarNegative );
}
runningEdge += m_ratingStarPositive.width() + PADDING_BETWEEN_STARS;
}
// downloaded num times, underneath button
QString count = tr( "%1 downloads" ).arg( index.data( GetNewStuffModel::DownloadCounterRole ).toInt() );
const QRect countRect( btnRect.left(), btnRect.bottom() + PADDING, btnRect.width(), opt.rect.bottom() - PADDING - btnRect.bottom() );
QFont countFont = descFont;
countFont.setPointSize( countFont.pointSize() - 2 );
countFont.setBold( true );
painter->setFont( countFont );
painter->drawText( countRect, Qt::AlignCenter | Qt::TextWordWrap, count );
// author and version
QString author = index.data( GetNewStuffModel::AuthorRole ).toString();
const int authorWidth = authorMetrics.width( author );
const int topTextLine = opt.rect.top() + PADDING;
const QRect authorRect( btnRect.x() - 3*PADDING - authorWidth, topTextLine, authorWidth + 6, authorMetrics.height() );
painter->setFont( authorFont );
painter->drawText( authorRect, Qt::AlignCenter, author );
const QRect versionRect = authorRect.translated( 0, authorRect.height() );
QString version = index.data( GetNewStuffModel::VersionRole ).toString();
painter->drawText( versionRect, Qt::AlignCenter, version );
// title
QString title = index.data( Qt::DisplayRole ).toString();
const int rightTitleEdge = authorRect.left() - PADDING;
const int leftTitleEdge = pixmapRect.right() + PADDING;
const QRect textRect( leftTitleEdge, topTextLine, rightTitleEdge - leftTitleEdge, versionRect.bottom() - opt.rect.top() - PADDING );
painter->setFont( titleFont );
painter->drawText( textRect, Qt::AlignVCenter | Qt::AlignLeft, title );
// description
QString desc = index.data( GetNewStuffModel::DescriptionRole ).toString();
const int descWidth = btnRect.left() - leftTitleEdge - PADDING;
const QRect descRect( leftTitleEdge, versionRect.bottom(), descWidth, opt.rect.bottom() - versionRect.bottom() + PADDING );
painter->setFont( descFont );
painter->drawText( descRect, Qt::AlignLeft | Qt::TextWordWrap, desc );
}
QSize
GetNewStuffDelegate::sizeHint( const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
Q_UNUSED( option );
Q_UNUSED( index );
return QSize( 200, SIZEHINT_HEIGHT );
}
bool
GetNewStuffDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index )
{
Q_UNUSED( option );
if ( event->type() != QEvent::MouseButtonRelease &&
event->type() != QEvent::MouseMove )
return false;
if ( event->type() == QEvent::MouseButtonRelease && m_cachedButtonRects.contains( QPair<int, int>( index.row(), index.column() ) ) )
{
QRect rect = m_cachedButtonRects[ QPair<int, int>( index.row(), index.column() ) ];
QMouseEvent* me = static_cast< QMouseEvent* >( event );
if ( rect.contains( me->pos() ) )
{
model->setData( index, true );
return true;
}
}
if ( m_cachedStarRects.contains( QPair<int, int>( index.row(), index.column() ) ) )
{
QRect fullStars = m_cachedStarRects[ QPair<int, int>( index.row(), index.column() ) ];
const int starsWidth = 5 * ( m_ratingStarPositive.width() + PADDING_BETWEEN_STARS );
fullStars.setWidth( starsWidth );
QMouseEvent* me = static_cast< QMouseEvent* >( event );
if ( fullStars.contains( me->pos() ) )
{
const int eachStar = starsWidth / 5;
const int clickOffset = me->pos().x() - fullStars.x();
const int whichStar = (clickOffset / eachStar) + 1;
if ( event->type() == QEvent::MouseButtonRelease )
{
model->setData( index, whichStar, GetNewStuffModel::RatingRole );
}
else if ( event->type() == QEvent::MouseMove )
{
// 0-indexed
m_hoveringOver = whichStar;
m_hoveringItem = index;
}
return true;
}
}
if ( m_hoveringOver > -1 )
{
emit update( m_hoveringItem );
m_hoveringOver = -1;
m_hoveringItem = QPersistentModelIndex();
}
return false;
}

View File

@@ -1,50 +0,0 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Leo Franchi <lfranchi@kde.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Tomahawk is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GETNEWSTUFFDELEGATE_H
#define GETNEWSTUFFDELEGATE_H
#include <QStyledItemDelegate>
class
GetNewStuffDelegate : public QStyledItemDelegate
{
Q_OBJECT
public:
explicit GetNewStuffDelegate( QObject* parent = 0 );
virtual void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const;
virtual QSize sizeHint( const QStyleOptionViewItem& option, const QModelIndex& index ) const;
signals:
void update( const QModelIndex& idx );
protected:
virtual bool editorEvent( QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index );
private:
QPixmap m_defaultCover, m_onHoverStar, m_ratingStarPositive, m_ratingStarNegative;
int m_widestTextWidth;
int m_hoveringOver;
QPersistentModelIndex m_hoveringItem;
mutable QHash< QPair<int, int>, QRect > m_cachedButtonRects;
mutable QHash< QPair<int, int>, QRect > m_cachedStarRects;
};
#endif // GETNEWSTUFFDELEGATE_H

View File

@@ -1,54 +0,0 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2011, Leo Franchi <lfranchi@kde.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Tomahawk is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#include "GetNewStuffDialog.h"
#include "ui_GetNewStuffDialog.h"
#include "GetNewStuffDelegate.h"
#include "GetNewStuffModel.h"
GetNewStuffDialog::GetNewStuffDialog( QWidget* parent, Qt::WindowFlags f )
: QDialog( parent, f )
, ui( new Ui::GetNewStuffDialog )
, m_model( new GetNewStuffModel( this ) )
{
ui->setupUi( this );
ui->listView->setModel( m_model );
GetNewStuffDelegate* del = new GetNewStuffDelegate( ui->listView );
connect( del, SIGNAL( update( QModelIndex ) ), ui->listView, SLOT( update( QModelIndex ) ) );
ui->listView->setItemDelegate( del );
ui->listView->setVerticalScrollMode( QAbstractItemView::ScrollPerPixel );
ui->listView->setMouseTracking( true );
setMinimumSize( 560, 350 );
#ifdef Q_WS_MAC
setMaximumSize( 560, 350 );
setSizeGripEnabled( false );
ui->listView->setAttribute( Qt::WA_MacShowFocusRect, false );
#endif
}
GetNewStuffDialog::~GetNewStuffDialog()
{
delete ui;
}

View File

@@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GetNewStuffDialog</class>
<widget class="QDialog" name="GetNewStuffDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>449</width>
<height>282</height>
</rect>
</property>
<property name="windowTitle">
<string>Download New Resolvers</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QListView" name="listView"/>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>GetNewStuffDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>GetNewStuffDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -1,156 +0,0 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Leo Franchi <lfranchi@kde.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Tomahawk is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#include "GetNewStuffModel.h"
#include "utils/tomahawkutils.h"
#include "utils/logger.h"
#include <QPixmap>
#include <QUrl>
#include "AtticaManager.h"
GetNewStuffModel::GetNewStuffModel( QObject* parent )
: QAbstractListModel ( parent )
{
if ( AtticaManager::instance()->resolversLoaded() )
m_contentList = AtticaManager::instance()->resolvers();
connect( AtticaManager::instance(), SIGNAL( resolversReloaded( Attica::Content::List ) ), this, SLOT( resolversReloaded( Attica::Content::List ) ) );
connect( AtticaManager::instance(), SIGNAL( resolverStateChanged( QString ) ), this, SLOT( resolverStateChanged( QString ) ) );
}
GetNewStuffModel::~GetNewStuffModel()
{
}
void
GetNewStuffModel::resolversReloaded( const Attica::Content::List& resolvers )
{
beginResetModel();
m_contentList = resolvers;
endResetModel();
}
void
GetNewStuffModel::resolverStateChanged( const QString& resolverId )
{
for ( int i = 0; i < m_contentList.count(); i++ )
{
const Attica::Content resolver = m_contentList[ i ];
if ( resolver.id() == resolverId )
{
QModelIndex idx = index( i, 0, QModelIndex() );
emit dataChanged( idx, idx );
}
}
}
QVariant
GetNewStuffModel::data( const QModelIndex& index, int role ) const
{
if ( !index.isValid() || !hasIndex( index.row(), index.column(), index.parent() ) )
return QVariant();
Attica::Content resolver = m_contentList[ index.row() ];
switch ( role )
{
case Qt::DisplayRole:
return resolver.name();
case Qt::DecorationRole:
return QVariant::fromValue< QPixmap >( AtticaManager::instance()->iconForResolver( resolver ) );
case DownloadUrlRole:
// TODO
return QUrl();
case RatingRole:
return resolver.rating() / 20; // rating is out of 100
case DownloadCounterRole:
return resolver.downloads();
case VersionRole:
return resolver.version();
case DescriptionRole:
return resolver.description();
case TypeRole:
return ResolverType;
case AuthorRole:
return resolver.author();
case StateRole:
return (int)AtticaManager::instance()->resolverState( resolver );
case UserHasRatedRole:
return AtticaManager::instance()->userHasRated( resolver );
}
return QVariant();
}
int
GetNewStuffModel::rowCount( const QModelIndex& parent ) const
{
Q_UNUSED( parent );
return m_contentList.count();
}
bool
GetNewStuffModel::setData( const QModelIndex &index, const QVariant &value, int role )
{
Q_UNUSED( value );
if ( !hasIndex( index.row(), index.column(), index.parent() ) )
return false;
Attica::Content resolver = m_contentList[ index.row() ];
AtticaManager::ResolverState state = AtticaManager::instance()->resolverState( resolver );
if ( role == Qt::EditRole )
{
switch( state )
{
case AtticaManager::Uninstalled:
// install
AtticaManager::instance()->installResolver( resolver );
break;
case AtticaManager::Installing:
case AtticaManager::Upgrading:
// Do nothing, busy
break;
case AtticaManager::Installed:
// Uninstall
AtticaManager::instance()->uninstallResolver( resolver );
break;
case AtticaManager::NeedsUpgrade:
AtticaManager::instance()->upgradeResolver( resolver );
break;
default:
//FIXME -- this handles e.g. Failed
break;
};
} else if ( role == RatingRole )
{
// For now only allow rating if a resolver is installed!
if ( state != AtticaManager::Installed && state != AtticaManager::NeedsUpgrade )
return false;
if ( AtticaManager::instance()->userHasRated( resolver ) )
return false;
m_contentList[ index.row() ].setRating( value.toInt() * 20 );
AtticaManager::instance()->uploadRating( m_contentList[ index.row() ] );
}
emit dataChanged( index, index );
return true;
}

View File

@@ -1,64 +0,0 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Leo Franchi <lfranchi@kde.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Tomahawk is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GETNEWSTUFFMODEL_H
#define GETNEWSTUFFMODEL_H
#include <QModelIndex>
#include <attica/content.h>
#include <QPixmap>
class GetNewStuffModel: public QAbstractListModel
{
Q_OBJECT
public:
enum NewStuffRoles {
// DisplayRole is title
// DecorationRole is qicon for item
DownloadUrlRole = Qt::UserRole + 1,
RatingRole = Qt::UserRole + 2,
DownloadCounterRole = Qt::UserRole + 3,
VersionRole = Qt::UserRole + 4,
DescriptionRole = Qt::UserRole + 5,
TypeRole = Qt::UserRole + 6, // Category in attica-speak. What sort of item this is (resolver, etc).
AuthorRole = Qt::UserRole + 7,
StateRole = Qt::UserRole + 8,
UserHasRatedRole = Qt::UserRole + 9
};
enum Types {
ResolverType = 0,
};
explicit GetNewStuffModel( QObject* parent = 0 );
virtual ~GetNewStuffModel();
virtual QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const;
virtual int rowCount( const QModelIndex& parent = QModelIndex() ) const;
virtual bool setData( const QModelIndex &index, const QVariant &value, int role );
private slots:
void resolversReloaded( const Attica::Content::List& );
void resolverStateChanged( const QString& resolverId );
private:
Attica::Content::List m_contentList;
};
#endif // GETNEWSTUFFMODEL_H

View File

@@ -1,6 +1,7 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
* Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -28,7 +29,6 @@
#define TOMAHAWK_APPLICATION QApplication
#include <QApplication>
#include "tomahawkwindow.h"
#endif

View File

@@ -17,6 +17,8 @@
*/
#include "LoadXSPFDialog.h"
#include "TomahawkSettings.h"
#include "Source.h"
#include "ui_LoadXSPFDialog.h"
#include <QFileDialog>
@@ -44,7 +46,11 @@ LoadXSPFDialog::~LoadXSPFDialog()
void
LoadXSPFDialog::getLocalFile()
{
QString url = QFileDialog::getOpenFileName( this, tr( "Load XSPF File" ), QDir::homePath(), tr( "XSPF Files (*.xspf)" ) );
const QString path = TomahawkSettings::instance()->importXspfPath();
QString url = QFileDialog::getOpenFileName( this, tr( "Load XSPF File" ), path, tr( "XSPF Files (*.xspf)" ) );
if ( !url.isEmpty() )
TomahawkSettings::instance()->setImportXspfPath( QFileInfo( url ).absoluteDir().absolutePath() );
m_ui->lineEdit->setText( url );
}

View File

@@ -19,7 +19,7 @@
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Playlist Url</string>
<string>Playlist URL</string>
</property>
</widget>
</item>

View File

@@ -1,6 +1,7 @@
/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
*
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
* Copyright 2010-2012, Jeff Mitchell <jeff@tomahawk-player.org>
*
* Tomahawk is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -16,22 +17,22 @@
* along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
*/
#include "musicscanner.h"
#include "MusicScanner.h"
#include <QtCore/QCoreApplication>
#include "utils/tomahawkutils.h"
#include "tomahawksettings.h"
#include "sourcelist.h"
#include "database/database.h"
#include "database/databasecommand_dirmtimes.h"
#include "database/databasecommand_filemtimes.h"
#include "database/databasecommand_collectionstats.h"
#include "database/databasecommand_addfiles.h"
#include "database/databasecommand_deletefiles.h"
#include "utils/TomahawkUtils.h"
#include "TomahawkSettings.h"
#include "SourceList.h"
#include "database/Database.h"
#include "database/DatabaseCommand_DirMtimes.h"
#include "database/DatabaseCommand_FileMTimes.h"
#include "database/DatabaseCommand_CollectionStats.h"
#include "database/DatabaseCommand_AddFiles.h"
#include "database/DatabaseCommand_DeleteFiles.h"
#include "taghandlers/tag.h"
#include "utils/logger.h"
#include "utils/Logger.h"
using namespace Tomahawk;
@@ -105,15 +106,17 @@ MusicScanner::MusicScanner( const QStringList& dirs, quint32 bs )
, m_batchsize( bs )
, m_dirListerThreadController( 0 )
{
m_ext2mime.insert( "mp3", TomahawkUtils::extensionToMimetype( "mp3" ) );
m_ext2mime.insert( "ogg", TomahawkUtils::extensionToMimetype( "ogg" ) );
m_ext2mime.insert( "oga", TomahawkUtils::extensionToMimetype( "oga" ) );
m_ext2mime.insert( "mpc", TomahawkUtils::extensionToMimetype( "mpc" ) );
m_ext2mime.insert( "wma", TomahawkUtils::extensionToMimetype( "wma" ) );
m_ext2mime.insert( "aac", TomahawkUtils::extensionToMimetype( "aac" ) );
m_ext2mime.insert( "m4a", TomahawkUtils::extensionToMimetype( "m4a" ) );
m_ext2mime.insert( "mp4", TomahawkUtils::extensionToMimetype( "mp4" ) );
m_ext2mime.insert( "mp3", TomahawkUtils::extensionToMimetype( "mp3" ) );
m_ext2mime.insert( "ogg", TomahawkUtils::extensionToMimetype( "ogg" ) );
m_ext2mime.insert( "oga", TomahawkUtils::extensionToMimetype( "oga" ) );
m_ext2mime.insert( "mpc", TomahawkUtils::extensionToMimetype( "mpc" ) );
m_ext2mime.insert( "wma", TomahawkUtils::extensionToMimetype( "wma" ) );
m_ext2mime.insert( "aac", TomahawkUtils::extensionToMimetype( "aac" ) );
m_ext2mime.insert( "m4a", TomahawkUtils::extensionToMimetype( "m4a" ) );
m_ext2mime.insert( "mp4", TomahawkUtils::extensionToMimetype( "mp4" ) );
m_ext2mime.insert( "flac", TomahawkUtils::extensionToMimetype( "flac" ) );
m_ext2mime.insert( "aiff", TomahawkUtils::extensionToMimetype( "aiff" ) );
m_ext2mime.insert( "aif", TomahawkUtils::extensionToMimetype( "aif" ) );
}
@@ -173,7 +176,6 @@ MusicScanner::scan()
SLOT( commitBatch( QVariantList, QVariantList ) ), Qt::DirectConnection );
m_dirListerThreadController = new QThread( this );
m_dirListerThreadController->setPriority( QThread::IdlePriority );
m_dirLister = QWeakPointer< DirLister >( new DirLister( m_dirs ) );
m_dirLister.data()->moveToThread( m_dirListerThreadController );
@@ -185,7 +187,7 @@ MusicScanner::scan()
connect( m_dirLister.data(), SIGNAL( finished() ),
SLOT( listerFinished() ), Qt::QueuedConnection );
m_dirListerThreadController->start();
m_dirListerThreadController->start( QThread::IdlePriority );
QMetaObject::invokeMethod( m_dirLister.data(), "go" );
}
@@ -199,18 +201,16 @@ MusicScanner::listerFinished()
foreach( const QString& key, m_filemtimes.keys() )
m_filesToDelete << m_filemtimes[ key ].keys().first();
tDebug() << "Lister finished: to delete:" << m_filesToDelete;
tDebug( LOGINFO ) << "Scanning complete, saving to database. ( deleted" << m_filesToDelete.count() << "- scanned" << m_scanned << "- skipped" << m_skipped << ")";
tDebug( LOGEXTRA ) << "Skipped the following files (no tags / no valid audio):";
foreach ( const QString& s, m_skippedFiles )
tDebug( LOGEXTRA ) << s;
if ( m_filesToDelete.length() || m_scannedfiles.length() )
{
commitBatch( m_scannedfiles, m_filesToDelete );
m_scannedfiles.clear();
m_filesToDelete.clear();
tDebug( LOGINFO ) << "Scanning complete, saving to database. ( scanned" << m_scanned << "skipped" << m_skipped << ")";
tDebug( LOGEXTRA ) << "Skipped the following files (no tags / no valid audio):";
foreach ( const QString& s, m_skippedFiles )
tDebug( LOGEXTRA ) << s;
}
else
cleanup();
@@ -287,7 +287,7 @@ MusicScanner::scanFile( const QFileInfo& fi )
m_filemtimes.remove( "file://" + fi.canonicalFilePath() );
}
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Scanning file:" << fi.canonicalFilePath();
//tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Scanning file:" << fi.canonicalFilePath();
QVariant m = readFile( fi );
if ( m.toMap().isEmpty() )
return;
@@ -335,9 +335,8 @@ MusicScanner::readFile( const QFileInfo& fi )
int bitrate = 0;
int duration = 0;
Tag *tag = Tag::fromFile( f );
if ( f.audioProperties() )
{
TagLib::AudioProperties *properties = f.audioProperties();
@@ -345,10 +344,14 @@ MusicScanner::readFile( const QFileInfo& fi )
bitrate = properties->bitrate();
}
QString artist = tag->artist().trimmed();
QString album = tag->album().trimmed();
QString track = tag->title().trimmed();
if ( artist.isEmpty() || track.isEmpty() )
QString artist, album, track;
if ( tag )
{
artist = tag->artist().trimmed();
album = tag->album().trimmed();
track = tag->title().trimmed();
}
if ( !tag || artist.isEmpty() || track.isEmpty() )
{
// FIXME: do some clever filename guessing
m_skippedFiles << fi.canonicalFilePath();

Some files were not shown because too many files have changed in this diff Show More