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

Compare commits

...

939 Commits

Author SHA1 Message Date
Michael Zanetti
a78a25baa6 remove unused old code 2011-09-24 15:26:40 +02:00
Michael Zanetti
375ffd1445 speedup animation a bit to match the other dropmenu's duration 2011-09-24 15:26:15 +02:00
Michael Zanetti
c3d223d8cb completed dropmenu in audio controls area 2011-09-24 15:20:44 +02:00
Michael Zanetti
b2f3dedaff more work the dropmenu for the audiocontrols 2011-09-04 20:56:10 +02:00
Christian Muehlhaeuser
a3ae74dc10 * Some more cleanups. 2011-09-04 20:56:10 +02:00
Christian Muehlhaeuser
4dfb989676 * Don't react to hover events unless TrackView is in Detailed mode. 2011-09-04 20:56:10 +02:00
Christian Muehlhaeuser
e0d1289a16 * Resize ContextPage's columns. 2011-09-04 20:56:10 +02:00
Christian Muehlhaeuser
cc5ba35a08 * Add forgotten ui file. 2011-09-04 20:56:10 +02:00
Christian Muehlhaeuser
e0e79c09a4 * Removed ugly queue button for good. 2011-09-04 20:56:10 +02:00
Christian Muehlhaeuser
03f726f46c * Added initial ContextView. Yikes. 2011-09-04 20:56:10 +02:00
Michael Zanetti
c0edc3a989 initial try on a dragndrop menu for audiocontrols 2011-09-04 01:54:13 +02:00
Christian Muehlhaeuser
5dfb3ccc5c * Fixed TWK-492: Don't crash when pressing enter in an empty playlist. 2011-09-02 01:18:57 +02:00
Casey Link
776a2deb91 Make the root icon clickable and expose a signal. 2011-09-01 00:29:05 +00:00
Casey Link
c79985ad86 When there isn't enough room to display all the crumbs, collapse from the left. 2011-09-01 00:28:38 +00:00
Casey Link
aeaf569eb1 Remove slot/signal connection leftover from testing. 2011-08-31 17:02:16 -05:00
Casey Link
e05b8b1843 If the current crumb doesn't have any children, do not show the arrow. 2011-08-31 17:00:04 -05:00
Casey Link
a6452dbeee A little hack to force the second crumb to automatically expand. 2011-08-31 16:39:09 -05:00
Casey Link
d15daf4a85 Implement the data model for the breadcrumb in the whatshot widget. 2011-08-31 21:23:26 +00:00
Casey Link
16a2f94816 Fix bug in the breadcrumb that prevent buttons from showing up. 2011-08-31 21:23:26 +00:00
Casey Link
7a7de39bf7 Implement ChartInfoCapabilities in the lastfm plugin 2011-08-31 21:23:26 +00:00
Casey Link
37530eeeed Replace the comboboxes in the whatshot widget with the breadcrumb. No data model yet, that is coming soon. 2011-08-31 21:23:26 +00:00
Casey Link
c2fe912277 A breadcrumb widget, tomahawk style. 2011-08-31 21:23:26 +00:00
Christian Muehlhaeuser
0c3a9c61b5 * Don't retrieve anything for invalid TreeModelItems. 2011-08-31 13:01:52 +02:00
Christian Muehlhaeuser
e75e204007 * Fixed crash bug caused by cover fetching and a race condition. 2011-08-31 12:59:44 +02:00
Christian Muehlhaeuser
098999ca8c * Fixed crash bug in AlbumModel. 2011-08-31 11:37:22 +02:00
Alejandro Wainzinger
14e6a7fce4 Return 404 if content is null. 2011-08-30 22:07:53 -07:00
Jeff Mitchell
2bedc3bdd0 Extra safety 2011-08-30 11:55:47 -04:00
Leo Franchi
58bff6af4c style fix 2011-08-30 07:58:51 -04:00
Casey Link
bf03b7b756 Fetch charts data on the event loop to prevent a strange deadlock on startup. 2011-08-29 23:40:52 -05:00
Christian Muehlhaeuser
7f324bc45c * Unbreak OSX compile. 2011-08-30 03:11:47 +02:00
Casey Link
626f9acfac Add missing comma, doh 2011-08-29 19:41:36 -05:00
Casey Link
302dbd0224 Some test documentation for enumns.. lets see what doxygen does. 2011-08-29 19:34:14 -05:00
Casey Link
57dea3061b Add some documentation to the new classes 2011-08-29 19:34:14 -05:00
Christian Muehlhaeuser
3e12072dd9 * TomahawkWindow cleanup. 2011-08-30 02:29:45 +02:00
Christian Muehlhaeuser
be10085958 * Fixed ChangeLog typo. 2011-08-30 02:20:49 +02:00
Casey Link
6e6ff2ae53 Merge branch 'whatshot' 2011-08-29 18:56:12 -05:00
Casey Link
320e5a3252 Fix oopsies leftover from the playlist model rename 2011-08-29 23:55:37 +00:00
Jason Herskowitz
f031d25741 Added fix for Spotify links 2011-08-30 01:30:36 +02:00
Christian Muehlhaeuser
a554ee0fa8 * Fixed TWK-451: Properly parent the friends auth / add dialog. 2011-08-30 00:53:29 +02:00
Christian Muehlhaeuser
f774302623 * Fixed TWK-482: Don't close after showing a jabber friend request. 2011-08-30 00:26:58 +02:00
Leo Franchi
0cea650181 TWK-477: Restore code that was lost during file split, and add a proper license header 2011-08-29 18:10:49 -04:00
Jeff Mitchell
47c515caa4 Do please check your debug for null pointers :-) 2011-08-29 13:13:10 -04:00
Jeff Mitchell
0319e5f2f5 Don't show 0 when there is no albumpos for a track 2011-08-29 12:06:42 -04:00
Jeff Mitchell
39bbd128c2 Change the position of the albumpos column to be next to the album 2011-08-29 11:54:09 -04:00
Casey Link
a25d174f64 Merge branch 'master' into whatshot
Conflicts:
	src/libtomahawk/CMakeLists.txt
2011-08-29 10:43:10 -05:00
Leo Franchi
65709e92ff Add file 2011-08-29 11:27:50 -04:00
Christian Muehlhaeuser
89104fc27d * Added more debug output for playlist errors. 2011-08-29 17:12:25 +02:00
Leo Franchi
28e7413bdd Make QCA2 an optional dep, it's only required for HMAC(md5) for resolvers 2011-08-29 11:09:31 -04:00
Jeff Mitchell
d5a2e4b325 Remove dependency on XComposite on X11. It wasn't actually a dependency
on the library, just the development headers (used to check for th
existence of compositing at runtime, but not necessary for us).
2011-08-29 11:03:28 -04:00
Leo Franchi
bde3d93f6a Changelog++ 2011-08-29 10:50:59 -04:00
Leo Franchi
8ed476ccf6 Add QCA2 as an optional dep to tomahawk as well for HMAC signature generation for resolvers
Also add a helper JS function
2011-08-29 10:49:52 -04:00
Leo Franchi
5c5042769b Update overlay text 2011-08-29 10:49:52 -04:00
Christian Muehlhaeuser
6cca932bf4 * Stick to 80-char max-length for ChangeLog. 2011-08-29 16:20:33 +02:00
Leo Franchi
3b832576af Add new feature to 0.3 changelog 2011-08-29 10:18:46 -04:00
Leo Franchi
fa8746fc70 Sync changelog 2011-08-29 10:17:25 -04:00
Christian Muehlhaeuser
e44a78ba8d * Be safer. 2011-08-29 16:07:57 +02:00
Christian Muehlhaeuser
cf25f3c072 * Some debug and safety meassures. 2011-08-29 16:01:53 +02:00
Jeff Mitchell
4fc7c6415b Fix seeker getting "stuck" if it goes ahead on some tracks 2011-08-28 16:47:14 -04:00
Jeff Mitchell
271e6c480d Re-disable phonon seek checking, for now 2011-08-28 16:23:25 -04:00
Jeff Mitchell
57e72e53f9 Fix seeking for local files; also, disable dragging the seek slider if phonon reports that the object cannot be seeked, to not have ugly jumping around. 2011-08-28 16:13:27 -04:00
Jeff Mitchell
a9a9d11f97 Remove debugging 2011-08-28 14:41:02 -04:00
Jeff Mitchell
4b4cecc027 Finish making the seekslider the sleekslider 2011-08-28 14:38:33 -04:00
Jeff Mitchell
e5f6f40289 Initial work on the sleeker slider 2011-08-28 04:16:18 -04:00
Jeff Mitchell
d2af8a8a39 Fix null pointer crash in treeproxymodel 2011-08-28 03:47:11 -04:00
Jeff Mitchell
7166ba161f Update changelog 2011-08-28 02:23:23 -04:00
Jeff Mitchell
ea0fb3c099 Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-28 02:17:49 -04:00
Jeff Mitchell
ea6d892058 Fix regression in audioengine logic when encountering the end of the playlist 2011-08-28 02:16:27 -04:00
Christian Muehlhaeuser
dffb3deebe * Updated ChangeLog. 2011-08-28 06:08:45 +02:00
Christian Muehlhaeuser
c5876c0f9e * Absolutely prevent dupe temp commands from being executed twice. 2011-08-28 05:44:45 +02:00
Christian Muehlhaeuser
89aff8bcbb * Cleaned up database syncing a bit. 2011-08-28 04:50:31 +02:00
Jeff Mitchell
71339862b6 Changelogify Twitter issue 2011-08-27 22:09:45 -04:00
Jeff Mitchell
9e4d320cff Make public/mentions timelines check less often to offset bumping up the dm timer 2011-08-27 22:04:58 -04:00
Jeff Mitchell
cca1ac1532 Some further cleanup and make dms poll a bit more often while keeping the timelines longer 2011-08-27 22:04:24 -04:00
Jeff Mitchell
d8c09ff502 Hopefully really fix the twitter issue 2011-08-27 20:28:59 -04:00
Jeff Mitchell
678eeb1232 Fix twitter saved offer key issue, maybe 2011-08-27 18:00:24 -04:00
Jeff Mitchell
644135c88a Move libqnetwm down one level and hopefully fix building for leo 2011-08-27 16:21:19 -04:00
Jeff Mitchell
dc9f250322 Fix include path 2011-08-27 16:07:53 -04:00
Christian Muehlhaeuser
33a63a45e8 * Fixed mutex deadlock in SourceList. 2011-08-27 21:46:13 +02:00
Leo Franchi
50bce627a8 Show recently created playlists and stations instead of recently looked at. Old model is still there. 2011-08-27 15:28:02 -04:00
Michael Zanetti
49373bdfd0 dont crash when dropping an item with no album to album 2011-08-27 20:37:38 +02:00
Michael Zanetti
f39a982e00 fix dropping of query_ptrs to Top10 2011-08-27 20:37:38 +02:00
Jeff Mitchell
6a12e9fe04 Changelogify++ 2011-08-27 14:02:22 -04:00
Michael Zanetti
16e77cb144 fix dropping of top 10 for albums and tracks 2011-08-27 17:35:48 +02:00
Michael Zanetti
eaca242277 changed the colors to silver 2011-08-27 17:35:48 +02:00
Michael Zanetti
851f9124ba increase font size in dropmenu. People say it was too small for distinguishing normal and bold. 2011-08-27 17:35:48 +02:00
Michael Zanetti
01c2927339 paint the hovered item w/o QStyle::State_Selected but w/ QStyle::State_Active 2011-08-27 17:35:47 +02:00
Michael Zanetti
9f6dd0a104 fix font shrinking issue on OSX with the dragndrop menu 2011-08-27 17:35:47 +02:00
Michael Zanetti
52037d8847 cache the mimedata so we can paint the items after the dropLeaveEvent and made animations a bit faster 2011-08-27 17:35:47 +02:00
Michael Zanetti
39af693de1 remove styleoption selected before painting the text to avoid two selection boxes 2011-08-27 17:35:47 +02:00
Michael Zanetti
9cc919eb08 improved the animation 2011-08-27 17:35:47 +02:00
Jason Herskowitz
2e3e0afa7c Replace all songs drop zone icon with something that is more square. 2011-08-27 17:35:47 +02:00
Michael Zanetti
f0a05acf01 fix off-by-one painting bug in dropmenu 2011-08-27 17:35:47 +02:00
Michael Zanetti
a7d1275e52 replace BounceAnimaton with ExpoAnimation 2011-08-27 17:35:47 +02:00
Michael Zanetti
232097b06b make use of new drop icons 2011-08-27 17:35:47 +02:00
Jason Herskowitz
b1ed8d2419 Add drop zone icons for song and album. 2011-08-27 17:35:47 +02:00
Michael Zanetti
2c5040c638 improved animation 2011-08-27 17:35:47 +02:00
Michael Zanetti
f1dfd84213 make the dropmenu work with categoryitems 2011-08-27 17:35:47 +02:00
Michael Zanetti
74fa941159 fix bug where non expanded items were tracked expanded ones 2011-08-27 17:35:47 +02:00
Michael Zanetti
559433162f make top 10 really top 10 instead of top 50 2011-08-27 17:35:46 +02:00
Michael Zanetti
fbefe4185f fixes in dragndrop menu 2011-08-27 17:35:46 +02:00
Michael Zanetti
71a5888cba make use of new icons 2011-08-27 17:35:46 +02:00
Michael Zanetti
e7cd5bddc4 more work on the drag and drop menu 2011-08-27 17:35:46 +02:00
Jason Herskowitz
b70810da9c Icons for artist drop areas for playlist drawer 2011-08-27 17:35:46 +02:00
Michael Zanetti
4fe15984ce TWK-434: Added drag indicators for artist and album 2011-08-27 17:35:46 +02:00
Michael Zanetti
1d6c407003 TWK-411: Dragging an album/artist to "New Station" creates a station based on that artist instead of all the tracks 2011-08-27 17:35:46 +02:00
Michael Zanetti
a227ae4bcb more work on the drag and drop menu 2011-08-27 17:35:46 +02:00
Christian Muehlhaeuser
13db62b71c * Fixed always resolving top songs in DropJob. 2011-08-27 17:35:46 +02:00
Michael Zanetti
bb72c3efb2 correctly check for isNull 2011-08-27 17:35:46 +02:00
Michael Zanetti
34c8c79ef5 fixed order of filtering. initial work on the Top10 drop action (does actually Top50 for now and tracks can not be resolved yet) 2011-08-27 17:35:46 +02:00
Michael Zanetti
6aa7531623 dropping "All items" and "Only local items" works now 2011-08-27 17:35:46 +02:00
Michael Zanetti
eea5fa2826 cleanup 2011-08-27 17:35:46 +02:00
Michael Zanetti
a14db5e7f2 readded the editorEvent which somehow got lost in the previous merge and cleaned up a bit 2011-08-27 17:35:46 +02:00
Michael Zanetti
42508b7917 initial work on a menu for drag and drop 2011-08-27 17:35:46 +02:00
Jeff Mitchell
6b865eb4f2 Add account skeleton 2011-08-27 17:09:13 -04:00
Jeff Mitchell
87c86b6349 Hells. Yes. Make TH window come to front when launched with a URL. (X11, not sure if Win works yet.) 2011-08-27 02:47:17 -04:00
Jeff Mitchell
4b5caaceef Fix compile on mingw32 2011-08-27 02:37:50 -04:00
Jeff Mitchell
dccc4e6225 Add definitions for bringToFront. Can't test on X11 as TH crashes with database errors before I get the chance. 2011-08-27 02:29:05 -04:00
Jeff Mitchell
971cc742bb Add ability to query all sources with a getInfo call. Watch out for finished() :-) 2011-08-27 00:45:16 -04:00
Casey Link
2bff9e9a27 fix charts image in resources 2011-08-27 01:45:39 +00:00
Casey Link
6cba5c990e Change display name of whatshot widget to Charts and use the charts icon 2011-08-26 20:12:14 -05:00
Casey Link
a2f2fc7867 Merge branch 'master' into whatshot
Conflicts:
	src/tomahawkapp.cpp
2011-08-26 19:54:55 -05:00
Casey Link
ec2dec4faf Handle our own Arrow Drawing.
Adds AntiAliasing and uses our own colors.
2011-08-26 19:47:11 -05:00
Dominik Schmidt
e2fb440af4 Square the .svg version of tomahawk-icon (Larifari's first contribution) 2011-08-27 02:17:53 +02:00
Casey Link
ccc8d3b26a Use the new Header and ComboBox widgets in the whatshot widget. 2011-08-26 18:44:25 -05:00
Casey Link
e43e45cd76 Introduce StyleHelper, HeaderWidget and ComboBox
These are customized widgets for tomahawk that make headers pretty.
2011-08-26 18:43:35 -05:00
Jeff Mitchell
fc2de7721a None of this works, but maybe it's a start since Qt directly isn't
working
2011-08-26 18:40:19 -04:00
Jeff Mitchell
65a50c5a85 Better structuring 2011-08-26 17:47:08 -04:00
Jeff Mitchell
cd78b77784 Draw the battle lines 2011-08-26 17:03:49 -04:00
Jeff Mitchell
1c250b334b Handle checking queue in canGoNext so that we can use next() all the
time instead of randomly skipping it and using loadNextTrack directly
sometimes
2011-08-26 16:12:51 -04:00
Jeff Mitchell
d06c43bfe6 Use next() so that the hasNextTrack checks are run 2011-08-26 16:08:16 -04:00
Leo Franchi
1994ab33fe Don't depend on sender() as it can be null in queued events 2011-08-26 13:26:54 -04:00
Jeff Mitchell
9208257c96 Base64 encode our twitter credentials like elsewhere 2011-08-26 12:01:24 -04:00
Jeff Mitchell
f479fd4e7c Add logic back to audioengine, but simplify in sourcetreeview 2011-08-26 11:27:10 -04:00
Christian Muehlhaeuser
36486d10d1 * Notify user even when there's no album for the current track. 2011-08-26 17:11:34 +02:00
Jeff Mitchell
c7e2a5c1c1 Doh, smart pointers -- fix compile 2011-08-26 10:22:15 -04:00
Jeff Mitchell
a32ff26401 Fix crash; pointer safety! 2011-08-26 10:16:55 -04:00
Jeff Mitchell
b86f6301ff More sometimes-useful debug 2011-08-26 00:40:01 -04:00
Jeff Mitchell
146eaa226f Add debug and some logic to disconnect sourceplaylistinterface connections 2011-08-25 23:49:40 -04:00
Leo Franchi
3fa9fa337e TWK-441: Try to fix crash where sourcetreeitem would hold on to a dangling parent 2011-08-25 23:35:08 -04:00
Leo Franchi
597fec4982 Remove New Playlist widget for now, until we refactor the playlist UIs.
Also update the new playlist type widget to take into account the changes. Make the dialog a sheet on osx.
2011-08-25 23:11:57 -04:00
Jeff Mitchell
01b199c4a8 Fix listen along menu not resetting when you stop listening along 2011-08-25 22:57:14 -04:00
Jeff Mitchell
6dde11c89a Simplify logic -- I think this should still work fine with source playlist interface and also fix issues where someone has stopped playing a track 2011-08-25 20:28:25 -04:00
Dominik Schmidt
3c30ebd4d6 lfranchi: muesli: jherskowitz: awainzin: REMOVED LEGACY JABBER SUPPORT :P 2011-08-26 01:29:50 +02:00
Christian Muehlhaeuser
ff10760838 * Fixed TWK-469: Added album position as a TrackModel column. 2011-08-26 01:10:45 +02:00
Christian Muehlhaeuser
c4fbb6e0a7 * Fixed TWK-461: Always pre-sort searches by score column. 2011-08-26 00:48:39 +02:00
Christian Muehlhaeuser
67acb25da0 * Remove obsolete debug output. 2011-08-25 03:51:47 +02:00
Christian Muehlhaeuser
3e0092d299 * Guard pipeline against dupe queries. 2011-08-25 03:43:11 +02:00
Leo Franchi
9801370a47 Don't resolve a query twice. EchonestGenerator no longer gives out auto-resolving queries, resolve your own. 2011-08-24 21:39:35 -04:00
Christian Muehlhaeuser
2010cb41c7 * Add debug output. 2011-08-25 03:18:35 +02:00
Christian Muehlhaeuser
5f9f9481e7 * Refactor pipeline. 2011-08-25 02:55:31 +02:00
Leo Franchi
6f639ecf10 TWK-340: smooth transform for more pixmaps 2011-08-24 20:37:31 -04:00
Leo Franchi
50d00fc1bf TWK-447: Clear albums model before appending to it 2011-08-24 19:32:34 -04:00
Leo Franchi
def10a2e2b TWK-459: More rdio unbreaking and add support in rdioURI/rdioURL tomahawk urls 2011-08-24 19:13:54 -04:00
Leo Franchi
b7db4e0e6b TWK-323: Really fix rdio links 2011-08-24 19:11:54 -04:00
Michael Zanetti
92b612f44f make trackURLs work again
(cherry picked from commit 4327d61df7)
2011-08-24 07:42:54 -04:00
Christian Muehlhaeuser
d47cafbebf * Make sure onResolvingFinished gets called. 2011-08-24 03:02:26 +02:00
Christian Muehlhaeuser
895d65a24e * Cleaned up debugging in Servent. 2011-08-24 00:33:23 +02:00
Christian Muehlhaeuser
c9bf3035f2 * Don't assert out on too late results. 2011-08-23 18:15:23 +02:00
Leo Franchi
41f3193355 Don't double-delete playlists either 2011-08-23 10:20:26 -04:00
Leo Franchi
924c1b3a72 Changelog
(cherry picked from commit 1279b1fa12)
2011-08-22 19:17:55 -04:00
Leo Franchi
ac317eb0a6 TWK-431: Don't re-use the same infosystem caller id for every artistinfowidget. 2011-08-22 18:26:09 -04:00
Leo Franchi
36768db7e4 TWK-443: Don't double-delete dynamic widgets 2011-08-22 16:28:56 -04:00
Jason Herskowitz
97ee6f7d5e Edited ChangeLog via GitHub 2011-08-22 14:10:21 -03:00
Leo Franchi
e0c5108fb4 Changelog 2011-08-22 07:36:01 -04:00
Leo Franchi
fe77940545 Changelog. 2011-08-22 07:36:01 -04:00
Jason Herskowitz
51ae8fea77 Add icon for charts. 2011-08-21 22:19:25 -04:00
Christian Muehlhaeuser
c76c557ed1 * Fixed tray-icon's play / pause states. 2011-08-22 02:36:44 +02:00
Christian Muehlhaeuser
4200975576 Merge pull request #37 from Horrendus/master
Make a Play/Pause entry in Menu of the Trayicon
2011-08-21 17:25:09 -07:00
Casey Link
415d2e8ec7 ignore my ctags file 2011-08-21 18:55:53 -05:00
Stefan Derkits
612fd47293 Menu of TrayIcon now has a Play/Pause Entry
-) When starting Tomahawk the text is play
-) When playing a Song, the text is pause
-) When pausing a Song, the text is play

Action is connected to the playPause() slot of audioengine
2011-08-22 01:48:27 +02:00
Casey Link
ebb71321f6 Add a splitter to the charts widget. 2011-08-21 18:20:00 -05:00
Casey Link
fc235ccf1b Implement fetching and displaying of the Top Tracks Chart. 2011-08-21 18:04:44 -05:00
Casey Link
a21992a99a Either the lastfm XML output has changed, or this library was buggy all along. This patch fixes the parsing of <track> elements. 2011-08-21 18:03:21 -05:00
Alejandro Wainzinger
573e36fdfd Hopefully fix infinite loop caused by requesting a cover when the cache has issues and/or can't find the cover. 2011-08-21 14:26:30 -07:00
Christian Muehlhaeuser
48aeddc0a9 * Fixed filtering out unwanted dupes when viewing a local collection. 2011-08-21 22:50:41 +02:00
Casey Link
c6a104af93 Use a proxy model that doesn't sort, so we preserve the ranking order 2011-08-21 13:48:07 -05:00
Casey Link
68d3783b26 Implement chart.TopArtists in the lastfm plugin 2011-08-21 13:00:15 -05:00
Casey Link
228699863f Add new Chart InfoTypes for retrieving charts 2011-08-21 13:00:15 -05:00
Casey Link
a4a3c4fb17 Add What's Hot page with corresponding widget. 2011-08-21 12:56:41 -05:00
Christian Muehlhaeuser
13a93cfa45 * Bumped version no to 0.2.99 for master. 2011-08-21 04:55:53 +02:00
Christian Muehlhaeuser
3feee712bd * Updated ChangeLog. 2011-08-21 04:53:30 +02:00
Christian Muehlhaeuser
99e3e06716 * Fixed TWK-442: Provide stable sort ordering in Track- / TreeProxyModel. 2011-08-21 03:51:26 +02:00
Christian Muehlhaeuser
1653e16e7d * Fixed TWK-435: Don't block pipeline if a resolver times out. 2011-08-21 03:31:35 +02:00
Dominik Schmidt
977757cc7e TWK-410: possible fix 2011-08-21 03:23:29 +02:00
Christian Muehlhaeuser
71f6a3e81a * Don't filter out some wanted tracks, e.g. when multiple tracks of an album have the same name, but different tracks numbers. 2011-08-21 02:56:29 +02:00
Christian Muehlhaeuser
43bf42df6f * Fixed TWK-387: Stop showing a loading spinner, if there are no items to load. 2011-08-21 02:38:14 +02:00
Leo Franchi
552a07eee7 Be a bit safer if model changes 2011-08-20 11:50:37 -04:00
Michael Zanetti
97c694baba don't add duplicates when dropping albums or artists and fix losing items when combining synchronous and asynchrounous drop operations 2011-08-20 14:36:48 +02:00
Leo Franchi
5d512c180f Only remove playlists from saved list if that playlist was deleted and is still in our internal db 2011-08-20 01:09:34 -04:00
Leo Franchi
7f089714a6 bail out on a deleted widget 2011-08-20 00:58:32 -04:00
Leo Franchi
9737f765e5 TWK-414: Fix selecting newly created playlists and stations.
God this was a PITA. What is going on:

Playlists are created by collection item. SourcesModel::linkSourceItemToPage is called from *constructor* of PlaylistItem, so BEFORE
the CollectionItem calls endRowsAdded(). This means when the SourcesProxyModel does the mapFromSource() during the activateIndex() call
(from linkSourceItemToPage) it won't have the new index in the mapping yet as endRowsAdded() hasn't been called. So that will fail.

We have to queue the signal *from the source model to the proxy* not from the proxy to the view.

EUGH.

Also, fix a few logic errors from teh ViewManager/WeakPointer refactor that had bad logic
2011-08-20 00:47:53 -04:00
Leo Franchi
6521198127 TWK-401: Only update source stats after addfiles dbcmd is finished, instead of playing a race condition game. Also, refresh recent albums on stats change 2011-08-19 16:54:37 -04:00
Leo Franchi
498d7052de TWK-415: Don't crash if the trackproxymodel has an invalid current track 2011-08-19 15:45:21 -04:00
Leo Franchi
f0a6d4e8bb TWK-420: Show resolver wrench immediately after enabling a resolver. 2011-08-19 14:50:17 -04:00
Leo Franchi
e7bd29d228 remove stale include 2011-08-19 14:12:43 -04:00
Leo Franchi
5fd7505f7f fixes for linux 2011-08-19 13:54:15 -04:00
Leo Franchi
bc2ea013ac delete maclineedit 2011-08-19 13:41:01 -04:00
Leo Franchi
c1ecab349a Delete viewpages when we are done with them and remove Back/Forward buttons.
Remove toolbar and move search widget into top of sourcetree
2011-08-19 13:35:10 -04:00
Alejandro Wainzinger
2f4805c119 Temporary image cover goes in /tmp.
* Fixes TWK-430
2011-08-18 15:58:15 -07:00
Christian Muehlhaeuser
622150fca2 * Cleaned up icons a bit. 2011-08-18 23:25:39 +02:00
Jason Herskowitz
237de4f9a6 Add icons for artist, album and search temporary sidebar items. We should use these for drag indicators for album and artist drags 2011-08-18 17:11:21 -04:00
Leo Franchi
97d62b06c1 enable some stuff 2011-08-17 18:16:11 -04:00
Alejandro Wainzinger
25f37d692e ChangeLog++ 2011-08-18 00:13:10 +02:00
Christian Muehlhaeuser
33e2c4f935 * Updated ChangeLog. 2011-08-18 00:06:24 +02:00
Christian Muehlhaeuser
d24f2b2bb0 * Remember last used script path and store it. 2011-08-17 23:30:45 +02:00
Christian Muehlhaeuser
76bd0670d8 * No need for clucene in Tomahawk binary. 2011-08-17 22:11:54 +02:00
Leo Franchi
4abb53ccdf Fix resolvers on qt 4.8, baseUrl is required for html5 security policy stuff for localStorage 2011-08-17 14:35:27 -04:00
Leo Franchi
31d19196e2 remove offensively verbose debug 2011-08-17 13:46:12 -04:00
Jason Herskowitz
77d60fa02d De-decapitate avatar placeholder 2011-08-17 10:59:12 -04:00
Leo Franchi
178095acc0 and add semicolon 2011-08-17 10:12:29 -04:00
Leo Franchi
2c846c4ae2 Always select source item when new playlist/stations are created 2011-08-17 10:10:26 -04:00
Alejandro Wainzinger
ab462cd7b8 Actually, don't rely on Phonon's isSeekable. It sometimes lies. 2011-08-17 06:14:56 -07:00
Alejandro Wainzinger
a88afe34c2 Return false if can't seek in MPRIS plugin, a string is actually not a boolean.
awainzin--;
2011-08-17 05:58:02 -07:00
Alejandro Wainzinger
79356b9da8 Respect Phonon's isSeekable() function before seeking. 2011-08-17 05:53:39 -07:00
Alejandro Wainzinger
b74cefd72f Try to respect seek restrictions placed on the playlist. 2011-08-17 04:05:16 -07:00
Alejandro Wainzinger
1d222064fb Add the Seeked signal in MPRIS. 2011-08-17 03:17:31 -07:00
Alejandro Wainzinger
6b1d919518 Use full string in tempfile check. 2011-08-17 02:47:26 -07:00
Alejandro Wainzinger
016bd7eb47 Fix potential crash when temporary file doesn't exist, move coverfetching to metadata. 2011-08-17 02:14:15 -07:00
Leo Franchi
ae9d6f8df4 To temporary pages it is! 2011-08-16 23:14:29 -04:00
Alejandro Wainzinger
8beb3173c6 Clean up MPRIS album cover code a bit. 2011-08-16 19:32:32 -07:00
Alejandro Wainzinger
0bddfe3f0d MPRIS: create a new temp file for each new cover, deleting previous. Prevents caching on client side. 2011-08-16 19:18:45 -07:00
Christian Muehlhaeuser
24febc1066 * More verbose debug output in DBSyncConnection. 2011-08-17 04:14:52 +02:00
Alejandro Wainzinger
97b615da41 Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-16 19:05:59 -07:00
Alejandro Wainzinger
3ee5016230 Push album covers through MPRIS. 2011-08-16 19:05:25 -07:00
Leo Franchi
dae9718e35 remove useless code 2011-08-16 21:38:01 -04:00
Leo Franchi
ec2164b77e allow deleting of temporary item in source tree view 2011-08-16 21:36:06 -04:00
Christian Muehlhaeuser
35a7acd606 * Fixed sorting of identical items in Tree- & TrackProxyModel. 2011-08-17 03:33:31 +02:00
Christian Muehlhaeuser
ac3d410559 * Fixed sidebar sorting for items with identical names. 2011-08-17 03:18:39 +02:00
Christian Muehlhaeuser
b1d57df4fc * Moved the AudioControl QSlider stylesheets into SeekSlider. 2011-08-17 02:35:06 +02:00
Christian Muehlhaeuser
b78e2dd8b6 * No need for mouse tracking. 2011-08-17 02:24:42 +02:00
Christian Muehlhaeuser
c3419cb082 * Fixed TWK-212: Sliders should jump to the position they are clicked on. 2011-08-17 02:20:41 +02:00
Leo Franchi
713243cc5d Allow to show the setting dialog always, and disable +/- buttons till loaded 2011-08-16 19:06:34 -04:00
Leo Franchi
ee8da33e06 Show spinner on initial load while loading sip plugins in preferences. Disable Settings action till servent is loaded 2011-08-16 19:00:29 -04:00
Christian Muehlhaeuser
08f868c2ce * Fix sorting for real. 2011-08-17 00:17:01 +02:00
Christian Muehlhaeuser
4d012b156a * Fixed sidebar sorting. 2011-08-17 00:15:08 +02:00
Michael Zanetti
4c5d34ceb7 Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-16 23:34:44 +02:00
Michael Zanetti
8c4b4cd5a9 added drag capabilities to albumview ins sourceinfowidget and welcomewidget 2011-08-16 23:33:41 +02:00
Alejandro Wainzinger
c1498bbae0 Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-16 22:36:07 +02:00
Alejandro Wainzinger
89daf243f4 When settings have changed and adiumplugin reads it, don't try to clear adium status if plugin goes inactive. 2011-08-16 22:35:15 +02:00
Michael Zanetti
5b0cd3b458 fix copyright headers in SettingsListDelegate 2011-08-16 19:28:17 +02:00
Michael Zanetti
8aa18a7e03 fixed copyright headers 2011-08-16 19:25:50 +02:00
Michael Zanetti
e3b2c547d8 Created DropJob which will start a query for the dropped items and wait for the results 2011-08-16 19:25:50 +02:00
Michael Zanetti
6cb2677c9b more work to be able to drag and drop mixed mimetypes (e.g. an artist and some tracks) 2011-08-16 19:25:50 +02:00
Michael Zanetti
09de8c8387 added drag and drop to playlists for albums and artists 2011-08-16 19:25:50 +02:00
Christian Muehlhaeuser
e6778b5631 * Un-regress listen-along. 2011-08-16 03:24:17 +02:00
Christian Muehlhaeuser
9653918a63 Merge remote-tracking branch 'origin/stable' 2011-08-16 03:14:31 +02:00
Christian Muehlhaeuser
b8bf7420d0 * Updated ChangeLog. 2011-08-16 03:14:09 +02:00
Christian Muehlhaeuser
16f32253c3 * Don't try to play unavailable results. 2011-08-16 03:13:11 +02:00
Christian Muehlhaeuser
b7d231997d * Don't try to play unavailable results. 2011-08-16 03:08:11 +02:00
Christian Muehlhaeuser
3326e375ae Merge remote-tracking branch 'origin/stable' 2011-08-16 02:45:16 +02:00
Christian Muehlhaeuser
b6fcae3a4a * Updated ChangeLog. 2011-08-16 02:44:46 +02:00
Christian Muehlhaeuser
2e2ff63a7a * Don't crash when encountering an unknown artist in a search. 2011-08-16 01:45:05 +02:00
Christian Muehlhaeuser
6d26361f4e * Don't crash when encountering an unknown artist in a search. 2011-08-16 01:44:07 +02:00
Christian Muehlhaeuser
611d2015f9 Merge remote-tracking branch 'origin/stable' 2011-08-16 01:30:09 +02:00
Christian Muehlhaeuser
7b24444010 * Update to version 0.2.1. 2011-08-16 01:28:39 +02:00
Christian Muehlhaeuser
7c6304beea * Fixed Javascript resolvers not working / breaking Tomahawk. 2011-08-16 01:27:07 +02:00
Christian Muehlhaeuser
29f88e29ab * Fixed Javascript resolvers not working / breaking Tomahawk. 2011-08-16 01:25:53 +02:00
Christian Muehlhaeuser
58d65c8605 Merge pull request #36 from xevix/master
MPRIS Support - fixed as discussed.
2011-08-15 15:55:30 -07:00
Alejandro Wainzinger
6947a59aa2 Merge branch 'master' of https://github.com/tomahawk-player/tomahawk 2011-08-15 15:53:39 -07:00
Alejandro Wainzinger
2dbf992e56 Properly fix deletion of worker and cache objects in separate threads that are not the GUI thread. 2011-08-15 15:51:39 -07:00
Dominik Schmidt
2cd4d7a682 He iiis iiis ... release breaker.. iiis iis release breaker! 2011-08-15 23:54:29 +02:00
Alejandro Wainzinger
767602c0dc Merge branch 'master' of https://github.com/tomahawk-player/tomahawk 2011-08-15 13:30:59 -07:00
Christian Muehlhaeuser
1ff6cfa31f * This makes it official then: 0.2.0 is released. 2011-08-15 21:50:07 +02:00
Leo Franchi
cd8e187bfe paint album selection rect on windows 2011-08-15 14:00:55 -04:00
Christian Muehlhaeuser
33a3ec4c4c * Added logging to Servent. 2011-08-15 19:07:09 +02:00
Leo Franchi
f9c623d654 use correct servicetype in portforward delete as well as create 2011-08-15 11:02:21 -04:00
Leo Franchi
283a3bd216 oops, didn't mean to commit that 2011-08-15 01:47:29 -04:00
Leo Franchi
a8513d41ea Fix sparkle. Again. No, undefined macros are not fun when #ifed. 2011-08-15 01:45:42 -04:00
Leo Franchi
b8394003e8 draw selection rect in settings dialog on windows too. hope it looks okay... 2011-08-15 00:20:40 -04:00
Christian Muehlhaeuser
ae1095217c * Fixed header resizing issues, which were caused by varying column counts. 2011-08-15 04:59:55 +02:00
Leo Franchi
e159698bfd Use update.php instead of sparkle.xml to save stats 2011-08-14 22:40:30 -04:00
Leo Franchi
cd07bd4f71 Add system profiling 2011-08-14 22:26:25 -04:00
Leo Franchi
825903f294 Fix copying automatic playlists and stations 2011-08-14 22:23:14 -04:00
Christian Muehlhaeuser
a5596e0288 * ChangeLog cleanup. 2011-08-15 02:54:12 +02:00
Jason Herskowitz
53c9d0fcde Changelogging 2011-08-14 20:27:23 -04:00
Christian Muehlhaeuser
277c8c4275 Merge remote-tracking branch 'origin/async' 2011-08-15 02:01:34 +02:00
Christian Muehlhaeuser
3d28293250 * Set fixed widths for add / remove buttons in the settings dialog. 2011-08-15 01:55:41 +02:00
Leo Franchi
3df2c2a104 TWK-123: Re-resolve queries when their resolved-to result goes offline. 2011-08-14 18:39:04 -04:00
Christian Muehlhaeuser
65b2f42463 * Fixed TWK-386. Renamed Music to Collection in settings dialog. 2011-08-15 00:10:17 +02:00
Leo Franchi
0e7fae2b5a Tighten up margins in diagnostics dialog 2011-08-14 17:54:16 -04:00
Leo Franchi
afbe74bc13 Add Michael Zanetti to Thanks To... 2011-08-14 17:49:38 -04:00
Leo Franchi
ae32b0b368 TWK-216: reset the proper view mode toggle when changing to a different view mode automatically 2011-08-14 17:44:43 -04:00
Leo Franchi
7d2c284a3e Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-14 17:16:02 -04:00
Leo Franchi
198ad22f09 Fix strange padding due to QPushButton incorrect layouting rect on OS X 2011-08-14 17:15:46 -04:00
Leo Franchi
f9af1e0520 Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-14 16:39:27 -04:00
Michael Zanetti
f2e76803cc fixed offset issue with icons in settings list 2011-08-14 22:37:55 +02:00
Leo Franchi
a11ec10748 Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-14 15:32:37 -04:00
Leo Franchi
a887232fff Fix some margins and fonts on settings dialog 2011-08-14 15:29:07 -04:00
Jason Herskowitz
7e249b91d8 Make dashboard.png not be huge 2011-08-14 15:01:34 -04:00
Leo Franchi
83b3758a25 Change New Additions page to fit other pages more, with title and description and icon. 2011-08-14 14:38:44 -04:00
Leo Franchi
9313de5b17 Show treeview in artistinfowidget with only one column 2011-08-14 14:27:44 -04:00
Leo Franchi
99a298edb5 Manually encode "'" as %27 for QUrls which is legal and makes more apps happy 2011-08-14 14:17:06 -04:00
Leo Franchi
65405682aa Elide description label for long playlist names force window resizes 2011-08-14 14:04:23 -04:00
Leo Franchi
d32e177583 local results should only load social actions by the local source 2011-08-14 13:50:27 -04:00
Dominik Schmidt
4db7228d0c Add async api for returning results in a qtscriptresolver 2011-08-14 16:42:21 +02:00
Jason Herskowitz
56ddbfe93d Make dashboard icon more white like other icons 2011-08-14 10:37:11 -04:00
Alejandro Wainzinger
c1cbc3576c Merge branch 'master' of https://github.com/tomahawk-player/tomahawk 2011-08-14 07:04:48 -07:00
Dominik Schmidt
4f24e9c5f8 Add some aliases to tomahawk.js 2011-08-14 14:37:16 +02:00
Dominik Schmidt
9b7db84a9e Move result parsing in qtscriptresolver to a method 2011-08-14 14:32:59 +02:00
Dominik Schmidt
e7aa846a0f Remove all references to installer revision 2011-08-14 14:29:55 +02:00
Alejandro Wainzinger
0aa07d62fd Wait for script QProcess to properly exit. 2011-08-14 13:30:22 +02:00
Alejandro Wainzinger
97e12f9b95 Create QThread subclasses for InfoSystemWorker and InfoSystemCache, so we don't try to delete them from a different thread (illegal in Qt), instead delete from QThread subclass' destructor. 2011-08-14 02:32:47 -07:00
Christian Muehlhaeuser
5449154ee9 * Fixed and cleaned up Logger class. 2011-08-14 08:19:48 +02:00
Christian Muehlhaeuser
2dc94021e2 * You can't expand anything in the track view of the album page. 2011-08-14 06:41:47 +02:00
Christian Muehlhaeuser
33a237086c * Fixed queue button flickering. Much smoother animation. QSplitter, I'll meet you in hell. 2011-08-14 06:29:07 +02:00
Christian Muehlhaeuser
aff34a9dc5 * Removed debugging utility. 2011-08-14 06:19:25 +02:00
Christian Muehlhaeuser
15f5212fa0 * Fixed TWK-375: TreeItemDelegate's painting for tracks was broken. 2011-08-14 04:54:45 +02:00
Christian Muehlhaeuser
add8515111 * Fixed wording on album page. 2011-08-14 04:28:03 +02:00
Christian Muehlhaeuser
37367bc5da * Further cleanups and fixed QPixmap warning: We need to store Source's QPixmaps as pointers, since a Source is being constructed in a thread. 2011-08-14 04:13:38 +02:00
Christian Muehlhaeuser
9ec9901e14 * Remove WebCollection altogether. We've established it's not quite gonna work out that way. 2011-08-14 03:28:35 +02:00
Christian Muehlhaeuser
1fb0af1d97 * Don't initialise a WebCollection. 2011-08-14 03:23:12 +02:00
Christian Muehlhaeuser
989243914c * Fixed queue not allowing to remove items from it. 2011-08-14 03:14:39 +02:00
Dominik Schmidt
7d8e29a932 Removed revision.txt. No warranty, I'm drnuk 2011-08-14 02:47:45 +02:00
Christian Muehlhaeuser
001c42f19f * Removed obsolete tomahawk.nsi. 2011-08-14 02:29:53 +02:00
Dominik Schmidt
d871762897 Remove another obsoleted file 2011-08-14 02:20:20 +02:00
Christian Muehlhaeuser
c5bfb4827d * Removed obsolete files. 2011-08-14 01:46:47 +02:00
Christian Muehlhaeuser
6dd1952ad3 * Fixed TWK-373: Auto-load covers, without waiting for the scrollbar to be triggered. 2011-08-14 01:33:12 +02:00
Christian Muehlhaeuser
28e18b66a6 * Fixed TWK-366: Don't accept drops unless we are using a backing playlist. 2011-08-14 01:25:54 +02:00
Christian Muehlhaeuser
99c61d1731 * Removed debug. 2011-08-14 00:54:56 +02:00
Christian Muehlhaeuser
65835fc2b2 * Fixed cut-off text in WelcomeWidget on non-OSX. 2011-08-14 00:54:56 +02:00
Leo Franchi
4732db07d1 draw a border on osx around album covers as there's no selection background 2011-08-13 18:39:03 -04:00
Leo Franchi
67763df201 use a grey instead of blue for osx selection rect 2011-08-13 17:20:05 -04:00
Leo Franchi
1ef2be9f3c Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-13 17:13:30 -04:00
Leo Franchi
3b148c66ad Paint a selection rect around items in the config dialog on osx 2011-08-13 17:13:05 -04:00
Dominik Schmidt
968bee2a62 Gooooood mooooorniiiing, viiieeetnaaam! 2011-08-13 23:00:00 +02:00
Christian Muehlhaeuser
a7a4b97df8 * Fixed TWK-362: Only display other albums on album page. 2011-08-13 22:56:51 +02:00
Dominik Schmidt
999b9bae22 Restructure version string generation 2011-08-13 22:42:08 +02:00
Dominik Schmidt
e6bb2877ee Fix building installers for windows 2011-08-13 22:18:44 +02:00
Leo Franchi
e367e49039 Remove assertion---happens easily on shutdown if you quit too early while tomahawk is loading, and i've never seen it otherwise. 2011-08-13 16:08:27 -04:00
Dominik Schmidt
47a92664df Recover from apachalogger's "fixes" :P 2011-08-13 21:51:31 +02:00
Leo Franchi
29b0b4e431 Draw whole row background on osx 2011-08-13 15:15:50 -04:00
Leo Franchi
9ca97d2e1a Paint proper text color in tree item delegate 2011-08-13 14:57:03 -04:00
Leo Franchi
50267afe06 Fix cutting off playlistview column in short with avatar mode 2011-08-13 10:14:20 -04:00
Alejandro Wainzinger
d243a5f70e Merge branch 'master' of https://github.com/tomahawk-player/tomahawk 2011-08-13 02:14:11 -07:00
Christian Muehlhaeuser
3766edcc43 * Cleaned up tomahawkapp.cpp. 2011-08-13 07:28:15 +02:00
Christian Muehlhaeuser
51b39b5302 * Source & warning cleanup. 2011-08-13 07:25:58 +02:00
Christian Muehlhaeuser
35fdb26b77 * Confusing. It was just working a second ago. 2011-08-13 06:04:43 +02:00
Christian Muehlhaeuser
74d52e3208 * Fixed cross compiling with MinGW. 2011-08-13 05:58:05 +02:00
Christian Muehlhaeuser
db4437cf62 * Fixed adding tracks to the top-level in TreeModel. 2011-08-13 05:37:30 +02:00
Christian Muehlhaeuser
b766f6808f * Fix cross compiling with MinGW and try to unbreak the MainWindow a bit more. 2011-08-13 04:49:09 +02:00
Christian Muehlhaeuser
dce31156db * Another attempt. 2011-08-13 04:46:56 +02:00
Alejandro Wainzinger
7eaed053f5 Merge branch 'master' of https://github.com/tomahawk-player/tomahawk 2011-08-12 19:45:52 -07:00
Christian Muehlhaeuser
637ec28ab1 * Try to fix ViewManager, too. 2011-08-13 04:38:08 +02:00
Alejandro Wainzinger
7354896a86 Implement remaining MPRIS PropertiesChanged update signals, seeking, etc. 2011-08-12 19:35:57 -07:00
Christian Muehlhaeuser
f15dd8153f * Try to fix OS X painting glitch. 2011-08-13 04:23:37 +02:00
Christian Muehlhaeuser
aa68229ac6 * Fixed TWK-107: paint dividers between toolbar, central widget and status bar. 2011-08-13 04:16:04 +02:00
Michael Zanetti
5e6751dc64 merge lfranchi's commit 2011-08-13 04:07:29 +02:00
Michael Zanetti
aff075f2ad added --help command line option 2011-08-13 03:23:00 +02:00
Michael Zanetti
7baf43e3d7 shrink font in newplaylistwidget und allow wordwrap for the text 2011-08-12 22:38:03 +02:00
Leo Franchi
b43fe66409 Hide header for track list in welcome widget 2011-08-12 15:34:21 -04:00
Leo Franchi
809d1139d4 Never sh ow horiz scrollbar in welcomewidget trackview 2011-08-12 15:13:03 -04:00
Jason Herskowitz
009be45dc3 Cha-cha-cha-changelog 2011-08-12 14:51:59 -04:00
Leo Franchi
7d90bc7426 support rd.io shortened links too 2011-08-12 13:04:12 -04:00
Leo Franchi
bb0e7e7631 changelog 2011-08-12 12:52:13 -04:00
Leo Franchi
01c5012028 use artist-description radio instead of song-radio when no artist/song elements are present. fixes TWK-355 2011-08-12 12:50:49 -04:00
Leo Franchi
b9f7bf2656 misc avatar and welcome widget work 2011-08-12 12:30:33 -04:00
Alejandro Wainzinger
ce396ab060 Implement PropertiesChanged for AudioState in MPRIS. 2011-08-12 07:25:33 -07:00
Jason Herskowitz
70b0203acd More changelogging. 2011-08-12 09:27:40 -04:00
Dominik Schmidt
1245ae7ac2 Fix linking against QtUiTools on windows 2011-08-12 15:22:06 +02:00
Christian Muehlhaeuser
eda6f8ff8f * We're officially 0.2.0 (rc1) now. 2011-08-12 15:11:34 +02:00
Leo Franchi
4bef594b53 actually fix things :) 2011-08-12 09:11:05 -04:00
Leo Franchi
a72ef2bf6e qt.conf, not info.plist 2011-08-12 09:06:53 -04:00
Harald Sitter
1d6697f11d use cmake_module_path for includes of cmakemodules 2011-08-12 14:25:42 +02:00
Dominik Schmidt
6be91dd558 Fix cross-compilation in cmake 2.8.5 2011-08-12 14:05:47 +02:00
Dominik Schmidt
dc34262445 Hopefully fix AddAppIconMacro inclusion problems for everyone 2011-08-12 13:59:43 +02:00
Leo Franchi
bb1a06a636 mac-specific tweaks 2011-08-12 00:18:38 -04:00
Leo Franchi
1fa1ed42e9 Paint a nicer playlist delegate, and number count backdrop 2011-08-12 00:10:31 -04:00
Christian Muehlhaeuser
fe15fcd1f5 * Remove obsolete method. 2011-08-12 04:18:51 +02:00
Dominik Schmidt
7169aa352e cmake: check for QtWebkit 2011-08-12 04:01:39 +02:00
Dominik Schmidt
4da0b72ded cmake: check for boost 2011-08-12 03:56:30 +02:00
Leo Franchi
7a4a2f5b70 didn't mean to commit that change, doing a partial update of the playlist delegate isn't great 2011-08-11 21:26:05 -04:00
Christian Muehlhaeuser
744f31bb45 Added almost-finished AlbumInfoWidget. 2011-08-12 03:23:46 +02:00
Christian Muehlhaeuser
53f812ed42 * Used tLog() instead of qDebug() for jabber errors. 2011-08-12 03:23:46 +02:00
Leo Franchi
91525bf5d9 reload top loved tracks playlist with love by local source as well 2011-08-11 21:19:57 -04:00
Leo Franchi
595d0cf987 Update playlists when revision info comes in 2011-08-11 21:11:59 -04:00
Alejandro Wainzinger
5f59b30a8c Add basic metadata MPRIS info. 2011-08-11 17:49:30 -07:00
Leo Franchi
78d867b16f add rdio link parsing 2011-08-11 20:37:17 -04:00
Leo Franchi
2a061b5bf1 change Recently Played for super collection to Dashboard 2011-08-11 18:37:31 -04:00
Leo Franchi
11f7f4a25e re-enable avatars in recently played tracks list, as per TWK-346 2011-08-11 18:24:39 -04:00
Leo Franchi
a9c0d5f820 only show infinity icon for stations, not auto playlists 2011-08-11 18:10:55 -04:00
Leo Franchi
c99fff2b16 Polish up the playlist widget a whole bunch. TWK-348 2011-08-11 18:06:48 -04:00
Michael Zanetti
eda5893012 removed unused function 2011-08-11 23:59:11 +02:00
Michael Zanetti
0e6c79b921 auto-expand the local collections on startup 2011-08-11 23:51:56 +02:00
Christian Muehlhaeuser
c8ba2ee171 Revert "Use 512x512 icon on osx as lion has bigger icon previews"
This reverts commit b7649a3281.
2011-08-11 22:27:31 +02:00
Leo Franchi
206c212767 Don't install Info.plist at cmake time, as it is only valid for releases 2011-08-11 16:07:12 -04:00
Alejandro Wainzinger
49dcd70dd2 Implement most MPRIS methods, minus metadata and related methods. 2011-08-11 12:27:15 -07:00
Leo Franchi
b0d01ec0fb Add a new macdeploy.py script that intelligently handles osx bundling
Add sip plugins and spotify

Remove old scripts and update build-release-osx.sh to use new macdeploy

Remove old files
2011-08-11 14:40:12 -04:00
Christian Muehlhaeuser
d7100c0e8e * Generally prioritize resolving newer queries to make the GUI feel more responsive. 2011-08-11 18:10:06 +02:00
Christian Muehlhaeuser
6d82ae0c4d * Don't try to resolve search queries when appending them to the SearchWidget's TrackModel. 2011-08-11 15:48:27 +02:00
Jason Herskowitz
649d30e11b Add album art drop shadow. Take 1. 2011-08-11 09:15:07 -04:00
Jason Herskowitz
f36cf0e5fa Make light gray on track placeholder icon match the gray used on album placeholder image. 2011-08-11 08:19:49 -04:00
Christian Muehlhaeuser
e0b406e7ef * Fixed TWK-325: Show a spinner animation while searching for tracks. 2011-08-11 13:58:22 +02:00
Leo Franchi
ca65bb2ccc Don't disable play/pause ever now that we have a stacked layout 2011-08-10 23:17:32 -04:00
Leo Franchi
3a890ee929 Use QStackedLayout instead of show/hide for play/pause widget. Fixes flicker. Extra 2px of spacing i can't get rid of... will work harder. TWK-128 2011-08-10 22:52:50 -04:00
Leo Franchi
c7333a2f1f Merge branch 'leo-test' 2011-08-10 22:51:52 -04:00
Christian Muehlhaeuser
0dd29ffa3d * Use track-placeholder.png in the PlaylistItemDelegate. 2011-08-11 02:48:28 +02:00
Christian Muehlhaeuser
503de73c7f * Use smaller fonts for PipelineStatus- & TransferView. 2011-08-11 02:40:08 +02:00
Christian Muehlhaeuser
5377ff718d Merge pull request #33 from Horrendus/patch-1
Corrected the Path for Jreen
2011-08-10 16:55:04 -07:00
Stefan Derkits
caef0ccdbd Corrected the Path for Jreen 2011-08-11 02:54:32 +03:00
Christian Muehlhaeuser
9e901dba2d * Disable horizontal scrollbars in TransferView. 2011-08-11 01:51:25 +02:00
Christian Muehlhaeuser
291035db9c * Fixed TWK-343, wording in SourceInfoWidget. 2011-08-11 01:30:09 +02:00
Christian Muehlhaeuser
a065480f75 * Let headless users trigger a rescan with --filescan. 2011-08-11 00:57:33 +02:00
Michael Zanetti
3fa64c76ee make use of the avatar frame in recently played 2011-08-11 00:14:20 +02:00
Jason Herskowitz
554a688077 Add track placeholder image for artist pages (Top Hits) and New Additions pages (Latest Additions). 2011-08-10 16:56:02 -04:00
Jason Herskowitz
c1f043d2d1 Mo' better avatar frame 2011-08-10 16:20:50 -04:00
Michael Zanetti
bc3662a997 added the avatar frame also to the Collection and SuperCollection icons
BUG: TWK-337
2011-08-10 17:23:02 +02:00
Michael Zanetti
d3ab32d06a changed color of score bars to match the rest of the color palette
BUG-252
2011-08-10 17:23:02 +02:00
Alejandro Wainzinger
6996c704eb Merge branch 'master' of https://github.com/tomahawk-player/tomahawk 2011-08-10 05:26:51 -07:00
Leo Franchi
c36373569a Check for KDE4 dev headers, in order for sip icons to show up in delegate. No, I don't have any clue why this fixes it. Stop asking. Go Away. 2011-08-09 22:46:50 -04:00
Michael Zanetti
3dbc426954 fixed the off-by-one issue with avatar frames 2011-08-10 04:10:16 +02:00
Jason Herskowitz
4415aa59f8 Make 32px image actually be 32px 2011-08-09 21:55:31 -04:00
Christian Muehlhaeuser
6fdec28f50 * Silly whitespace fixes. 2011-08-10 03:47:46 +02:00
Christian Muehlhaeuser
ef2514e95c * Added convenient new Album::get method. 2011-08-10 03:47:46 +02:00
Michael Zanetti
27480f8cdb added SettingsListDelegate to center the items in SettingsDialogList
BUG: 314
2011-08-10 03:41:02 +02:00
Jason Herskowitz
fbcfb552ad Make inner square of frame a square instead of a rectangle so the image doesn't look off-center. 2011-08-09 21:16:50 -04:00
Michael Zanetti
25012ecc26 changed slider button stylesheets to allow moving them to the end
BUG: TWK-289
2011-08-10 00:14:03 +02:00
Michael Zanetti
c29ce585a5 Added a frame to the avatars as requested in bug TWK-106.
The frame image must be in displayed size and the avatar takes 80% of the available space centered.
2011-08-10 00:14:03 +02:00
Alejandro Wainzinger
d59dcda052 Add MprisPluginPlayerAdaptor skeleton. 2011-08-09 11:07:46 -07:00
Leo Franchi
3af34a8581 Only show loved tracks (not loved or unloved) in playlist. Update existing social action instead of duplicating it.. 2011-08-09 10:48:26 -04:00
Leo Franchi
9ec284bfa5 Merge branch 'master' into leo-test
Conflicts:
	src/libtomahawk/playlist/dynamic/DynamicPlaylist.h
	src/libtomahawk/widgets/welcomeplaylistmodel.cpp
2011-08-09 07:26:26 -04:00
Leo Franchi
585bfcdc49 debug-- 2011-08-09 07:12:55 -04:00
Alejandro Wainzinger
c90c0a261d Initial skeleton for MPRIS support. 2011-08-09 02:31:54 -07:00
Leo Franchi
339710c86a Find playlist/dynplaylist item to activate if opened from non-sidebar. TWK-300. Ugh. 2011-08-08 23:24:24 -04:00
Christian Muehlhaeuser
fc43a6a851 * Hide the last.fm test button on OS X - for the 0.2 release. 2011-08-09 03:41:06 +02:00
Christian Muehlhaeuser
4b2c6e8d89 * 50 fps is enough for our AnimatedSplitter animation. 2011-08-09 03:36:16 +02:00
Christian Muehlhaeuser
6cba708640 * BUG: TWK-312 - Fixed AnimatedSplitter cutting off child widgets. 2011-08-09 03:21:55 +02:00
Dominik Schmidt
a46aadd843 Use filter.png for the filter in the topbar 2011-08-09 03:20:54 +02:00
Leo Franchi
d7dd3292ff be safer and don't crash. TWK-333 2011-08-08 21:07:49 -04:00
Dominik Schmidt
6b62265708 Show what you've actually searched for in the sidebar 2011-08-09 02:52:01 +02:00
Christian Muehlhaeuser
304981c28b * We should still remove the query from the pending list in Pipeline. 2011-08-09 02:00:03 +02:00
Dominik Schmidt
ba0c21e111 Show tomahawk version in the diagnostics dialog 2011-08-09 01:48:20 +02:00
Christian Muehlhaeuser
023be21950 * Fixed the preemptive onResolvingFinished() call triggered by the Pipeline. Fixes stations, I bet. 2011-08-09 00:54:56 +02:00
Michael Zanetti
fb95568196 Start playing on ENTER in artistview
BUG: TWK-204
2011-08-09 00:45:37 +02:00
Christian Muehlhaeuser
d9a4b718ed * Use setPixelSize instead of setPointSize. Should fix HeaderLabel weirdness on some systems. 2011-08-08 21:55:39 +02:00
Christian Muehlhaeuser
72add01e66 * Prevent multiple resolvingFinished() signals being emitted from Query. 2011-08-08 21:32:54 +02:00
Dominik Schmidt
f05c58150e Fix FindPhonon.cmake to respect find_version 2011-08-08 14:54:54 +02:00
Dominik Schmidt
7dc1e94ae6 Fix FindCLucene.cmake to respect find_version 2011-08-08 14:53:35 +02:00
Dominik Schmidt
8e07eb5c55 Use macro_optional_find_package everywhere. FindPhonon needs to be fixed
to respect the version number.
2011-08-08 14:08:17 +02:00
Leo Franchi
44aa85b51e support spotifyURL and spotifyURI in track/open, track/queue, and track/play links 2011-08-07 17:43:48 -04:00
Jason Herskowitz
dcf1ebb70f Don't forget one of the drag indicator icon sizes (22x22) 2011-08-07 17:37:27 -04:00
Leo Franchi
0865741733 Don't draw white text on light background 2011-08-07 17:09:18 -04:00
Leo Franchi
58c18acd01 Load automatic playlists and stations in Newest Stations and Playlists list... 2011-08-07 17:09:18 -04:00
Leo Franchi
4630b238bf Merge branch 'master' into leo-test
Conflicts:
	src/audiocontrols.cpp
2011-08-07 17:00:16 -04:00
Jason Herskowitz
f3dc1a0800 Trying some new matching icons for the drag indictors for songs 2011-08-07 16:44:57 -04:00
Leo Franchi
7df6e8c153 use avatar icon in recently played tracks for not-found avatars 2011-08-07 12:41:29 -04:00
Leo Franchi
566880365a Better copy for loved tracks playlist, and show all without limit. 2011-08-07 12:41:29 -04:00
Dominik Schmidt
dd54736e76 Unbreak clang compilation. 2011-08-07 15:56:06 +02:00
Leo Franchi
2c8fac1f8c Actually draw speaker icon in playlist delegate. I'm assuming this was a typo... 2011-08-06 23:59:41 -04:00
Leo Franchi
ce4328c0c3 Hide headers for related artists treeview in artistinfowidget. Don't ask my why it has to happen when it's already displayed.
Fixes TWK-310
2011-08-06 23:34:14 -04:00
Leo Franchi
c6a65a5ba4 Use a lighter color on os x as highlight color for score bar is way too bright. 2011-08-06 20:41:21 -04:00
Leo Franchi
8230e8bfac Asynchronously update on social action loading so loved tracks show up loaded 2011-08-06 18:30:17 -04:00
Leo Franchi
23ea7537e6 Report social action changes and refresh loved playlists 2011-08-06 18:06:21 -04:00
Leo Franchi
b9733249ee Sort by time and show source's own loved tracks 2011-08-06 17:24:05 -04:00
Leo Franchi
ffd5a2f81e Ooops, use true not 1 2011-08-06 16:58:07 -04:00
Leo Franchi
eefc6fd5da OSX Compile 2011-08-06 16:21:01 -04:00
Leo Franchi
d69b10c148 Merge branch 'databasegenerator' 2011-08-06 14:41:59 -04:00
Leo Franchi
9fbbcb6b53 Hide generator combobox until we have more than one generator 2011-08-06 14:41:47 -04:00
Leo Franchi
c6eee1324b Paint dynamic controls the same hue as overlay widget. TWK-309 2011-08-06 14:41:47 -04:00
Leo Franchi
b960be9d97 Get top 60 loved tracks, not 30 2011-08-06 14:41:35 -04:00
Leo Franchi
cdfd6a3464 dd proper loved tracks queries 2011-08-06 14:35:51 -04:00
Leo Franchi
4cfd039c40 social action stuff 2011-08-06 12:40:29 -04:00
Frank Osterfeld
8e4ea5e88f Link on OS X 2011-08-06 18:28:55 +02:00
Jason Herskowitz
76fbe88e95 More changelogging 2011-08-05 17:47:27 -04:00
Leo Franchi
1759d1ea19 Add a loved tracks playlist, and aggregate loved tracks playlist, minus the actual valid tracks 2011-08-05 17:17:28 -04:00
Leo Franchi
703823f553 fix up some copyrights from muesli's script 2011-08-05 16:05:53 -04:00
Leo Franchi
aeb949aa23 Fix merge 2011-08-05 15:39:04 -04:00
Leo Franchi
b15d3162de Merge branch 'master' into databasegenerator
Conflicts:
	src/libtomahawk/CMakeLists.txt
	src/libtomahawk/globalactionmanager.cpp
2011-08-05 15:38:26 -04:00
Leo Franchi
b2deebe0c2 Hide generator combobox until we have more than one generator 2011-08-05 15:36:04 -04:00
Leo Franchi
5d5b5fa3af Paint dynamic controls the same hue as overlay widget. TWK-309 2011-08-05 14:55:39 -04:00
Leo Franchi
f151b59431 Show search and artist pages as temporary pages in sidebar
Remove margins and spacing from searchwidget
Remove "Cancel" button as no other view pages have cancel buttons, and we can't delete a page if we show it as a temporary page anymore
2011-08-05 14:36:52 -04:00
Leo Franchi
c7c12eef93 Show drop indicator after last track if it's dropped below 2011-08-05 14:22:34 -04:00
Leo Franchi
b67623e649 Don't redefine signals 2011-08-05 14:14:59 -04:00
Leo Franchi
8834bf81fa save styles/moods to file, instead of loading on demand sillyness. Fixes TWK-308 2011-08-05 14:06:39 -04:00
Leo Franchi
0877b17a58 Handle multiply-shortened urls. 2011-08-05 12:46:37 -04:00
Leo Franchi
7df1f7a8b8 Expand bit.ly, t.co, and j.mp links to spotify tracks 2011-08-05 12:38:16 -04:00
Leo Franchi
453bf6206c Only accept spotify tracks by default 2011-08-05 12:00:57 -04:00
Leo Franchi
4d31eac5f6 Emit trackCountChanged when dropping tracks in a playlist. Handle Qt/Mac bug where drops from outside the app are Qt::MoveAction not Qt::CopyAction 2011-08-05 11:57:42 -04:00
Leo Franchi
7feb9d5249 Draw proper drop index, since on some platforms (OS X :( ) visualRect() and indexAt() aren't commutative... 2011-08-05 11:46:18 -04:00
Alejandro Wainzinger
0c4746430b Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-08-05 17:33:22 +02:00
Alejandro Wainzinger
ec02854490 Do not backwards the signals connect for next/previous.
* Fixed TWK-313 - fix signal/slot connection for next/previous actionmenu items.
2011-08-05 17:31:31 +02:00
Leo Franchi
ae48c151d0 Show indicator on osx too. NO CLUE why this fixes it.. 2011-08-05 11:21:26 -04:00
Leo Franchi
57dfd6b4b2 Set drop rect from left edge to right edge always, don't rely on QAIV for native drag-drops 2011-08-05 11:14:08 -04:00
Leo Franchi
0e2dd37559 allow dropping onto AudioControls to start playing 2011-08-05 10:39:08 -04:00
Leo Franchi
98030c9b05 Merge branch 'dragndrop' 2011-08-05 07:57:26 -04:00
Leo Franchi
89cec23815 On OS X drops from outside the apps are Qt::MoveActions.... 2011-08-05 07:53:30 -04:00
Dominik Schmidt
e476251c5e Remove ugly dash from rc version 2011-08-05 02:56:57 +02:00
Leo Franchi
4a3bca9bf4 Factor out dragndrop support across tomahawk into GlobalActionManager, add spotify support 2011-08-04 19:01:41 -04:00
Jason Herskowitz
0ad60299ef Cleaned up formatting a bit. 2011-08-04 18:29:59 -03:00
Jason Herskowitz
1d13bc2e40 Stop repeating myself in changelog 2011-08-04 15:30:55 -04:00
Jason Herskowitz
04bff62705 Couple of edits to changelog. Added desktop notifications (linux) and removed libpng entry. 2011-08-04 15:26:44 -04:00
Jason Herskowitz
e4893be501 More changelogifying. Take a look and see if I missed anything or added too much. 2011-08-04 15:23:12 -04:00
Jason Herskowitz
fe762d4fc5 Changelogifying 2011-08-04 14:35:31 -03:00
Jason Herskowitz
dbb7c64807 de-biggified the info.png icon by adding padding to image 2011-08-04 10:12:15 -04:00
Jason Herskowitz
2fdab5c9a1 New 16x16 info.png. May play around with different icons, but scales well now. 2011-08-04 07:51:24 -04:00
Christian Muehlhaeuser
18628defa4 * Fixed info.png's size. 2011-08-04 06:34:36 +02:00
Christian Muehlhaeuser
4a34b97e8c * This should fix the Windows local file playback issues. 2011-08-04 06:11:14 +02:00
Leo Franchi
9d88c9a0f7 Add support for JSPF playlists, remote and local. TWK-303 2011-08-03 23:35:10 -04:00
Leo Franchi
a9111267e8 Merge branch 'master' into databasegenerator
Conflicts:
	src/libtomahawk/CMakeLists.txt
	src/libtomahawk/database/databasecommand_createplaylist.cpp
	src/libtomahawk/playlist/dynamic/DynamicPlaylist.h
2011-08-03 23:31:25 -04:00
Leo Franchi
d3eb8df91a Add support for JSPF playlists, remote and local 2011-08-03 23:26:24 -04:00
Christian Muehlhaeuser
f010736e0d * Call setVisible on the lineEdit... just to be sure. 2011-08-04 05:24:46 +02:00
Christian Muehlhaeuser
9a1ac2f505 * Ignore empty searches. 2011-08-04 05:21:33 +02:00
Christian Muehlhaeuser
8c3ea50301 * Added native MacLineEdit widget and used it in TomahawkWindow's toolbar. 2011-08-04 05:11:12 +02:00
Leo Franchi
5fd8e2181d support playing spotify track urls (http://open.spotify.com or spotify:track). No drag-n-drop yet. 2011-08-03 18:06:49 -04:00
Christian Muehlhaeuser
92efd0da7f * Hopefully fixes the file:// issues on Windows. 2011-08-03 23:47:02 +02:00
Leo Franchi
326b75aefe Don't crash if user rapidly regenerates automatic playlists 2011-08-03 16:58:24 -04:00
Christian Muehlhaeuser
5e4b5fa0d0 * Fixed race condition in AudioEngine. 2011-08-03 16:45:41 +02:00
Leo Franchi
8f4ea6d95d Crash less 2011-08-03 10:44:14 -04:00
Christian Muehlhaeuser
d803a36915 * Possible fix for windows filename issues. 2011-08-03 15:33:21 +02:00
Leo Franchi
12f6d1f780 Always trigger sync for local playlist creation 2011-08-02 23:28:51 -04:00
Leo Franchi
5c58bc1d58 Be safer when deleting playlist category items, this might fix some weirdness 2011-08-02 23:28:51 -04:00
Jason Herskowitz
ae66fb8c5c Add share icon to use for tweet/post action 2011-08-02 21:52:14 -04:00
Jason Herskowitz
4a93bb97fc Adding an icon for 'filter' so we don't have to use the same magnifying glass we use for search 2011-08-01 21:36:00 -04:00
Jeff Mitchell
35c3eedd93 Some Changelogifying. 2011-08-01 12:35:44 -04:00
Leo Franchi
ea69fe158a be careful 2011-08-01 11:39:03 -04:00
Christian Muehlhaeuser
de508c049b * A few more improvements to TrackView & PlaylistItemDelegate. 2011-08-01 09:51:24 +02:00
Christian Muehlhaeuser
cf56819b0c * Lower the FuncTimeouts again. I can't reproduce any issues here. 2011-08-01 09:38:49 +02:00
Christian Muehlhaeuser
2f7d13588f * Slightly improved flat-view's painting speed. 2011-08-01 09:32:08 +02:00
Christian Muehlhaeuser
7b2189cd6f * Disable mimetype checking for now. 2011-08-01 05:57:51 +02:00
Christian Muehlhaeuser
37e77f4fd7 * Removed InfoBar from welcome page. 2011-08-01 04:52:58 +02:00
Christian Muehlhaeuser
7ee6db41d6 * Ignore results with unsupported mimetypes. 2011-08-01 04:47:28 +02:00
Christian Muehlhaeuser
a8e72c3b26 * Never elide caption in InfoBar to avoid silly eliding problems. 2011-08-01 04:24:46 +02:00
Christian Muehlhaeuser
a41e84ae78 * Try to fix AnimatedSplitter. 2011-08-01 04:04:13 +02:00
Jason Herskowitz
bf37bad98a Another try on info.png 2011-07-31 21:47:18 -04:00
Christian Muehlhaeuser
374e6a0983 * Use info.png for contextual links. 2011-08-01 03:15:49 +02:00
Christian Muehlhaeuser
c06b5ea2f6 * Always wait for DatabaseResolvers to finish before shunting queries. 2011-08-01 02:37:55 +02:00
Christian Muehlhaeuser
243997b06e * Use new default artist placeholder image. 2011-08-01 02:27:12 +02:00
Christian Muehlhaeuser
d0858efd7d * Fixed warnings and removed weird margin on ArtistInfoWidget. 2011-08-01 02:20:46 +02:00
Leo Franchi
7ea0de753e remove empty Playlists or Stations entry if all are deleted from peers 2011-07-31 19:46:24 -04:00
Leo Franchi
432d6af37c Delete playlists from peers in the UI as well 2011-07-31 19:41:06 -04:00
Leo Franchi
e1943e6f64 Queue too-fast revision changes and replay them in order to avoid crashes while fast editing 2011-07-31 19:30:45 -04:00
Leo Franchi
e3dddea777 Fix external resolvers that depend on setup message 2011-07-31 13:16:10 -04:00
Leo Franchi
3e1d58463d Change Search to Filter in filter line edit for collections 2011-07-31 12:39:11 -04:00
Leo Franchi
8e51953427 Switch to using direct GenericSelect command 2011-07-31 11:44:23 -04:00
Leo Franchi
91bdfec734 Limit results to what was asked for 2011-07-30 17:16:56 -04:00
Leo Franchi
808901d192 Merge branch 'master' into databasegenerator 2011-07-30 17:06:06 -04:00
Leo Franchi
ce60c173b7 Add support for track, artist, and album generic queries 2011-07-30 17:05:01 -04:00
Leo Franchi
9c36b32e8e add migrate script 2011-07-30 16:13:29 -04:00
Leo Franchi
c76fabbc2b Create and load database-backed special dynamic playlists, and fix some debugs and stuff 2011-07-30 15:35:32 -04:00
Jeff Mitchell
75596c6744 Add initial configuration message support to external resolvers, send proxy info 2011-07-30 14:36:03 -04:00
Leo Franchi
ca467fb5bc Add support for non-autoloaded dynamic playlists that can be used for custom displays
Add a SocialPlaylistWidget that will display some cool social stats and lists, but none right now
2011-07-29 14:06:44 -04:00
Leo Franchi
9120f6436c Scroll per pixel on osx since that's how other apps do it, feels more natural with a trackpad 2011-07-28 16:18:19 -04:00
Leo Franchi
b7649a3281 Use 512x512 icon on osx as lion has bigger icon previews 2011-07-27 08:46:11 -04:00
Thierry Goeckel
10ec1f4f89 Correct minor mistakes according online lint. 2011-07-26 20:20:35 +02:00
Leo Franchi
9fdddbf04e Slow down pipeline a bit to fix spotify resolver; need to talk to chris about why the timeout change broke it. 2011-07-26 09:25:24 -04:00
Leo Franchi
0380379634 Fix obscene filename of class 2011-07-25 18:16:37 -04:00
Leo Franchi
72bfeba65a add to cmakelists 2011-07-25 18:15:46 -04:00
Leo Franchi
4a8b851ba5 Initial database generators 2011-07-25 18:15:39 -04:00
Jason Herskowitz
5fca433805 New album placeholder artwork. Better or worse? 2011-07-25 16:53:17 -04:00
Leo Franchi
cb75c10390 Attempt to stop eliding on osx and also keep things sane elsewhere 2011-07-25 11:58:26 -04:00
Leo Franchi
b7432c8b6c Try using non-escaped path for QFile::exists() 2011-07-25 11:01:25 -04:00
Leo Franchi
df6dc711fc qDebug()-- 2011-07-25 10:52:31 -04:00
Leo Franchi
6a8febcdce Make compile on lion 2011-07-25 10:32:42 -04:00
Christian Muehlhaeuser
ff4e52c398 * Fixed CPack.txt package details. 2011-07-25 14:48:31 +02:00
Christian Muehlhaeuser
2cf9cdab88 * Added QPixmap-caches to Album- & PlaylistItem delegates, too. 2011-07-25 04:01:23 +02:00
Christian Muehlhaeuser
1a3cae012e * Add a QPixmap-cache to the TreeView delegate. 2011-07-25 03:55:02 +02:00
Christian Muehlhaeuser
d4ccbdfa56 * Fixed QTimeLine warning and give the biography on the Artist-Page as much space as possible. 2011-07-25 03:44:05 +02:00
Christian Muehlhaeuser
87531a7ac9 * Get rid of dupe qsrand()s. We do that on startup. 2011-07-25 03:26:58 +02:00
Christian Muehlhaeuser
0c5673ca79 * Filter out duplicate tracks in the Tree Collection. 2011-07-25 03:07:36 +02:00
Christian Muehlhaeuser
ff7012a65d * Start tomahawk with --verbose to get full logging and console output, again. 2011-07-25 01:57:10 +02:00
Christian Muehlhaeuser
601b513da3 * Cleaned up more logging. 2011-07-25 01:41:49 +02:00
Christian Muehlhaeuser
cf6a3c9448 * Further cleanups & logging. 2011-07-25 00:48:40 +02:00
Christian Muehlhaeuser
8c78c0dc08 * Added logging levels. 2011-07-25 00:48:40 +02:00
Christian Muehlhaeuser
bb4b3b4faf * Added tDebug and a debug-level. Don't log qDebug to disk _ever_. 2011-07-25 00:48:40 +02:00
Christian Muehlhaeuser
4caf6d6a28 * Logging cleanups. 2011-07-25 00:48:39 +02:00
Dominik Schmidt
499f45402f Build installers with phonon-vlc and vlc from 0.1 time because currently mingw32-phonon-vlc is broken 2011-07-25 00:32:35 +02:00
Christian Muehlhaeuser
ddedc74501 * GPL headers for AvatarManager. 2011-07-24 20:08:58 +02:00
Christian Muehlhaeuser
0526d4071d * Fixed a few more GPL headers. 2011-07-24 20:07:04 +02:00
Christian Muehlhaeuser
7555c06c0f * Added GPL header to Logger. 2011-07-24 20:05:14 +02:00
Christian Muehlhaeuser
55bef176d3 * Make tLog() work properly. 2011-07-24 19:22:44 +02:00
Christian Muehlhaeuser
9c341bb3e6 * Disable qDebug() logging for release builds. Use tLog() for logging from NOW on. 2011-07-24 18:36:58 +02:00
Christian Muehlhaeuser
41f1a562fd * Fixed DatabaseWorker logic. 2011-07-24 18:36:58 +02:00
Dominik Schmidt
34c618ed94 Fix windows deployment to use local vlc plugins again 2011-07-24 00:36:34 +02:00
Jeff Mitchell
a9e3b716f2 Make things a little safer and also try setting an explicit nam configuration on liblastfm2 in settings dialog to see if that fixes the Mac problem 2011-07-23 13:15:20 -04:00
Jeff Mitchell
287990ca96 Don't reconnect twitter on settings change if it wasn't already connected 2011-07-23 11:46:15 -04:00
Jeff Mitchell
9e54917ff8 Remove now-unnecessary and buggy proxy code in jabber plugin 2011-07-23 11:37:32 -04:00
Jeff Mitchell
40d44c31d0 Add more debug 2011-07-23 11:30:02 -04:00
Jeff Mitchell
f4be7f09e6 Merge branch 'master' into proxytesting 2011-07-23 10:32:20 -04:00
Jeff Mitchell
794d6f870c Add weird debug output from jabber sip 2011-07-22 16:42:27 -04:00
Leo Franchi
8f6a567bee Work harder to hide the header 2011-07-22 14:35:38 -04:00
Leo Franchi
ea3171038b Make playlist album rows the same size as track album rows 2011-07-22 13:54:30 -04:00
Leo Franchi
ee3fb6b47e Don't paint selected text as white on osx, there's no selection rect. 2011-07-22 13:13:20 -04:00
Leo Franchi
b194d8c9cd Use new no-album-cover found image, nicer 2011-07-22 13:13:20 -04:00
Leo Franchi
a7308cddcc Scale pixmaps smoothly to avoid horrible jagged edges 2011-07-22 13:13:20 -04:00
Leo Franchi
7f890e571d Hide header as it's not needed 2011-07-22 13:13:20 -04:00
Christian Muehlhaeuser
4a5a8e5d15 * Don't artificially slow down the Pipeline. 2011-07-22 18:31:10 +02:00
Leo Franchi
66b1e21f31 Use QSplitter to get a 1px handle to avoid merging different alternate-color rows 2011-07-22 11:11:29 -04:00
Leo Franchi
36573c2342 Load album before adding to view to avoid flashing empty playlist message 2011-07-22 11:11:13 -04:00
Leo Franchi
0b9822d689 make compile on non-osx 2011-07-21 16:25:58 -04:00
Leo Franchi
f36b95fe6b OSX: Don't quit on window close, to conform to OSX expectations. Add Show/Hide action to tray icon. 2011-07-21 16:21:45 -04:00
Leo Franchi
1da74e4d81 Add a stretch factor to the title of the playlist header, things like "My Collection" don't get elided to My...tion 2011-07-21 14:55:57 -04:00
Leo Franchi
c0ee4751a0 make link manager adapt to pipeline reportresult changes 2011-07-21 13:34:44 -04:00
Christian Muehlhaeuser
aa5fb8bc53 * Fixed GStreamer pausing - even more. Sigh for Phonon's states. 2011-07-21 18:49:22 +02:00
Leo Franchi
57cdd0d960 Bring to front on mac when a tomahawkurl is opened in Tomahawk. Will add linux and win-specific code as well. 2011-07-21 11:22:26 -04:00
Alejandro Wainzinger
4ac6c32a45 Use clear() to clear text, not a QString(). 2011-07-21 05:16:09 -07:00
Alejandro Wainzinger
00c122b05c * Fixed TWK-249 - Add a bit more widget spacing to fix clipping of search box. 2011-07-21 05:14:31 -07:00
Alejandro Wainzinger
bcf7d9d689 * Fixed TWK-261 - Make "show offline sources" a checkable option, and save its value in settings. 2011-07-21 01:57:41 -07:00
Christian Muehlhaeuser
dbf31d704a * Cleaned up QtScriptResolver and added vital debug output. 2011-07-21 00:59:26 +02:00
Christian Muehlhaeuser
7f4d64d8dc * Always apply ProxyStyle. 2011-07-21 00:43:15 +02:00
Jeff Mitchell
2f95e0b191 Fix mistaken logic not using the map created especially for its
purpose...
2011-07-20 18:35:50 -04:00
Jeff Mitchell
86ac66a258 Use the enum value, to avoid out-of-order documentation mixup 2011-07-20 18:24:32 -04:00
Leo Franchi
f5e39c216e properly decode escaped characters coming from the HTTP api 2011-07-20 14:12:17 -04:00
Leo Franchi
5336700050 find LIBLASTFM_FOUND properly instead of always finding it as false 2011-07-20 07:43:01 -04:00
Christian Muehlhaeuser
bb8c60c939 * Removed obsolete includes from TomahawkWindow. 2011-07-20 08:26:16 +02:00
Christian Muehlhaeuser
48b2c77e6b * Cleaned up TomahawkWindow. 2011-07-20 08:22:38 +02:00
Christian Muehlhaeuser
900be23fa0 * A few updates to the german translation. 2011-07-20 07:37:49 +02:00
Christian Muehlhaeuser
fbb9e74537 * Fixed german translation setting a global quit shortcut on the key 'Q'. 2011-07-20 07:20:32 +02:00
Christian Muehlhaeuser
21abd78de5 * Remove not-working CMake cache solution. 2011-07-20 07:15:10 +02:00
Christian Muehlhaeuser
0a5f9ba290 * Use the same unique revision identifier as git itself. 2011-07-20 06:56:31 +02:00
Christian Muehlhaeuser
8d06d2ca38 * Try to force empty TOMAHAWK_VERSION in CMake cache. 2011-07-20 06:55:08 +02:00
Christian Muehlhaeuser
bbe81050f3 * Fixed sparkle updating and introduced TomahawkUtils::appFriendlyVersion(). 2011-07-20 06:01:58 +02:00
Christian Muehlhaeuser
751b76948e * Show which version is build during CMake debug output. 2011-07-20 05:51:40 +02:00
Christian Muehlhaeuser
485b40b22b * Added branch name to version string. 2011-07-20 05:47:13 +02:00
Christian Muehlhaeuser
4c8ba931d3 * Stop temporary query timer after it's been triggered. 2011-07-20 05:22:37 +02:00
Christian Muehlhaeuser
463eb2bfd8 * And even more Pipeline cleanups. 2011-07-20 04:53:43 +02:00
Christian Muehlhaeuser
7ab0a3093e * Few debug cleanups in Pipeline. 2011-07-20 04:41:59 +02:00
Leo Franchi
dabbd38cc7 Handle resolver file paths becoming invalid properly. Show user file is not found, etc. 2011-07-19 22:27:02 -04:00
Christian Muehlhaeuser
efd7911efc * Fixed another pipeline bug. 2011-07-20 04:25:44 +02:00
Christian Muehlhaeuser
9b8d69a21f * Fixed assert bug in pipeline. 2011-07-20 03:59:02 +02:00
Christian Muehlhaeuser
b39029743e * Fixed painting tracks with foreign charsets in sidebar. 2011-07-20 02:32:20 +02:00
Christian Muehlhaeuser
b771a23e23 * Fixed checking date executable variable. 2011-07-20 02:05:16 +02:00
Christian Muehlhaeuser
ffd4ba4edf * Fixed TWK-243: Show git revision in version number. 2011-07-20 02:02:37 +02:00
Christian Muehlhaeuser
6bfbbce05f * Fixed TWK-279 - Play first track of a playlist if play is clicked and nothing is playing yet. 2011-07-20 01:52:19 +02:00
Christian Muehlhaeuser
4a3f157718 * Fixed GStreamer skipping to the next track on pausing. 2011-07-20 00:17:15 +02:00
Christian Muehlhaeuser
920b239dc1 * Removed some more debug output from resolvers. 2011-07-19 23:40:21 +02:00
Christian Muehlhaeuser
1a81a292fc * Remove obsolete debug output. 2011-07-19 23:34:59 +02:00
Christian Muehlhaeuser
066aac7e26 * Fixed not properly ending drag and drop operation when leaving the sidebar. 2011-07-19 23:33:35 +02:00
Christian Muehlhaeuser
ac726faf1b * Also release non-temporary queries in Pipeline. 2011-07-19 23:13:16 +02:00
Christian Muehlhaeuser
dc5c0394f7 * Release unused queries in Pipeline. 2011-07-19 22:53:35 +02:00
Christian Muehlhaeuser
4098cc2709 * PlaylistInterface now provides getSharedPointer(). AudioEngine makes use of it and doesn't crash when encountering a deleted playlist. 2011-07-19 17:54:10 +02:00
Christian Muehlhaeuser
63aa26f607 * Fixed init procedure: don't setup Servent before database and sources are loaded. 2011-07-17 01:02:32 +02:00
Jason Herskowitz
4238327ebc Added icon for info icon/arrow that takes you to artist or album page. 2011-07-16 15:49:39 -04:00
Jason Herskowitz
120ee995f1 Placeholder images for missing album art, user avatar and artist image. Also sidebar icon for Loved Tracks. 2011-07-16 15:43:00 -04:00
Jeff Mitchell
7d7650f97c Fix twitter copy and also size issues. Fixes TWK-209. 2011-07-16 13:36:59 -04:00
Jeff Mitchell
b5d5db434a Change infosystem timeout values 2011-07-14 14:10:04 -04:00
Leo Franchi
a4a274531c Fix shortcuts on OS X 2011-07-14 10:42:27 +02:00
Jeff Mitchell
3a1083d2b3 Insert some code which is most likely totally do-nothing in the
offchance it solves jherskowitz's random crash...
2011-07-12 18:00:55 -04:00
Jeff Mitchell
e79604b598 Modify qHash/criteriamd5 algorithm to guarantee order of adding values
to the md5sum, since order matters in md5 and isn't guaranteed by
default in a QHash.

Requires a cache clear, which is done automatically.
2011-07-12 17:51:27 -04:00
Jeff Mitchell
43a1b38a49 Fix some objects in cache being "lost", such as similar artists/top
artist songs
2011-07-12 16:38:16 -04:00
Jeff Mitchell
e83be2b9cd Fix stupid C&P mistake that broke scrobbling. 2011-07-12 12:01:00 -04:00
Christian Muehlhaeuser
fcfc344627 * Fixed JavaScript resolvers not working. 2011-07-12 01:10:37 +02:00
Jeff Mitchell
28d34a84ad Add a cache versioning system, and invalidate the cache in the upgrade
to version 1
2011-07-11 16:01:53 -04:00
Christian Muehlhaeuser
3bd6bd540f * Updated .gitignore. 2011-07-11 16:59:43 +02:00
Christian Muehlhaeuser
c35d7c964a * Removed some InfoSystem debug output. 2011-07-11 16:59:15 +02:00
Christian Muehlhaeuser
15805aa32c * Improved AlbumView and cover fetching in Artist / Album-Model. 2011-07-11 16:52:09 +02:00
Christian Muehlhaeuser
6f14277821 * Updated .gitignore. 2011-07-11 03:36:11 +02:00
Christian Muehlhaeuser
2d66feb5b2 * Fixed default flat collection view sorting. 2011-07-11 03:24:33 +02:00
Christian Muehlhaeuser
a6944c49ae * Hide the origin column in the default flat collection view. 2011-07-11 03:05:14 +02:00
Christian Muehlhaeuser
3ad6826779 * Fixed bogus column widths when loading a flat collection view. 2011-07-11 02:59:13 +02:00
Christian Muehlhaeuser
0e04e8970b * Try to force updates when hovered item in a TrackView changes. 2011-07-11 02:49:46 +02:00
Christian Muehlhaeuser
76af86dc4b * Added direct links to Artist / Album - pages in TrackView. 2011-07-11 02:02:32 +02:00
Christian Muehlhaeuser
3d289c0f77 * Added musicbrainz InfoPlugin to CMakeLists.txt 2011-07-09 02:12:01 +02:00
Christopher Reichert
d7ea7e3eee Doxygen documentation for DatabaseCommand_LoadSocialAction. 2011-07-08 13:26:28 -05:00
Jeff Mitchell
e0b5597149 Huge overhaul of InfoSystem, using InfoRequestData structs to pass things around, making it far more clean (and easier to extend in the future) 2011-07-07 11:07:52 -04:00
Jeff Mitchell
d7950472bc Fix Mac compilation 2011-07-06 22:50:22 -04:00
Dominik Schmidt
dd311d99c4 Add more build dirs to the .gitignore 2011-07-07 04:18:18 +02:00
Dominik Schmidt
a634d09126 cpack: build proper source tarballs 2011-07-07 04:16:28 +02:00
Dominik Schmidt
7c5d6033d4 Add date and git revision to non-release package names 2011-07-07 03:18:12 +02:00
Dominik Schmidt
18aba6856b Use CPack for building the windows installer 2011-07-07 02:52:31 +02:00
Jeff Mitchell
51fba9ae62 Rename SavedRequestData and promote it 2011-07-06 17:32:02 -04:00
Jeff Mitchell
eb7f3fdab4 Enable caching of two more infotypes 2011-07-06 16:20:20 -04:00
Jeff Mitchell
0bfc873559 Handle timeouts of getInfo requests 2011-07-06 16:00:05 -04:00
Jeff Mitchell
226f823354 Add timeout functionality -- mostly. Still have to figure out the best
way to store items in case too much time has elapsed.
2011-07-06 14:58:56 -04:00
Jeff Mitchell
6bb26ecde8 Move almost all of the rest of the logic of infosystem to the worker
thread
2011-07-06 12:49:58 -04:00
Jeff Mitchell
5d0c734187 Add requestId tracking to InfoSystem in preparation for timeouts 2011-07-06 12:33:16 -04:00
Jeff Mitchell
ce7040d1fd Replace InfoCustomData with QVariantMap 2011-07-06 11:28:17 -04:00
Dominik Schmidt
7c9c046b17 Merge branch 'js-resolver' 2011-07-05 13:17:23 +02:00
Christopher Reichert
8f0984c5ac Added doxygen comments for DatabaseCommand_SocialAction. 2011-07-03 21:25:56 -05:00
Christian Muehlhaeuser
5e9fa24008 * Fixed crashing after a right-click on the Super Collection. 2011-07-04 02:42:42 +02:00
Christian Muehlhaeuser
15cdc8f910 * Let's start doxygen-ing new classes. 2011-07-03 17:04:49 +02:00
Christian Muehlhaeuser
dc095ec963 * Added ArtistInfoWidget, our new Artist page and ViewManager's default show(artist) action. 2011-07-03 02:18:28 +02:00
Christian Muehlhaeuser
8017bcacc7 * Fixed compiling on non-OS X. 2011-07-02 21:10:59 +02:00
Christian Muehlhaeuser
eaf8cad990 * Fixed compiling and error. 2011-07-02 21:03:04 +02:00
Christopher Reichert
40fb61b9a9 Do not allow same jabber credentials more than once. 2011-07-02 12:27:57 -05:00
Jeff Mitchell
11c0519165 Remove extra > 2011-07-01 16:52:35 -04:00
Dominik Schmidt
25775b5051 Make the Resolver API expect a widgetName instead of a widgetPath
We dont have gazillions of widgets in one dialog, so make the API a bit easier to use :)
2011-06-30 01:27:58 +02:00
Dominik Schmidt
3d297795c2 Be simplistic :D 2011-06-30 01:03:15 +02:00
Dominik Schmidt
925da80431 Merge remote branch 'origin/master' into js-resolver 2011-06-29 01:34:42 +02:00
Dominik Schmidt
1416c40172 Be compatible with the old resolvers *shrug* 2011-06-28 22:30:29 +02:00
Dominik Schmidt
c9fb103627 More API cleanup for QtScriptResolver 2011-06-28 21:29:44 +02:00
Jeff Mitchell
3f48e93a89 Show album covers in notifications when playing a track instead of the
source image. Need to implement some sort of timeout for getInfo.
2011-06-28 14:16:31 -04:00
Jeff Mitchell
07d9360a65 Massive cleanup of echonest plugin, also some cleanup for lastfmplugin. Hope I didn't break anything. :-) 2011-06-28 09:00:46 -04:00
Dominik Schmidt
c276e58c55 Add default implementations of search and resolve to the QtScriptResolver API 2011-06-28 13:47:35 +02:00
Dominik Schmidt
6f0321f585 Add tomahawk.js 2011-06-27 21:33:44 +02:00
Dominik Schmidt
d35fbd5048 Make debug output more readable and assert on javascript failures 2011-06-27 21:07:22 +02:00
Dominik Schmidt
75ec478cae Fix streaming from https-links 2011-06-27 21:06:36 +02:00
Jeff Mitchell
bb6da0daa9 Fix broken proxying. Not sure when it broke but this is a more robust
solution considering that both lastfm and echonest manager their own
nams. See notes; liblastfm may be problematic on Windows and Mac.
2011-06-27 15:00:25 -04:00
Dominik Schmidt
bf46ca7b71 Add more api for qtscriptresolvers 2011-06-27 04:22:40 +02:00
Dominik Schmidt
931ed5b918 Fix loading images from qtscriptresolvers 2011-06-27 00:12:29 +02:00
Dominik Schmidt
5d21dded5c Implement new js-resolver api 2011-06-26 22:42:58 +02:00
Jeff Mitchell
e983742c9b When notifying of a played track, show the source's image. Ideally we'd show the album cover but I can't find a good way to get at that (yet). 2011-06-26 13:25:55 -04:00
Jeff Mitchell
c6d2a5df89 Remove extraneous code 2011-06-26 12:58:51 -04:00
Christian Muehlhaeuser
ee70b9e3a7 * Set minimum size for recently-played tracks in WelcomeWidget. 2011-06-26 15:35:42 +02:00
Christian Muehlhaeuser
97986d8d3e * Use QTextOption to v-center HeaderLabel properly. 2011-06-26 15:20:50 +02:00
Christian Muehlhaeuser
39409ed861 * Don't cut off fonts in HeaderLabel. 2011-06-26 13:28:04 +02:00
Christian Muehlhaeuser
1e62c117e4 * A few more improvements for and around HeaderLabels. 2011-06-26 08:26:44 +02:00
Christian Muehlhaeuser
61f9fd5c99 * Fixed CMakeLists.txt. 2011-06-26 07:24:57 +02:00
Christian Muehlhaeuser
fe7c79ff31 * Added HeaderLabel to replace our old ugly labels. 2011-06-26 07:21:14 +02:00
Dominik Schmidt
de74c0c3fe Add newlines for muesli being able to read the code 2011-06-26 05:22:06 +02:00
Dominik Schmidt
80797d6538 Add ConfigUi api to QtScriptResolver 2011-06-26 05:18:27 +02:00
Christian Muehlhaeuser
e0c72c911a * Fixed loveButton not being re-enabled again. 2011-06-26 05:15:05 +02:00
Christian Muehlhaeuser
8f69369807 * Fixed not disabling loveButton. 2011-06-26 05:13:18 +02:00
Jason Herskowitz
451713c946 Make love icon not be invisibile on linux 2011-06-25 23:11:11 -04:00
Christian Muehlhaeuser
cf01884515 * Show a PointingHand cursor when hovering the love icon. 2011-06-26 05:10:01 +02:00
Jason Herskowitz
3913611ffa Temporary preference icon size fix, color tweaks, and added and icon for Post action 2011-06-25 23:01:18 -04:00
Jason Herskowitz
7bff379d05 Make gray outline of loved icons match source name color 2011-06-25 22:23:07 -04:00
Christopher Reichert
3769ef3208 Send UnLove track to LastFm. 2011-06-25 21:03:45 -05:00
Jason Herskowitz
10f607b348 Make loved icon right size 2011-06-25 21:08:40 -04:00
Jason Herskowitz
62df210cdc Make loved icon a bit darker red 2011-06-25 20:57:34 -04:00
Christopher Reichert
bdf8a0a353 Moved the loveButton to a reasonable place in audiocontrols.
Also changed the PlaylistTypeSelectorDlg to not be lop-sided.
2011-06-25 17:47:57 -05:00
Christian Muehlhaeuser
f380317775 * Fixed ageToString() for time differences below 60 seconds. 2011-06-25 06:04:50 +02:00
Christian Muehlhaeuser
8e99dbf01e * Show when a track was played in the recently played tracks history. 2011-06-25 04:12:23 +02:00
Christopher Reichert
0685754481 Database command for loading social actions.
Used for allowing a result to be aware of whether or not
it has various social attributes. e.g. loved.
2011-06-24 20:54:57 -05:00
Jason Herskowitz
5429698661 Icon for home screen/dashboard. Needs to be wired up. 2011-06-24 20:16:37 -04:00
Christian Muehlhaeuser
2dad4fbe2c * Fixed broken splitter-handle on OS X. 2011-06-25 01:39:35 +02:00
Jeff Mitchell
3b0292d9d9 Cleanup 2011-06-24 12:57:42 -04:00
Jeff Mitchell
f3ba4beffc Only emit if there are actually results 2011-06-24 12:26:44 -04:00
Christian Muehlhaeuser
6be00f832d * Removed un-moc-able headers in thirdparty/qtweetlib. 2011-06-24 11:48:44 +02:00
Christian Muehlhaeuser
4674ed35f0 * Fixed the warning mess. Hope I didn't break anything :-) 2011-06-24 11:38:15 +02:00
Christian Muehlhaeuser
26e12157f2 * Silly whitespace cleanup. 2011-06-24 09:32:00 +02:00
Christian Muehlhaeuser
9758324128 * Fixed broken database schema for dynamic_playlist table. 2011-06-24 09:32:00 +02:00
Dominik Schmidt
bfec4043f6 Merge branch 'master' of git://github.com/tomahawk-player/tomahawk
Conflicts:
	src/resolvers/qtscriptresolver.h
2011-06-24 08:25:50 +02:00
Christian Muehlhaeuser
e0cd07c442 * Giving domme a style-lesson ;-) 2011-06-24 08:22:39 +02:00
Dominik Schmidt
cbd8caa171 Add compress-method to Tomahawk-Object in QtScriptResolvers 2011-06-24 08:18:41 +02:00
Christian Muehlhaeuser
3f4140e023 * Don't offer a play action if the user selected multiple items. 2011-06-24 08:18:22 +02:00
Dominik Schmidt
903617fd50 Add Tomahawk object to resolver scope, currently offers a readFile method 2011-06-24 08:12:59 +02:00
Christian Muehlhaeuser
4abb52d198 * Added context menus for Artists & Albums, too. 2011-06-24 08:08:33 +02:00
Christian Muehlhaeuser
1c820a2beb * Guard some more. 2011-06-24 05:49:20 +02:00
Christian Muehlhaeuser
b65d9d5809 * Guard AudioEngine against null-ptr PlaylistInterfaces. 2011-06-24 05:46:08 +02:00
Christian Muehlhaeuser
251599e36e * Removed silly debug which slowed down sorting massively. 2011-06-24 04:52:30 +02:00
Christian Muehlhaeuser
1ecab22b4d * Added new helper class ContextMenu. Made it easy to support context-menus in the TreeView, too. 2011-06-24 04:48:03 +02:00
Alejandro Wainzinger
a639b89ebc Add reference to Doxygen docs in README. 2011-06-23 19:41:01 -07:00
Jeff Mitchell
bf015d241a Rip out retry timer and move to a push solution. Untested, will test
later.
2011-06-23 16:03:24 -04:00
Jeff Mitchell
555adeaac7 Cleanup 2011-06-23 15:15:31 -04:00
Jeff Mitchell
d455270c05 Add (if verbose is turned on in config) play/stop notifications 2011-06-23 15:13:57 -04:00
Christian Muehlhaeuser
d5266f7147 * Fix the styling of the now playing row in the TreeView. 2011-06-23 20:02:26 +02:00
Christian Muehlhaeuser
2ef67f5b28 * Mark the now playing item in the TreeView, just like we do in the TrackView. 2011-06-23 19:25:59 +02:00
Christian Muehlhaeuser
337c4e6e9c * Recalculate collection stats after finish scanning. 2011-06-23 18:02:09 +02:00
Christian Muehlhaeuser
1a4ed2e551 * Never word-wrap in the short-mode PlaylistItemDelegate. 2011-06-23 17:42:52 +02:00
Christian Muehlhaeuser
dca4a7c591 * Fixed TWK-226. Never advertise ourselves with an unroutable / internal-only IP address. 2011-06-23 16:54:27 +02:00
Jeff Mitchell
660176477a Remove reset; handle dbid changes locally in twitter sip 2011-06-23 09:16:33 -04:00
Jeff Mitchell
f2d5a9dadc Make SipPlugin reset pure virtual and implement 2011-06-23 08:54:29 -04:00
Jeff Mitchell
7e45779132 Put reset() in sipplugin 2011-06-23 07:03:09 -04:00
Jeff Mitchell
a25d4719c9 Remove unneeded bits 2011-06-22 17:57:38 -04:00
Jeff Mitchell
69f459682a Make notifications work on Linux, including icon. 2011-06-22 13:47:16 -04:00
Jeff Mitchell
0f1dec1783 Fix notification logic and possible crash 2011-06-22 11:50:02 -04:00
Christian Muehlhaeuser
8240b8379b * Don't do separate thread pools per command anymore. 2011-06-22 10:07:19 +02:00
Jeff Mitchell
8d1f0e1646 Use the types shown by qdbusviewer 2011-06-21 18:22:15 -04:00
Jeff Mitchell
59346f014a Rename the plugin to be more truthful 2011-06-21 17:45:39 -04:00
Jeff Mitchell
ef5f40864e Fix up libnotify plugin (not actually using libnotify though) 2011-06-21 17:39:31 -04:00
Jeff Mitchell
69818f8c96 Start of libnotify plugin 2011-06-21 14:52:23 -04:00
Jeff Mitchell
55c894743a Drat. Actually fix build 2011-06-21 13:58:50 -04:00
Jeff Mitchell
3c096f16e0 Crap, I meant to include these in the previous commit 2011-06-21 13:50:52 -04:00
Jeff Mitchell
fa7e34972c Make dirs for os-dependent (and non-os-dependent) infoplugins 2011-06-21 12:04:03 -04:00
Alejandro Wainzinger
9d390aa0ed Style. 2011-06-21 02:35:14 -07:00
Alejandro Wainzinger
a59768ee9b Add tooltip for Artist and Flat View. 2011-06-21 02:30:47 -07:00
Christian Muehlhaeuser
20181affd1 * Fixed a few playlist issues: don't lose current track when dropping / moving items on the playlist. 2011-06-21 08:10:30 +02:00
Christian Muehlhaeuser
08426e2822 * Fixed getting list of recently played playlists. 2011-06-21 07:06:30 +02:00
Christian Muehlhaeuser
659b8fa0d5 * Set the proper playback source on LogPlayback queries. 2011-06-21 06:36:34 +02:00
Christian Muehlhaeuser
b5180f33b8 * No need to fetch collection stats manually after adding files. 2011-06-21 06:32:45 +02:00
Christian Muehlhaeuser
4006452d15 * Don't steal the logfile when starting a secondary instance of Tomahawk. 2011-06-21 05:40:07 +02:00
Christian Muehlhaeuser
eb70419203 * Yay, even more WIP: New Home Screen. 2011-06-21 05:26:32 +02:00
Christian Muehlhaeuser
c0a970872b * Made deleting tracks from a collction a little faster. 2011-06-21 04:03:12 +02:00
jherskowitz
7caf66b086 Few more new/replacement icons 2011-06-20 21:09:13 -04:00
Dominik Schmidt
7c36fb68c6 Use ccache for windows builds 2011-06-20 21:59:58 +02:00
Jeff Mitchell
189f3b4aff Add reset logic to interface for use by all; fixes bug when re-listening to a source before a track change 2011-06-20 08:27:58 -04:00
Jeff Mitchell
ec83adcd39 Merge branch 'master' into more-generic-pi 2011-06-20 07:59:19 -04:00
Jeff Mitchell
97cf05c37c Initial generalizing work 2011-06-20 07:58:27 -04:00
Dominik Schmidt
5112d9356b Small clang fix 2011-06-20 04:51:57 +02:00
Jeff Mitchell
8f69b9b680 Fix catch-up functionality 2011-06-19 16:28:50 -04:00
Jeff Mitchell
989a16db7d Port logic from STV to audioengine regarding next track when listening along 2011-06-19 14:44:01 -04:00
Christian Muehlhaeuser
a687ca635f * Removed assert in portfwd module to make it compile on OS X. 2011-06-19 17:30:02 +02:00
Christian Muehlhaeuser
3552106e18 Merge pull request #32 from pawelprazak/master
Proposed Fix for bug TWK-221
2011-06-19 08:20:56 -07:00
jherskowitz
b0b266a639 Go back to other lightbulb icons 2011-06-19 11:07:07 -04:00
jherskowitz
792cf99b22 Bunch of tweaked and cleaned up icons 2011-06-19 09:39:29 -04:00
Jeff Mitchell
33ed1373e8 Simplify logic, de-duplicate 2011-06-19 09:23:56 -04:00
Leo Franchi
8939af7407 fix a bunch of warnings 2011-06-19 00:39:53 -04:00
Leo Franchi
0efe65d738 Fix signal/slot connection so stations work again 2011-06-18 22:18:18 -04:00
Jeff Mitchell
02414e8269 Update output location of .exe to be in build/ and update version number 2011-06-18 11:36:30 -04:00
Jeff Mitchell
c760d26b68 Listen along -- fix bug where catching up to the same track would stop audio. Also allow option to stop listening. 2011-06-18 11:12:34 -04:00
Jeff Mitchell
0abb46f3e6 bump nsi revision 2011-06-18 11:12:26 -04:00
Paweł Prażak
093e960af2 Fix for bug TWK-221, Segfault at start due to UPnP device description XML download fail.
Further work
FIXME: Figure out how to make it use the proper port (81 eg. instaed of standard 80)
       maybe it's upnpDiscover() that's not working correcly
2011-06-18 17:09:20 +02:00
Jeff Mitchell
c9c1cc5b17 Fix some paths in nsi file 2011-06-17 22:47:49 -04:00
Jeff Mitchell
d4adc55d67 Whitespace cleanup 2011-06-17 18:19:51 -04:00
Jeff Mitchell
3e7368bc32 Change latch menu item to "Catch Up" if you're already listening to that source, and allow Next button to catch you up too. 2011-06-17 18:17:33 -04:00
Jeff Mitchell
473d8994c8 When you are latched onto someone, if there is a track you can't resolve, keep trying to play the next track periodically, so that you'll pick back up with their stream when they next play a track that you can resolve. I can't test this now due to
firewall but I believe the code should be safe.
2011-06-17 16:11:20 -04:00
Leo Franchi
5615488284 Don't check for duration---it's not needed for loving 2011-06-17 15:26:33 -04:00
Jeff Mitchell
461854d158 Don't endlessely loop on a track when following if the person you're following stops playing. Also don't crash if they go away or time out. 2011-06-17 13:34:25 -04:00
Leo Franchi
56ed1c4ace set volume to 75% on startup on osx---it's not the system volume there 2011-06-17 13:25:20 -04:00
Leo Franchi
2805b08989 Compile on osx 2011-06-17 13:25:09 -04:00
Leo Franchi
e2b99b2628 don't crash so much on exit, it's not nice 2011-06-17 13:22:55 -04:00
Jeff Mitchell
b31ff998ee Don't allow yourself to follow...yourself. 2011-06-17 12:47:39 -04:00
Jeff Mitchell
f9dff94ab2 GCC suggests parens to make the logic obvious, so make it nice and obvious 2011-06-17 12:47:21 -04:00
Leo Franchi
f72c60969b allow dropping of results as well as queries on the categoryadd items
Fixes TWK-232
2011-06-17 12:40:30 -04:00
Leo Franchi
2088e78020 Notify of resolving finished when timeout is reached for resolvers that don't report back 2011-06-17 11:44:04 -04:00
Leo Franchi
994ed90ed6 When getting a query from a result, add the result itself to the query.
Fixes TWK-231
2011-06-17 11:44:04 -04:00
Jeff Mitchell
19acd9d47f Following is working now :-D 2011-06-17 10:24:54 -04:00
Jeff Mitchell
541fe95789 Add follow option to context menu, not quite working yet... 2011-06-17 09:54:37 -04:00
Christian Muehlhaeuser
570913a3b9 * Killed a few warnings. 2011-06-17 05:07:44 +02:00
Jeff Mitchell
e3a22ba4ee Fix stupid mistake that borked next/prev/seek 2011-06-16 22:27:07 -04:00
Christian Muehlhaeuser
c7b8acbdf6 * Also added new resolver settings icon. 2011-06-17 04:13:19 +02:00
Christian Muehlhaeuser
1bbbf93196 * Updated a few more icons. 2011-06-17 04:12:26 +02:00
Christian Muehlhaeuser
a557324d98 * New icons. WIP. 2011-06-17 03:30:19 +02:00
Christian Muehlhaeuser
1d28ddc3c8 * Removed old, obsolete icons. 2011-06-17 02:59:56 +02:00
Christopher Reichert
3efe0ff22b Added the love button.
Its in an odd place for now but Muesli is going to correct the
positioning manually. We need to get this button to switch to
notLoved.png when a track is no longer loved. More implementation
coming soon. For now this will send love status to lastfm.
2011-06-16 18:51:09 -05:00
Christian Muehlhaeuser
d7d97d60db * Added a WIP short style for our TrackViews. 2011-06-17 01:44:22 +02:00
Jeff Mitchell
32f6a42791 Fix some more incorrect signal/slot signatures 2011-06-16 18:19:46 -04:00
Jeff Mitchell
818636721a Update PlaylistInterface slot signatures 2011-06-16 18:08:57 -04:00
Jeff Mitchell
64cd6e584f Initial work on latch functionality 2011-06-16 18:02:41 -04:00
Christian Muehlhaeuser
00252e4e53 * This probably needs fixing some connects() now: Moved PlaylistInterface into Tomahawk namespace. 2011-06-16 23:05:40 +02:00
Jeff Mitchell
53ea9b2589 Less cryptic 2011-06-16 16:43:04 -04:00
Jeff Mitchell
3f05f4ea8b Add pliface_ptr 2011-06-16 16:41:09 -04:00
Leo Franchi
8a33a9edf4 new icons 2011-06-16 15:01:20 -04:00
Christian Muehlhaeuser
fcce5568b2 * Forgot to add new Query class, too. 2011-06-16 12:21:59 +02:00
Christian Muehlhaeuser
6337e3a498 * Refactored pipeline a bit further. 2011-06-16 12:17:41 +02:00
Jeff Mitchell
e6bb53c9f5 Delete lister after it's done, before returning 2011-06-15 09:08:13 -04:00
Jeff Mitchell
fb7f98c1fc Don't unconditionally watch for changes 2011-06-15 08:59:38 -04:00
Jeff Mitchell
be86cdd97c This shouldn't really be needed but maybe it fixes zizzifizzix's problem (or at least, anyone else from having it) 2011-06-15 08:46:01 -04:00
Alejandro Wainzinger
1c59840dd1 Pause timer should be single shot. 2011-06-15 00:33:26 -07:00
Alejandro Wainzinger
a306bdf53f Only clear Adium status on exit if plugin is actually in use. 2011-06-15 00:27:55 -07:00
Christian Muehlhaeuser
46fc9cb20a * Be cleverer with database threads, too. 2011-06-15 04:15:27 +02:00
Christian Muehlhaeuser
78e064e1c5 * Made the pipeline cleverer when it comes to using threads. 2011-06-15 04:08:32 +02:00
Jeff Mitchell
f5d61a60f8 Replace text with end-user version 2011-06-14 19:37:14 -04:00
Leo Franchi
e8b02406d5 put jreen back in its place 2011-06-14 19:33:00 -04:00
Leo Franchi
51e13ce11e 30 items backlog 2011-06-14 19:31:31 -04:00
Leo Franchi
bfda50e604 dedup my kthxbbw TWK-45 2011-06-14 19:27:17 -04:00
Christopher Reichert
bef7a63732 Added database commands for Social action.
Love button in audiocontrols sends message through info system
to sync love status with local database. The only social action
that is currently setup is lastfm's "love".
2011-06-14 16:12:56 -05:00
Jeff Mitchell
80ef9d6053 Some more scan logic fixes, and stop the scan timer while it's already performing a scan 2011-06-14 15:02:06 -04:00
Jeff Mitchell
6d4af9301c Fix some settings dialog logic 2011-06-14 14:14:52 -04:00
Jeff Mitchell
43c2aba4d2 Update some values/logic before it gets too public 2011-06-14 14:03:58 -04:00
Jeff Mitchell
4337a220b6 Remove warnings in adium plugin 2011-06-14 13:54:25 -04:00
Jeff Mitchell
019499632a Make twitter sync every 2.5 minutes 2011-06-14 13:48:29 -04:00
Jeff Mitchell
6f1d4a465e Merge branch 'master' into watchforchanges-ng 2011-06-14 13:44:02 -04:00
Leo Franchi
bc814e759f be less clever and waste more bandwidth 2011-06-14 12:07:23 -04:00
Jeff Mitchell
169917fd53 Merge remote branch 'origin/master' into watchforchanges-ng
Conflicts:
	src/tomahawkwindow.ui
2011-06-13 15:11:14 -04:00
Alejandro Wainzinger
508bed5ef4 Add consistent display of artist before song title in Adium Plugin. Fixes TWK-225. 2011-06-13 01:39:41 -07:00
Leo Franchi
6ff43b8aed guard against a null error-condition, c.f. TWK-224 2011-06-12 16:45:31 -04:00
Christian Muehlhaeuser
d4c68ddd27 * Try different highlight color for now-playing items. 2011-06-12 20:53:35 +02:00
Christian Muehlhaeuser
e3daa8c2d5 * Display unresolved queries greyed-out again. 2011-06-12 19:06:50 +02:00
Christian Muehlhaeuser
13d758d3eb * Fixed build scripts to ship app with libpng. 2011-06-12 18:36:27 +02:00
Leo Franchi
09be5a1a60 pita wip 2011-06-12 12:13:27 -04:00
Christian Muehlhaeuser
fbdf53de50 * Made sure we always restore the painter after using it. 2011-06-12 18:06:29 +02:00
Leo Franchi
298d0a08a0 Try harder to fix audiocontrol flickering 2011-06-12 11:05:13 -04:00
Christian Muehlhaeuser
327ce84e46 * Static method was meant to be public. 2011-06-12 08:33:47 +02:00
Christian Muehlhaeuser
22e2800e9e * Fixed two bugs I introduced with my last commit. 2011-06-12 06:19:03 +02:00
Christian Muehlhaeuser
8c10bdfb07 * WIP: Fulltext resolving, score bars and score column.
* Added social_attributes table to the database.
* Added db migration script.
* Fixed database migration.
2011-06-12 05:57:57 +02:00
Leo Franchi
35590c381c Don't flicker when pressing play/pause on osx 2011-06-11 14:26:16 -04:00
Leo Franchi
9874606929 Add workaround for QtCurve, so we don't set our own proxy style. Warning: WILL LOOK LIKE CRAP 2011-06-11 14:01:09 -04:00
Leo Franchi
9bf44b1e52 Hide now-playing push groupbox unless on osx 2011-06-11 13:53:15 -04:00
Leo Franchi
9d4642b453 make adium plugin build 2011-06-11 13:43:51 -04:00
Leo Franchi
5cfbcae95e Generate toma.hk urls instead of tomahawk://, so they can be shortened 2011-06-11 13:32:33 -04:00
Leo Franchi
419a0c806f Add Play/Next/Prev to menu and make space a global shortcut 2011-06-11 13:10:16 -04:00
Leo Franchi
badfe28626 Explicitly set Content-Type of POST to application/x-www-form-urlencoded, as Qt 4.8 changed teh default 2011-06-11 12:42:13 -04:00
Leo Franchi
1c43cabd7e don't crash when jason tries to use tomahawk 2011-06-11 12:18:12 -04:00
Leo Franchi
efc29a1c92 Remove deleted playlists from the UI immediately, not after dbcmd is completed
Otherwise if the DB is busy the user can delete playlists multiple times, crashing all his peers
2011-06-11 12:05:52 -04:00
Leo Franchi
ac7e547d1d Disable unindenting until I iron all the bugs out 2011-06-10 23:36:58 -04:00
Leo Franchi
5e3f465824 Allow qtscript resolvers to use QWebkit LocalStorage and DatabaseStorage HTML5 API 2011-06-10 23:32:40 -04:00
Leo Franchi
f3b9a7bdec Place editor properly: 2011-06-10 23:32:40 -04:00
Leo Franchi
c014ccdf33 enclose path in quotes on windows so it works with paths with spaces 2011-06-10 23:32:40 -04:00
Leo Franchi
0b2302a675 Move the indentation in a bit 2011-06-10 23:32:40 -04:00
Leo Franchi
92805d37c1 Add a "New Additions" entry to each source to show the SourceInfoWidget 2011-06-10 23:32:40 -04:00
Alejandro Wainzinger
5a38219754 Escape quotes, or Applescript gets confused. 2011-06-09 19:52:33 -07:00
Alejandro Wainzinger
112184c8fa If paused for a minute, clear Adium status. 2011-06-09 18:34:19 -07:00
Jeff Mitchell
6b3bb259d8 Merge branch 'master' into watchforchanges-ng
There's some ugliness on the music page...

Conflicts:
	src/settingsdialog.cpp
	src/stackedsettingsdialog.ui
2011-06-09 14:07:11 -04:00
Alejandro Wainzinger
3da78d7cee Adium plugin now does nothing on pause, and clears status on stop. 2011-06-08 17:56:14 -07:00
Alejandro Wainzinger
3277ad7802 Parse the "+" of a Tomahawk link as a space. Adium plugin defaults to using toma.hk links now. 2011-06-08 01:37:52 -07:00
Alejandro Wainzinger
8ca84e9ba2 Use just openLink in GAM to avoid including InfoSystem, and deal with the InfoCriteriaHash in the plguin. 2011-06-07 18:50:27 -07:00
Alejandro Wainzinger
23a9be18c6 Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-06-07 18:14:18 -07:00
Alejandro Wainzinger
b392151c56 Make Tomahawk link handling cleaner and less hackish (lfranchi++). Move openLinkFromHash to GlobalActionManager, to keep Tomahawk link handling simple. 2011-06-07 18:12:38 -07:00
Leo Franchi
1ff142616e remove old settings dialog.ui, just caused confusion 2011-06-07 16:59:19 -04:00
Leo Franchi
21479dbe0b set volume on startup too, from phonon 2011-06-07 16:59:19 -04:00
Leo Franchi
24502d8856 Update tomahawk volume when phonon volume is updated externally, lessen deafness 2011-06-07 16:59:19 -04:00
Frank Osterfeld
bee2a7165a Fix sorting by file size (Don't sort the formatted strings, but the actual file size).
Also, use TrackModel::Column enum instead of int constants.
2011-06-07 19:54:29 +02:00
Alejandro Wainzinger
3ec9308916 debug-- 2011-06-06 23:39:57 -07:00
Alejandro Wainzinger
df83239ad3 Style fix. 2011-06-06 23:22:44 -07:00
Alejandro Wainzinger
dd78a2097a Decode percent-encoded Tomahawk links. 2011-06-06 23:19:53 -07:00
Alejandro Wainzinger
3f8d27695e Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-06-06 21:24:30 -07:00
Alejandro Wainzinger
f0b1d49f6b Add tomahawk link to currently playing song, to Adium now-playing status. 2011-06-06 21:23:55 -07:00
Leo Franchi
8d3760f71e Merge branch 'master' of github.com:tomahawk-player/tomahawk 2011-06-06 08:39:09 -04:00
Alejandro Wainzinger
4f8165cc8a Check if Adium is running before setting status. Be more efficient about forming the Applescript string. 2011-06-05 17:57:33 -07:00
Christian Muehlhaeuser
1021e9c1b5 * Improved AudioEngine's internal phonon-state handling. 2011-06-05 23:20:09 +02:00
Leo Franchi
7cac0ed9bc Really don't go overboard asking for moods/styles 2011-06-05 16:47:32 -04:00
Leo Franchi
aa076684dc fix up checking for moods and styles 2011-06-05 16:40:35 -04:00
Christopher Reichert
5ec7e3340b re-resolve tracks when a resolver is added or removed.
The pipeline emits a signal to queries when a resolver is added/removed. The queries
take action based on their solved() status and if not solved() inform the pipeline to
re-resolve them.
2011-06-05 14:03:40 -05:00
Leo Franchi
7742e3091a show summary for songs as well 2011-06-05 13:56:23 -04:00
Christian Muehlhaeuser
297161c766 * Update thirdparty/jreen submodule. 2011-06-05 17:20:21 +02:00
Christian Muehlhaeuser
95a335813d Merge pull request #31 from euroelessar/master
Changes due to modified Jreen API
2011-06-05 06:33:10 -07:00
Leo Franchi
424424cf7b Allow for omitting @foo.com domains for jabber and google.
Also, make sip plugins clean up the config after themselves
2011-06-04 21:59:39 -04:00
Leo Franchi
4e2c5b23f7 Show google-specific text in add contact popup, fixes TWK-217 2011-06-04 21:09:29 -04:00
Leo Franchi
73e5828d41 attempt strange fix 2011-06-04 20:07:12 -04:00
Leo Franchi
e5bdab9f9b osx doesn't like hidden widgets added to layouts and shown later 2011-06-04 19:55:56 -04:00
Leo Franchi
d8d88826f5 rename SearchWidget to GlobalSearchWidget 2011-06-04 17:11:22 -04:00
Christian Muehlhaeuser
33a9391ee7 * Try to fix SearchWidget crash. 2011-06-04 22:58:58 +02:00
Christian Muehlhaeuser
2a43c7df78 * Try it with a parent. 2011-06-04 22:39:15 +02:00
Christian Muehlhaeuser
65c33e70f5 * Fixed OS X compilation. 2011-06-04 21:10:14 +02:00
Christian Muehlhaeuser
83ca3a1502 * Forgot to add some search widgets. 2011-06-04 20:50:49 +02:00
Christian Muehlhaeuser
2e9dc42696 * Added basic search widget. 2011-06-04 20:47:45 +02:00
Ruslan Nigmatullin
2d3f712f95 Fixes due to changed Jreen API 2011-06-04 23:48:27 +06:00
Christian Muehlhaeuser
34d9a723dd * Fixed potential memleak. 2011-06-04 14:43:31 +02:00
Jeff Mitchell
c2ffbbc5ac Fix compile, doh 2011-06-03 11:07:53 -04:00
Jeff Mitchell
95e2b84559 No sense having it in two places... 2011-06-03 11:05:01 -04:00
Jeff Mitchell
aed838193f See if defines are causing the twitter issues on Win 2011-06-03 11:01:27 -04:00
Christian Muehlhaeuser
6f4b43f9ff * Fixed AudioEngine deleting a sharedptr while it's being used by Phonon. 2011-06-03 15:27:34 +02:00
Alejandro Wainzinger
4619cd420a More style fixes. 2011-06-02 21:13:57 -07:00
Alejandro Wainzinger
e5cc13ac57 Fixes for style. 2011-06-02 18:53:36 -07:00
Alejandro Wainzinger
6500af65c0 Merge branch 'master' into adiumpush 2011-06-02 18:23:20 -07:00
Leo Franchi
59452f6163 Try to avoid showing the window before placing it 2011-06-02 17:24:44 -04:00
Leo Franchi
e130fc41ed resize dialog when it changes size, and hide/show
otherwise osx goes CRAZY PANTS
2011-06-01 20:29:54 -04:00
Jeff Mitchell
7c3d0eba95 Merge branch 'master' into watchforchanges-ng 2011-05-31 13:15:36 -04:00
Jeff Mitchell
c98842935d Merge branch 'master' into watchforchanges-ng
Conflicts:
	src/libtomahawk/infosystem/infosystem.cpp
	src/musicscanner.cpp
	src/scanmanager.cpp
	src/tomahawkapp.cpp
	src/tomahawkwindow.ui
2011-05-30 09:56:45 -04:00
Christian Muehlhaeuser
b5b8ba5a96 * Fixed shutdown freezes. 2011-05-29 11:14:20 +02:00
muesli
5d03b35101 Revert "Was trying to work on the crash on shutdown by making sure we explicitly delete items in tomahawkapp. Except where there are FIXMEs all are now explicitly deleted, in reverse order of instantiation. So far no help, but figured might as well keep the changes."
This reverts commit 6e19a85d73.
2011-05-28 16:51:04 +02:00
Jeff Mitchell
52b7465cf6 more debug 2011-05-28 10:24:35 -04:00
Jeff Mitchell
840e877456 More debug for chris 2011-05-28 10:15:37 -04:00
Jeff Mitchell
89f690a9e2 Add some extra debug 2011-05-28 10:11:01 -04:00
Jeff Mitchell
02c1cfe14e Update text to say what's actually going on 2011-05-28 10:01:33 -04:00
Jeff Mitchell
86f35ae304 Don't say we're processing events when we aren't anymore 2011-05-28 09:54:03 -04:00
Jeff Mitchell
2c48983aa1 Merge branch 'master' into watchforchanges-ng 2011-05-28 09:40:43 -04:00
Alejandro Wainzinger
cfe335ff8a Merge branch 'master' into adiumpush 2011-05-26 22:57:22 -07:00
Alejandro Wainzinger
a2b6463b04 Merge branch 'adiumpush' of github.com:tomahawk-player/tomahawk into adiumpush 2011-05-26 22:55:55 -07:00
Jeff Mitchell
c1c8e1c9a7 Make scanning more async so if you quit in the middle you don't have to sit there waiting for the entire scan to finish 2011-05-23 04:59:54 -04:00
Jeff Mitchell
c0772e5076 Merge remote branch 'origin/master' into watchforchanges-ng 2011-05-22 22:08:02 -04:00
Jeff Mitchell
0ea35a9b3e Add options for controlling scanning time and mode 2011-05-21 14:58:23 -04:00
Jeff Mitchell
345d6858ff Merge remote branch 'origin/master' into watchforchanges-ng 2011-05-21 11:02:37 -04:00
Jeff Mitchell
c297dcaf9e Merge remote branch 'origin/master' into watchforchanges-ng 2011-05-20 19:43:01 -04:00
Jeff Mitchell
ea6a86016a Merge branch 'master' into watchforchanges-ng 2011-05-20 19:42:43 -04:00
Jeff Mitchell
32c84b84bd Finish (for now) the file scanning code. (Also adds an update/rescan difference to the options, where one fully rescans and the other runs a normal update). N.B.: This code is currently hard-coded to watch for changes at 120 seconds and to use filemtimes, not dirmtimes. 2011-05-20 19:41:03 -04:00
Jeff Mitchell
c2884e696f More updates for file-mtime scanning 2011-05-20 14:46:55 -04:00
Jeff Mitchell
0a8e0daa57 WIP towards file mtime scanning 2011-05-20 14:01:10 -04:00
Jeff Mitchell
7a86391d7b Watching for changes works at a folder granularity now 2011-05-20 10:38:18 -04:00
Jeff Mitchell
98a23c6585 Merge branch 'master' into adiumpush
Conflicts:
	thirdparty/jreen
2011-05-16 22:06:41 -04:00
Alejandro Wainzinger
195f6921c0 Merge branch 'master' into adiumpush
Conflicts:
	thirdparty/jreen
2011-05-11 22:36:29 -07:00
Alejandro Wainzinger
df996769f8 Make layout a bit more aligned. 2011-05-07 15:58:16 -07:00
Alejandro Wainzinger
69a01c252a Add a few more guards for OS X. 2011-05-07 15:50:48 -07:00
Alejandro Wainzinger
0bac06b2c0 Add setting to enable/disable Adium now-playing (defaults to off, and only shows up on macs). 2011-05-07 15:45:34 -07:00
Alejandro Wainzinger
f4b4a021ee Add resumed, stopped, paused info. 2011-05-07 13:26:21 -07:00
Alejandro Wainzinger
8cc0277cca Catch up to the InfoSystem. 2011-05-07 12:25:17 -07:00
Alejandro Wainzinger
09817a7836 Merge branch 'master' into adiumpush
Conflicts:
	src/libtomahawk/infosystem/infosystemworker.cpp
2011-05-07 12:12:58 -07:00
Alejandro Wainzinger
fb9069320e Build AdiumPlugin, now a pushInfo-using InfoPlugin. 2011-05-07 12:03:52 -07:00
Alejandro Wainzinger
ccc4db2270 Copy over Adium files from Adium branch. 2011-05-05 22:14:30 -07:00
567 changed files with 29917 additions and 8251 deletions

7
.gitignore vendored
View File

@@ -11,4 +11,9 @@ moc_*
/tomahawk
thirdparty/qtweetlib/WARNING-twitter-api-keys
.kdev4
tomahawk.kdev4
*.kdev4
*.kate-swp
clang/
win/
gcc/
tags

View File

@@ -1,5 +1,6 @@
PROJECT( tomahawk )
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
SET( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
IF( ${CMAKE_VERSION} VERSION_GREATER 2.8.3 )
CMAKE_POLICY(SET CMP0017 NEW)
@@ -11,41 +12,77 @@ ENDIF( ${CMAKE_VERSION} VERSION_GREATER 2.8.3 )
SET( TOMAHAWK_ORGANIZATION_NAME "Tomahawk" )
SET( TOMAHAWK_ORGANIZATION_DOMAIN "tomahawk-player.org" )
SET( TOMAHAWK_APPLICATION_NAME "Tomahawk" )
SET( TOMAHAWK_VERSION "0.1.0" )
SET( TOMAHAWK_DESCRIPTION_SUMMARY "The social media player" )
SET( TOMAHAWK_VERSION_MAJOR 0 )
SET( TOMAHAWK_VERSION_MINOR 2 )
SET( TOMAHAWK_VERSION_PATCH 99 )
#SET( TOMAHAWK_VERSION_RC 0 )
# build options
option(BUILD_GUI "Build Tomahawk with GUI" ON)
option(BUILD_RELEASE "Generate TOMAHAWK_VERSION without GIT info" OFF)
# generate version string
# base string used in release and unstable builds
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION_MAJOR}.${TOMAHAWK_VERSION_MINOR}.${TOMAHAWK_VERSION_PATCH} )
IF( TOMAHAWK_VERSION_RC )
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}rc${TOMAHAWK_VERSION_RC} )
ENDIF()
# additional info for non-release builds
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)
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}.${TOMAHAWK_VERSION_DATE} )
ENDIF()
INCLUDE( CMakeVersionSource )
IF( CMAKE_VERSION_SOURCE )
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}-${CMAKE_VERSION_SOURCE} )
ENDIF()
ENDIF()
# set paths
SET( CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/CMakeModules" )
SET( THIRDPARTY_DIR ${CMAKE_SOURCE_DIR}/thirdparty )
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" )
# Check if we need qtgui:
IF( "${gui}" STREQUAL "no" )
ADD_DEFINITIONS( -DENABLE_HEADLESS )
MESSAGE( STATUS "Building in HEADLESS mode ***" )
FIND_PACKAGE( Qt4 4.7.0 COMPONENTS QtCore QtXml QtNetwork REQUIRED )
ELSE()
MESSAGE( STATUS "Building full GUI version ***" )
FIND_PACKAGE( Qt4 4.7.0 COMPONENTS QtGui QtCore QtXml QtNetwork REQUIRED )
ENDIF()
# installer creation
INCLUDE( TomahawkCPack.cmake )
#deps
INCLUDE( MacroOptionalFindPackage )
INCLUDE( MacroLogFeature )
# 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)
# Check if we need qtgui:
SET(NEEDED_QT4_COMPONENTS QtCore QtXml QtNetwork )
IF( NOT BUILD_GUI )
ADD_DEFINITIONS( -DENABLE_HEADLESS )
MESSAGE( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} in HEADLESS mode ***" )
ELSE()
MESSAGE( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} full GUI version ***" )
LIST(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" )
ENDIF()
find_package(Phonon REQUIRED)
if(PHONON_VERSION STRLESS "4.5.0")
message(FATAL_ERROR "Phonon version 4.5.0 or higher is required, you have version ${PHONON_VERSION}")
else()
message(STATUS "Phonon found; ensure that phonon-vlc is at least 0.4")
IF( BUILD_GUI AND UNIX AND NOT APPLE )
FIND_PACKAGE( X11 )
ENDIF()
macro_optional_find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS} )
macro_log_feature(QT4_FOUND "Qt" "A cross-platform application and UI framework" "http://qt.nokia.com" TRUE "" "If you see this, although libqt4-devel is installed, check whether \n the qtwebkit-devel package is installed as well")
macro_optional_find_package(Phonon 4.5.0)
macro_log_feature(PHONON_FOUND "Phonon" "The Phonon multimedia library" "http://phonon.kde.org" TRUE "" "")
if(PHONON_FOUND)
message(STATUS "Phonon found; ensure that phonon-vlc is at least 0.4")
endif()
macro_optional_find_package(LibEchonest 1.1.7)
@@ -59,6 +96,21 @@ macro_log_feature(QJSON_FOUND "QJson" "Qt library that maps JSON data to QVarian
macro_optional_find_package(Taglib 1.6.0)
macro_log_feature(TAGLIB_FOUND "TagLib" "Audio Meta-Data Library" "http://developer.kde.org/~wheeler/taglib.html" TRUE "" "taglib is needed for reading meta data from audio files")
include( CheckTagLibFileName )
check_taglib_filename( COMPLEX_TAGLIB_FILENAME )
macro_optional_find_package(Boost)
macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explaination
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 "" "")
# 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)
# this installs headers and such and should really be handled in a separate package by packagers
IF( INTERNAL_JREEN )
@@ -71,7 +123,7 @@ IF( INTERNAL_JREEN )
ELSE( INTERNAL_JREEN )
macro_optional_find_package(Jreen)
ENDIF( INTERNAL_JREEN )
macro_log_feature(LIBJREEN_FOUND "Jreen" "Qt XMPP Library" "http://gitorious.org/jreen/jreen" FALSE "" "Jreen is needed for the Jabber SIP plugin. \n\n Use -DINTERNAL_JREEN=ON to build the git submodule inside Tomahawk \n Be aware this installs a full jreen with headers and everything!\n")
macro_log_feature(LIBJREEN_FOUND "Jreen" "Qt XMPP Library" "https://github.com/euroelessar/jreen" FALSE "" "Jreen is needed for the Jabber SIP plugin. \n\n Use -DINTERNAL_JREEN=ON to build the git submodule inside Tomahawk \n Be aware this installs a full jreen with headers and everything!\n")
# this installs headers and such and should really be handled in a separate package by packagers
IF( INTERNAL_QTWEETLIB )
@@ -95,10 +147,16 @@ SET( LIBPORTFWD_LIBRARIES ${LIBPORTFWD_LIBRARY} )
ADD_SUBDIRECTORY( ${THIRDPARTY_DIR}/libportfwd )
# we need pthreads too
find_package(Threads)
macro_optional_find_package(Threads)
macro_log_feature(THREADS_FOUND "Threads" "Threading Library" "" TRUE "" "Platform specific library for threading")
find_package(KDE4Installed)
find_package(KDE4)
macro_optional_find_package(KDE4)
macro_optional_find_package(KDE4Installed)
# this was used before we had FindKDE4Installed, just leaving it here to keep the flags
# for future kde integration
# macro_optional_find_package(KDE4)
IF(KDE4_FOUND)
#KDE4 adds and removes some compiler flags that we don't like
STRING( REPLACE "-std=iso9899:1990" "" CLEAN_C_FLAGS ${CMAKE_C_FLAGS} )
@@ -107,9 +165,6 @@ ELSE()
SET( CLEAN_C_FLAGS ${CMAKE_C_FLAGS} )
ENDIF()
include( CheckTagLibFileName )
check_taglib_filename( COMPLEX_TAGLIB_FILENAME )
IF( WIN32 )
find_library(QTSPARKLE_LIBRARIES qtsparkle)
ENDIF( WIN32 )

View File

@@ -1,3 +1,5 @@
SET(WINDRES_EXECUTABLE ${CMAKE_RC_COMPILER})
# This macro is taken from kdelibs/cmake/modules/KDE4Macros.cmake.
#
# Copyright (c) 2006-2009 Alexander Neundorf, <neundorf@kde.org>

View File

@@ -0,0 +1,23 @@
find_program(DATE_EXECUTABLE NAMES date)
mark_as_advanced(DATE_EXECUTABLE)
if(DATE_EXECUTABLE)
execute_process(
COMMAND ${DATE_EXECUTABLE} +%Y
OUTPUT_VARIABLE CMAKE_DATESTAMP_YEAR
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
execute_process(
COMMAND ${DATE_EXECUTABLE} +%m
OUTPUT_VARIABLE CMAKE_DATESTAMP_MONTH
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
execute_process(
COMMAND ${DATE_EXECUTABLE} +%d
OUTPUT_VARIABLE CMAKE_DATESTAMP_DAY
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
endif()

View File

@@ -0,0 +1,45 @@
# Try to identify the current development source version.
set(CMAKE_VERSION_SOURCE "")
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/HEAD)
find_program(GIT_EXECUTABLE NAMES git git.cmd)
mark_as_advanced(GIT_EXECUTABLE)
if(GIT_EXECUTABLE)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=7 HEAD
OUTPUT_VARIABLE head
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
if(head)
set(branch "")
execute_process(
COMMAND ${GIT_EXECUTABLE} name-rev HEAD
OUTPUT_VARIABLE branch
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
string(REGEX REPLACE "HEAD " "" branch "${branch}")
set(CMAKE_VERSION_SOURCE "git-${branch}-${head}")
execute_process(
COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
execute_process(
COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
OUTPUT_VARIABLE dirty
OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
if(dirty)
set(CMAKE_VERSION_SOURCE "${CMAKE_VERSION_SOURCE}-dirty")
endif()
endif()
endif()
elseif(EXISTS ${CMAKE_SOURCE_DIR}/CVS/Repository)
file(READ ${CMAKE_SOURCE_DIR}/CVS/Repository repo)
set(branch "")
if("${repo}" MATCHES "\\.git/")
string(REGEX REPLACE ".*\\.git/([^\r\n]*).*" "-\\1" branch "${repo}")
endif()
set(CMAKE_VERSION_SOURCE "cvs${branch}")
endif()

View File

@@ -12,9 +12,12 @@
INCLUDE(CheckSymbolExists)
INCLUDE(FindLibraryWithDebug)
if(NOT CLUCENE_MIN_VERSION)
set(CLUCENE_MIN_VERSION "0.9.23")
endif(NOT CLUCENE_MIN_VERSION)
IF(CLucene_FIND_VERSION)
SET(CLUCENE_MIN_VERSION ${CLucene_FIND_VERSION})
ELSEIF()
SET(CLUCENE_MIN_VERSION "0.9.23")
ENDIF(CLucene_FIND_VERSION)
IF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake)

View File

@@ -38,14 +38,14 @@ else(PHONON_FOUND)
find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h PATHS ${KDE4_INCLUDE_INSTALL_DIR} ${QT_INCLUDE_DIR} ${INCLUDE_INSTALL_DIR} ${QT_LIBRARY_DIR})
find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h)
if(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
_phonon_find_version()
if(PHONON_INCLUDE_DIR AND PHONON_LIBRARY AND NOT PHONON_VERSION VERSION_LESS ${Phonon_FIND_VERSION})
set(PHONON_LIBS ${phonon_LIB_DEPENDS} ${PHONON_LIBRARY})
set(PHONON_INCLUDES ${PHONON_INCLUDE_DIR}/KDE ${PHONON_INCLUDE_DIR})
set(PHONON_FOUND TRUE)
_phonon_find_version()
else(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
else(PHONON_INCLUDE_DIR AND PHONON_LIBRARY AND NOT PHONON_VERSION VERSION_LESS ${Phonon_FIND_VERSION})
set(PHONON_FOUND FALSE)
endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY AND NOT PHONON_VERSION VERSION_LESS ${Phonon_FIND_VERSION})
if(PHONON_FOUND)
if(NOT PHONON_FIND_QUIETLY)

View File

@@ -0,0 +1,48 @@
# - Try to find QCA2 (Qt Cryptography Architecture 2)
# Once done this will define
#
# QCA2_FOUND - system has QCA2
# QCA2_INCLUDE_DIR - the QCA2 include directory
# QCA2_LIBRARIES - the libraries needed to use QCA2
# QCA2_DEFINITIONS - Compiler switches required for using QCA2
#
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
# Copyright (c) 2006, Michael Larouche, <michael.larouche@kdemail.net>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
include(FindLibraryWithDebug)
if (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES)
# in cache already
set(QCA2_FOUND TRUE)
else (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES)
if (NOT WIN32)
find_package(PkgConfig)
pkg_check_modules(PC_QCA2 qca2)
set(QCA2_DEFINITIONS ${PC_QCA2_CFLAGS_OTHER})
endif (NOT WIN32)
find_library_with_debug(QCA2_LIBRARIES
WIN32_DEBUG_POSTFIX d
NAMES qca
HINTS ${PC_QCA2_LIBDIR} ${PC_QCA2_LIBRARY_DIRS}
)
find_path(QCA2_INCLUDE_DIR qca.h
HINTS ${PC_QCA2_INCLUDEDIR} ${PC_QCA2_INCLUDE_DIRS}
PATH_SUFFIXES QtCrypto)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(QCA2 DEFAULT_MSG QCA2_LIBRARIES QCA2_INCLUDE_DIR)
mark_as_advanced(QCA2_INCLUDE_DIR QCA2_LIBRARIES)
endif (QCA2_INCLUDE_DIR AND QCA2_LIBRARIES)

View File

@@ -0,0 +1,24 @@
[Settings]
NumFields=3
[Field 1]
Type=Label
Left=0
Right=-1
Top=0
Bottom=24
[Field 2]
Type=RadioButton
Left=30
Right=-1
Top=50
Bottom=58
State=1
[Field 3]
Type=RadioButton
Left=30
Right=-1
Top=70
Bottom=78

View File

@@ -20,53 +20,54 @@
!endif
!define MING_BIN "${MING_PATH}/bin"
!define MING_LIB "${MING_PATH}/lib"
!define ROOT_PATH "..\..\.." ; assuming the script is in ROOT/admin/win/nsi
!define BUILD_PATH "${ROOT_PATH}\build"
!define BUILD_PATH "@CMAKE_BINARY_DIR@"
!define SOURCE_PATH "@CMAKE_SOURCE_DIR@"
!define QT_DLL_PATH "${MING_BIN}"
!define SQLITE_DLL_PATH "${MING_LIB}/qt4/plugins/sqldrivers"
!define IMAGEFORMATS_DLL_PATH "${MING_LIB}/qt4/plugins/imageformats"
!define VLC_PATH "${ROOT_PATH}\..\vlc"
!define VLC_PLUGIN_PATH "${VLC_PATH}\plugins"
; We use official release plugins
; mingw32-vlc from obs misses a lot and has even broken ones probably
!define VLC_PATH "${SOURCE_PATH}\admin\win\vlc\prefix" ; SIC! ^
!define VLC_BIN "${VLC_PATH}\bin"
!define VLC_PLUGIN_PATH "${VLC_BIN}\plugins"
!define NSI_PATH "${SOURCE_PATH}/admin/win/nsi"
;-----------------------------------------------------------------------------
; Increment installer revision number as part of this script.
; Installer version
;-----------------------------------------------------------------------------
!define /file REVISION_LAST revision.txt
!define /math REVISION ${REVISION_LAST} + 1
!delfile revision.txt
!appendfile revision.txt ${REVISION}
!ifndef VER_MAJOR && VER_MINOR && VER_BUILD
!define VER_MAJOR "0"
!define VER_MINOR "1"
!define VER_BUILD "0rc2"
!endif
!define VERSION "${VER_MAJOR}.${VER_MINOR}.${VER_BUILD}"
!define VER_MAJOR "@CPACK_PACKAGE_VERSION_MAJOR@"
!define VER_MINOR "@CPACK_PACKAGE_VERSION_MINOR@"
!define VER_BUILD "@CPACK_PACKAGE_VERSION_PATCH@"
!define VERSION "@CPACK_PACKAGE_VERSION@"
;-----------------------------------------------------------------------------
; Installer build timestamp.
;-----------------------------------------------------------------------------
!define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p (rev. ${REVISION})"
!define /date BUILD_TIME "built on %Y/%m/%d at %I:%M %p"
;-----------------------------------------------------------------------------
; Initial installer setup and definitions.
;-----------------------------------------------------------------------------
Name "Tomahawk"
Name "@CPACK_NSIS_PACKAGE_NAME@"
Caption "Tomahawk Installer"
BrandingText "Tomahawk ${VERSION} -- ${BUILD_TIME}"
OutFile "tomahawk-${VERSION}.exe"
InstallDir "$PROGRAMFILES\Tomahawk"
OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@"
InstallDir "$PROGRAMFILES\@CPACK_PACKAGE_INSTALL_DIRECTORY@"
InstallDirRegKey HKCU "Software\Tomahawk" ""
InstType Standard
InstType Full
InstType Minimal
CRCCheck On
SetCompressor /SOLID lzma
SetCompressor @CPACK_NSIS_COMPRESSOR@
RequestExecutionLevel user ;Now using the UAC plugin.
ReserveFile tomahawk.ini
ReserveFile NSIS.InstallOptions.ini
ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
@CPACK_NSIS_SECTION_SELECTED_VARS@
;-----------------------------------------------------------------------------
; Include some required header files.
;-----------------------------------------------------------------------------
@@ -89,17 +90,17 @@ ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll"
; Modern User Interface (MUI) defintions and setup.
;-----------------------------------------------------------------------------
!define MUI_ABORTWARNING
!define MUI_ICON installer.ico
!define MUI_UNICON installer.ico
!define MUI_WELCOMEFINISHPAGE_BITMAP welcome.bmp
!define MUI_WELCOMEPAGE_TITLE "Tomahawk ${VERSION} Setup$\r$\nInstaller Build Revision ${REVISION}"
!define MUI_ICON ${NSI_PATH}\installer.ico
!define MUI_UNICON ${NSI_PATH}\installer.ico
!define MUI_WELCOMEFINISHPAGE_BITMAP ${NSI_PATH}\welcome.bmp
!define MUI_WELCOMEPAGE_TITLE "@CPACK_PACKAGE_NAME@ ${VERSION} Setup$\r$\nInstaller"
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation.$\r$\n$\r$\n$_CLICK"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP page_header.bmp
!define MUI_HEADERIMAGE_BITMAP ${NSI_PATH}\page_header.bmp
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_FINISHPAGE_TITLE "Tomahawk Install Completed"
!define MUI_FINISHPAGE_LINK "Click here to visit the Tomahawk website."
!define MUI_FINISHPAGE_LINK_LOCATION "http://tomahawk-player.org/"
!define MUI_FINISHPAGE_TITLE "@CPACK_PACKAGE_NAME@ Install Completed"
!define MUI_FINISHPAGE_LINK "Click here to visit the @CPACK_PACKAGE_NAME@ website."
!define MUI_FINISHPAGE_LINK_LOCATION "http://@TOMAHAWK_ORGANIZATION_DOMAIN@"
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!ifdef OPTION_FINISHPAGE_RELEASE_NOTES
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
@@ -202,40 +203,37 @@ Function PageReinstall
IntCmp $R0 ${VER_MINOR} build_check new_version older_version
build_check:
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionBuild"
IntCmp $R0 ${VER_BUILD} revision_check new_version older_version
revision_check:
ReadRegDWORD $R0 HKLM "Software\Tomahawk" "VersionRevision"
IntCmp $R0 ${REVISION} same_version new_version older_version
IntCmp $R0 ${VER_BUILD} same_version new_version older_version
new_version:
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 1" "Text" "An older version of Tomahawk is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 2" "Text" "Uninstall before installing"
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 3" "Text" "Do not uninstall"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "An older version of Tomahawk is installed on your system. It is recommended that you uninstall the current version before installing. Select the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" "Uninstall before installing"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" "Do not uninstall"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install Tomahawk."
StrCpy $R0 "1"
Goto reinst_start
older_version:
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 1" "Text" "A newer version of Tomahawk is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 2" "Text" "Uninstall before installing"
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 3" "Text" "Do not uninstall"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "A newer version of Tomahawk is already installed! It is not recommended that you install an older version. If you really want to install this older version, it is better to uninstall the current version first. Select the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" "Uninstall before installing"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" "Do not uninstall"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose how you want to install Tomahawk."
StrCpy $R0 "1"
Goto reinst_start
same_version:
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 1" "Text" "Tomahawk ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 2" "Text" "Add/Reinstall components"
!insertmacro INSTALLOPTIONS_WRITE "tomahawk.ini" "Field 3" "Text" "Uninstall Tomahawk"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 1" "Text" "Tomahawk ${VERSION} is already installed.\r\nSelect the operation you want to perform and click Next to continue."
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 2" "Text" "Add/Reinstall components"
!insertmacro INSTALLOPTIONS_WRITE "NSIS.InstallOptions.ini" "Field 3" "Text" "Uninstall Tomahawk"
!insertmacro MUI_HEADER_TEXT "Already Installed" "Choose the maintenance option to perform."
StrCpy $R0 "2"
reinst_start:
!insertmacro INSTALLOPTIONS_DISPLAY "tomahawk.ini"
!insertmacro INSTALLOPTIONS_DISPLAY "NSIS.InstallOptions.ini"
FunctionEnd
Function PageLeaveReinstall
!insertmacro INSTALLOPTIONS_READ $R1 "tomahawk.ini" "Field 2" "State"
!insertmacro INSTALLOPTIONS_READ $R1 "NSIS.InstallOptions.ini" "Field 2" "State"
StrCmp $R0 "1" 0 +2
StrCmp $R1 "1" reinst_uninstall reinst_done
StrCmp $R0 "2" 0 +3
@@ -262,7 +260,6 @@ FunctionEnd
# INSTALLER SECTIONS #
# #
##############################################################################
Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
SectionIn 1 2 3 RO
SetDetailsPrint listonly
@@ -294,8 +291,8 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
!endif
;License & release notes.
File "${ROOT_PATH}\LICENSE.txt"
File /oname=NOTES.txt RELEASE_NOTES.txt
File "@CPACK_RESOURCE_FILE_LICENSE@"
File /oname=NOTES.txt ${NSI_PATH}\RELEASE_NOTES.txt
;QT stuff:
File "${QT_DLL_PATH}\QtCore4.dll"
@@ -330,15 +327,15 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${MING_BIN}\libdbus-1-3.dll"
File "${MING_BIN}\dbus-daemon.exe"
File "${MING_BIN}\libphonon.dll"
File "${VLC_BIN}\libphonon.dll"
SetOutPath "$INSTDIR\phonon_backend"
File "${MING_BIN}\phonon_backend\phonon_vlc.dll"
File "${VLC_BIN}\phonon_backend\phonon_vlc.dll"
SetOutPath "$INSTDIR"
;VLC
;SetOutPath "$INSTDIR\phonon_backend"
File "${VLC_PATH}\libvlc.dll"
File "${VLC_PATH}\libvlccore.dll"
File "${VLC_BIN}\libvlc.dll"
File "${VLC_BIN}\libvlccore.dll"
SetOutPath "$INSTDIR\plugins"
File /r "${VLC_PLUGIN_PATH}\*.dll"
SetOutPath "$INSTDIR"
@@ -566,7 +563,7 @@ SectionEnd
##############################################################################
Function .onInit
!insertmacro INSTALLOPTIONS_EXTRACT "tomahawk.ini"
!insertmacro INSTALLOPTIONS_EXTRACT "NSIS.InstallOptions.ini"
;Remove Quick Launch option from Windows 7, as no longer applicable - usually.
${IfNot} ${AtMostWinVista}

77
CPackOptions.cmake.in Normal file
View File

@@ -0,0 +1,77 @@
# This file is configured at cmake time, and loaded at cpack time.
# To pass variables to cpack from cmake, they must be configured
# in this file.
if(CPACK_GENERATOR MATCHES "NSIS")
if( NOT EXISTS "@CMAKE_SOURCE_DIR@/admin/win/vlc/")
MESSAGE(FATAL_ERROR "\n You don't have vlc in your admin/win/ dir. \n Please change into that dir and execute 'sh update-vlc.sh'" )
endif()
#SET(CPACK_NSIS_INSTALL_ROOT "@CPACK_NSIS_INSTALL_ROOT@")
# set the install/unistall icon used for the installer itself
# There is a bug in NSI that does not handle full unix paths properly.
#SET(CPACK_NSIS_MUI_ICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeLogo.ico")
#SET(CPACK_NSIS_MUI_UNIICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeLogo.ico")
# set the package header icon for MUI
#SET(CPACK_PACKAGE_ICON "@CMake_SOURCE_DIR@/Utilities/Release\\CMakeInstall.bmp")
# tell cpack to create links to the doc files
#SET(CPACK_NSIS_MENU_LINKS
# "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake-gui.html" "cmake-gui Help"
# "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake.html" "CMake Help"
# "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake-properties.html"
# "CMake Properties and Variables Help"
# "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/ctest.html" "CTest Help"
# "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake-modules.html" "CMake Modules Help"
# "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cmake-commands.html" "CMake Commands Help"
# "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/cpack.html" "CPack Help"
# "http://www.cmake.org" "CMake Web Site"
# )
# Use the icon from cmake-gui for add-remove programs
#SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\cmake-gui.exe")
#
#SET(CPACK_NSIS_PACKAGE_NAME "@CPACK_NSIS_PACKAGE_NAME@")
#SET(CPACK_NSIS_DISPLAY_NAME "@CPACK_NSIS_PACKAGE_NAME@, a cross-platform, open-source build system")
#SET(CPACK_NSIS_HELP_LINK "http://www.cmake.org")
#SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.kitware.com")
#SET(CPACK_NSIS_CONTACT @CPACK_PACKAGE_CONTACT@)
#SET(CPACK_NSIS_MODIFY_PATH ON)
##### all options
#CPACK_NSIS_MUI_ICON The icon file (.ico) for the generated install program. Both this and CPACK_NSIS_MUI_UNIICON need to set for this to have any effect. installer.ico
#CPACK_NSIS_MUI_UNIICON The icon file (.ico) for the generated uninstall program. Both this and CPACK_NSIS_MUI_ICON need to set for this to have any effect. uninstaller.ico
SET( CPACK_PACKAGE_ICON @CMAKE_SOURCE_DIR@/admin/win/nsi/installer.ico ) # A branding image that will be displayed on the top bar inside the installer. installer.bmp
#CPACK_NSIS_EXTRA_INSTALL_COMMANDS Extra NSIS commands that will be added to the install Section. ExecWait '\\\"$INSTDIR\\\\vcredist_x86.exe\\\" /q:a'
#CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS Extra NSIS commands that will be added to the uninstall Section.
SET( CPACK_NSIS_COMPRESSOR "/SOLID lzma" ) # The arguments that will be passed to the NSIS SetCompressor command. /SOLID lzma
#CPACK_NSIS_MODIFY_PATH If this is set to "ON", then an extra page will appear in the installer that will allow the user to choose whether the program directory should be added to the system PATH variable. ON
#CPACK_NSIS_DISPLAY_NAME Undocumented. "${CPACK_PACKAGE_INSTALL_DIRECTORY} My Famous Project"
#CPACK_NSIS_INSTALLED_ICON_NAME Set the icon used for the Windows "Add or Remove Programs" tool. "bin\\\\MyExecutable.exe"
#CPACK_NSIS_HELP_LINK Adds link to registry. URI. "http:\\\\\\\\www.my-project-home-page.org"
#CPACK_NSIS_URL_INFO_ABOUT Adds link to registry and the vendor in add/remove programs' "Click here for support information" in program entry links here. "http:\\\\\\\\www.my-personal-home-page.com"
#CPACK_NSIS_CONTACT Adds link to add/remove programs' "Click here for support information" in program entry. "me@my-personal-home-page.com"
#CPACK_NSIS_CREATE_ICONS_EXTRA Additional NSIS commands for creating start menu shortcuts. set(CPACK_NSIS_CREATE_ICONS "CreateShortCut '\$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\${PROJECT_NAME}.lnk' '\$INSTDIR\\\\${PROJECT_NAME}.exe'")
#CPACK_NSIS_DELETE_ICONS_EXTRA Undocumented. Possibly: Additional NSIS commands to uninstall start menu shortcuts.
#CPACK_NSIS_MENU_LINKS Used to override the Start Menu links. "doc/cmake-@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@/CMakeSetup.html" "CMakeSetup Help"
#CPACK_NSIS_MUI_FINISHPAGE_RUN If used, will make it possible for user to choose (on an additional page, displayed at the end of the installation) to run intalled program. Should point to program name to run, seemingly without any sub-directories of the installation directory in case program installed in such sub-directories (but please check generated NSIS script if you can't make it work). "MyExecutable.exe"
endif(CPACK_GENERATOR MATCHES "NSIS")
## include the cpack options for qt dialog if they exisit
## they might not if qt was not enabled for the build
#INCLUDE("@QT_DIALOG_CPACK_OPTIONS_FILE@" OPTIONAL)
#if("${CPACK_GENERATOR}" STREQUAL "PackageMaker")
# if(CMAKE_PACKAGE_QTGUI)
# set(CPACK_PACKAGE_DEFAULT_LOCATION "/Applications")
# else(CMAKE_PACKAGE_QTGUI)
# set(CPACK_PACKAGE_DEFAULT_LOCATION "/usr")
# endif(CMAKE_PACKAGE_QTGUI)
#endif("${CPACK_GENERATOR}" STREQUAL "PackageMaker")
SET( CMAKE_SOURCE_DIR @CMAKE_SOURCE_DIR@ )
SET( CMAKE_BINARY_DIR @CMAKE_BINARY_DIR@ )

117
ChangeLog
View File

@@ -1,22 +1,116 @@
Version 0.3.0:
* Show recently added playlists in dashboard rather than recently opened
playlists.
* Added MPRIS 2.1 support.
Version 0.2.3:
* Fixed opening Rdio and Spotify links.
* Fixed potential crash in sidebar during syncing of sources.
* When Listening Along, the last song a peer plays is no longer duplicated.
* Fixed an issue where the Twitter plugin could get out of sync if the
database was cleared, leading to eventual crashes when re-connecting.
* Fixed duplicate albums showing up on Dashboard.
* Automatically sort search results by score.
* Fixed stations being stuck not fetching more songs.
* Fixed issue where artist bio could be referring to a different artist.
* Opening a "tomahawk" URL (or other URL with Tomahawk) brings the Tomahawk
window to the foreground.
Version 0.2.2:
* Fixed crash pressing previous and next when playing a song from the Queue.
* Fixed issue where wrench for newly added resolvers would not show up.
* Fixed sidebar statistics not updating after collection scan finished.
* Fixed omitting a few tracks in the Collection tree-view.
* Fixed sidebar & track sorting issues.
* Seek- & volume sliders now directly jump to the position you clicked on.
* Added ability to drag artists and albums within Tomahawk.
* (OS X) Fixed Ogg Vorbis support.
Version 0.2.1:
* Fixed crashing trying to play an unavailable track.
* Fixed a crash caused by using Javascript resolvers.
* Fixed searching with Javascript resolvers.
Version 0.2.0:
* Re-resolve queries when their resolved-to source goes offline.
* Cleanup formatting of Preference/Configure and Diagnostics windows.
* Add selection indicator on album art.
* Fix inability to create Echonest playlists based solely on style or mood.
* Created new Artist & Album page, showing various related information.
* Update playlists in dashboard to keep them in sync.
* Support Rdio track URLs and ability to drop them onto Tomahawk.
* Change "Recently Played" page to "Dashboard".
* Prioritize resolving newer queries to make GUI more responsive.
* Automatically expand local collection node in sidebar on launch.
* Display spinner animation while searching for tracks.
* Let Tomahawk-headless users trigger a rescan with --filescan.
* Include Stations and Automatic Playlists in "New Stations and Playlists".
* Always keep current page and sidebar selection in sync.
* New icon theme and many design tweaks.
* Fixed bug where drop indicator wouldn't show below the last track of a
playlist.
* Added support for "playing" Spotify track URLs (and t.co and bit.ly
shortened track URLs) and ability to drag/drop them into Tomahawk.
* Added support for JSPF playlists (XSPF via JSON).
* Scroll per pixel to making scrolling feel more natural.
* Filter out duplicate tracks in Collection tree view.
* Spotify resolver now honors SOCKS5 proxy settings.
* Made "show offline sources" menu option a toggle instead of two separate
entries.
* Properly decode escaped characters coming from HTTP API.
* Handle/display resolver file paths becoming invalid in Preferences.
* Fixed track skipping-on-pause bug when using Gstreamer backend.
* Fixed a few crashes that could occur when fetching data from Last.fm.
* Made Twitter dialog more readable/understandable.
* Fixed streaming from https:// links.
* Implement new Javascript resolver API and ability to present config
dialogs for resolvers.
* Show when a track was played in the Recently Played tracks history.
* Added context menus for Artists and Albums.
* Fixed playlist bugs that would cause track to stop playing when dropping
or moving items in the same playlist.
* Set volume to 75% on startup.
* Added "listen along" feature (and ability to "catch up").
* Added "love" feature - also "loves" track on Last.fm.
* Twitter checks for updates less often now, saving user API calls from
running out when using multiple clients.
* Added score column and score bars to indicate resolver match certainty.
* Added "New Additions" page for each source.
* Improved tomahawk:// link handling. Added support for http://toma.hk/.
* Fixed sorting by file size.
* Improved the way Adium status is updated with now-playing information.
* Re-resolve tracks when a resolver is added/removed/enabled/disabled.
* Added global search function that searches all available sources.
* Collection scanner can now run automatically, watching files and dirs for
changes.
* Added Pipeline status view.
* Allow seeking in songs - if supported by audio backend.
* Added ability to make a copy of a peer's playlist.
* Shuffle and Repeat settings are stored on a playlist by playlist basis.
* (Linux) Desktop notifications for now playing.
* (OS X) Removed "test login" button from Last.fm settings.
* (OS X) Added MediaKey support.
* (OS X) Don't quit on window close to conform to best practices.
Version 0.1.0:
* Fixed stations so they resolve against all available sources instead of
only local and friend's collections.
* Add a Song seed for stations and automatic playlists, and allow dragging of
any tracks to the New Stations entry to create a pre-seeded station.
* Add a Song seed for stations and automatic playlists, and allow dragging
of any tracks to the New Stations entry to create a pre-seeded station.
* Added auto-completion for artists while filling in a station or automatic
playlist.
* SOCKS5 proxy support. Noproxy hosts are also supported but no wildcard
support (yet).
* Support loading of - and exporting to - .xspf playlists
* Added Tomahawk:// protocol support and share links for many things including
tracks, playlists, and stations.
* Support loading of - and exporting to - .xspf playlists.
* Added Tomahawk:// protocol support and share links for many things
including tracks, playlists, and stations.
* Autoload automatically detected resolvers on startup.
* Fix issue where track resolving spinner never stopped if tracks were
removed from playlist while resolving.
* Twitter & Jabber profile pictures are shown.
* Fix issues with stations where multiple tracks could be added at once.
* Allow multiple accounts of the same type.
* Add new Google account type that is a thin wrapper around a Jabber plugin.
* Add new Google account type, a thin wrapper around a Jabber plugin.
* Overhaul the settings dialog interface.
* Resolvers can now be enabled and disabled, and some can be configured
directly in Tomahawk, for example the new Spotify resolver.
@@ -24,21 +118,21 @@ Version 0.1.0:
as a node under the Super Collection.
* Fix massive speed bottleneck on startup in the case of many recently
played playlists.
* Removed filter and song view from Super Collection, coming back in the next
release.
* Removed filter and song view from Super Collection, coming back in the
next release.
* Browse and play collections in our snappy tree-mode, which also shows
images for artists and albums.
* Fixed crash that could occur when playing a track from a browser.
* Fixed a crash caused by sources going on or offline.
* Huge optimizations in the resolving pipeline.
* Improved the handling of automatic status messages for Google Talk
* Improved the handling of automatic status messages for Google Talk.
* Switch to Phonon sound system, allowing us to support a wide variety
of audio formats.
* UI tweaks and cleanup.
* (OS X) Open configuration dialogs as sliding sheets.
* (OS X) Increase our available file watches to the maximum that the system
reports.
* (OS X) Added 'Window' menu with zoom/minimize actions
* (OS X) Added 'Window' menu with zoom/minimize actions.
Version 0.0.3:
* Show spinner while resolving playlists.
@@ -57,8 +151,9 @@ Version 0.0.3:
* Faster painting of playlists with lots of unresolved tracks.
* Prefer local results when results' score is equal.
* (Windows) The tomahawk:// protocol handler works on Windows now.
* (Windows) Fixed launching Tomahawk from Windows installer with admin privileges.
* (Windows) Prevent launching a second instance on Windows.
* (Windows) Fixed launching Tomahawk from Windows installer with admin
privileges.
Version 0.0.2:
* Don't reconnect to Jabber if the settings dialog is closed successfully

4
README
View File

@@ -19,6 +19,10 @@ 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)
Doxygen Documentation
---------------------
See: http://dev.tomahawk-player.org/api/classes.html
Dependencies
------------

53
TomahawkCPack.cmake Normal file
View File

@@ -0,0 +1,53 @@
INCLUDE( InstallRequiredSystemLibraries )
SET( CPACK_PACKAGE_CONTACT "Dominik Schmidt <domme@tomahawk-player.org>" )
SET( CPACK_PACKAGE_FILE_NAME tomahawk-${TOMAHAWK_VERSION} ) # Package file name without extension. Also a directory of installer cmake-2.5.0-Linux-i686
# CPACK_GENERATOR CPack generator to be used STGZ;TGZ;TZ
# CPACK_INCLUDE_TOPLEVEL_DIRECTORY Controls whether CPack adds a top-level directory, usually of the form ProjectName-Version-OS, to the top of package tree. 0 to disable, 1 to enable
# CPACK_INSTALL_CMAKE_PROJECTS List of four values: Build directory, Project Name, Project Component, Directory in the package /home/andy/vtk/CMake-bin;CMake;ALL;/
SET( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README" ) # File used as a description of a project /path/to/project/ReadMe.txt
SET( CPACK_PACKAGE_DESCRIPTION_SUMMARY ${TOMAHAWK_DESCRIPTION_SUMMARY} ) # Description summary of a project
# CPACK_PACKAGE_EXECUTABLES List of pairs of executables and labels. Used by the NSIS generator to create Start Menu shortcuts. ccmake;CMake
SET( CPACK_PACKAGE_INSTALL_DIRECTORY ${TOMAHAWK_APPLICATION_NAME} ) # Installation directory on the target system -> C:\Program Files\fellody
SET( CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${TOMAHAWK_APPLICATION_NAME} ) # Registry key used when installing this project CMake 2.5.0
SET( CPACK_PACKAGE_NAME ${TOMAHAWK_APPLICATION_NAME} ) # Package name, defaults to the project name
SET( CPACK_PACKAGE_VENDOR ${TOMAHAWK_ORGANIZATION_NAME} ) # Package vendor name
SET( CPACK_PACKAGE_VERSION_MAJOR ${TOMAHAWK_VERSION_MAJOR} )
SET( CPACK_PACKAGE_VERSION_MINOR ${TOMAHAWK_VERSION_MINOR} )
SET( CPACK_PACKAGE_VERSION_PATCH ${TOMAHAWK_VERSION_PATCH} )
# CPACK_SOURCE_GENERATOR List of generators used for the source package TGZ;TZ
SET( CPACK_SOURCE_GENERATOR TGZ )
SET( CPACK_SOURCE_IGNORE_FILES "/\\\\.git/" ".*~$" ".kate-swp$" "/build_dir/" "/clang/" "/gcc/" "/build/" "/win/" ) # Pattern of files in the source tree that won't be packaged
SET( CPACK_SOURCE_PACKAGE_FILE_NAME tomahawk-${TOMAHAWK_VERSION} ) # Name of the source package
# CPACK_SOURCE_STRIP_FILES List of files in the source tree that will be stripped. Starting with CMake 2.6.0 CPACK_SOURCE_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible).
# CPACK_STRIP_FILES List of files to be stripped. Starting with CMake 2.6.0 CPACK_STRIP_FILES will be a boolean variable which enables stripping of all files (a list of files evaluates to TRUE in CMake, so this change is compatible). bin/ccmake;bin/cmake;bin/cpack;bin/ctest
# CPACK_SYSTEM_NAME System name, defaults to the value of ${CMAKE_SYSTEM_NAME}. Linux-i686
# Advanced settings
# CPACK_CMAKE_GENERATOR What CMake generator should be used if the project is CMake project. Defaults to the value of CMAKE_GENERATOR. Unix Makefiles
SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt" ) # License file for the project, used by the STGZ, NSIS, and PackageMaker generators. /home/andy/vtk/CMake/Copyright.txt
# CPACK_RESOURCE_FILE_README ReadMe file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericDescription.txt
# CPACK_RESOURCE_FILE_WELCOME Welcome file for the project, used by PackageMaker generator. /home/andy/vtk/CMake/Templates/CPack.GenericWelcome.txt
SET( CPACK_PACKAGE_VERSION ${TOMAHAWK_VERSION} )
SET( CPACK_TOPLEVEL_TAG "narf" ) # Directory for the installed files. - needed to provide anything to avoid an error# CPACK_INSTALL_COMMANDS Extra commands to install components.
# CPACK_INSTALL_DIRECTORIES Extra directories to install.
# CPACK_MONOLITHIC_INSTALL When set disables the component-based installer.
# CPACK_PACKAGING_INSTALL_PREFIX Sets the default root that the generated package installs into, '/usr' is the default for the debian and redhat generators /usr/local
##
# INSTALL DEPS
##
# Set the options file that needs to be included inside CMakeCPackOptions.cmake
#SET(QT_DIALOG_CPACK_OPTIONS_FILE ${CMake_BINARY_DIR}/Source/QtDialog/QtDialogCPack.cmake)
configure_file("${CMAKE_SOURCE_DIR}/CPackOptions.cmake.in"
"${CMAKE_BINARY_DIR}/CPackOptions.cmake" @ONLY)
set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/CPackOptions.cmake") # File included at cpack time, once per generator after setting CPACK_GENERATOR to the actual generator being used; allows per-generator setting of CPACK_* variables at cpack time. ${PROJECT_BINARY_DIR}/CPackOptions.cmake
include(CPack)

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
@@ -23,40 +23,42 @@
<key>CFBundleName</key>
<string>Tomahawk</string>
<key>LSMinimumSystemVersion</key>
<string>10.5.0</string>
<key>SUFeedURL</key>
<string>http://download.tomahawk-player.org/sparkle</string>
<key>SUPublicDSAKeyFile</key>
<string>sparkle_pub.pem</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Tomahawk URL</string>
<key>CFBundleURLSchemes</key>
<array>
<string>tomahawk</string>
</array>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>xspf</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>Generic.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/xspf+xml</string>
</array>
<key>CFBundleTypeName</key>
<string>XSPF Playlist</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
<string>10.5.0</string>
<key>SUFeedURL</key>
<string>http://download.tomahawk-player.org/sparkle/update.php</string>
<key>SUPublicDSAKeyFile</key>
<string>sparkle_pub.pem</string>
<key>SUEnableSystemProfiling</key>
<true/>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>Tomahawk URL</string>
<key>CFBundleURLSchemes</key>
<array>
<string>tomahawk</string>
</array>
</dict>
</array>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>xspf</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>Generic.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/xspf+xml</string>
</array>
<key>CFBundleTypeName</key>
<string>XSPF Playlist</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
</dict>
</plist>

View File

@@ -1,64 +0,0 @@
#!/bin/sh
# author: max@last.fm
# usage: Run from inside the bundle root directory, eg. Last.fm.app
# The first parameter should be the QtFrameworks to copy.
# Remaining parameters are plugins to copy, directories and files are
# valid.
# eg: add-Qt-to-bundle.sh 'QtCore QtGui QtXml' \
# imageformats \
# sqldrivers/libsqlite.dylib
################################################################################
QT_FRAMEWORKS_DIR="$QTDIR/lib"
QT_PLUGINS_DIR="$QTDIR/plugins"
if [[ ! -d "$QTDIR/lib/QtCore.framework" ]]
then
# this dir is the location of install for the official Trolltech dmg
if [[ -d /Library/Frameworks/QtCore.framework ]]
then
QT_FRAMEWORKS_DIR=/Library/Frameworks
QT_PLUGINS_DIR=/Developer/Applications/Qt/plugins
fi
fi
echo "Plugins go to: $QT_PLUGINS_DIR"
if [ -z $QTDIR ]
then
echo QTDIR must be set, or install the official Qt dmg
exit 1
fi
################################################################################
#first frameworks
mkdir -p Contents/Frameworks
for x in $1
do
echo "C $x"
cp -R $QT_FRAMEWORKS_DIR/$x.framework Contents/Frameworks/
chmod -R u+rw Contents/Frameworks/
done
#plugins
shift
mkdir -p Contents/MacOS
mkdir -p Contents/MacOS/sqldrivers
mkdir -p Contents/MacOS/imageformats
mkdir -p Contents/MacOS/phonon_backend
mkdir -p Contents/MacOS/crypto
cp -R $QT_PLUGINS_DIR/sqldrivers/libqsqlite.dylib Contents/MacOS/sqldrivers/
cp -R $QT_PLUGINS_DIR/imageformats/libqgif.dylib Contents/MacOS/imageformats/
cp -R $QT_PLUGINS_DIR/imageformats/libqjpeg.dylib Contents/MacOS/imageformats/
cp -R $QT_PLUGINS_DIR/imageformats/libqico.dylib Contents/MacOS/imageformats/
cp -R $QT_PLUGINS_DIR/imageformats/libqmng.dylib Contents/MacOS/imageformats/
cp -R $QT_PLUGINS_DIR/imageformats/libqsvg.dylib Contents/MacOS/imageformats/
cp -R $QT_PLUGINS_DIR/imageformats/libqtiff.dylib Contents/MacOS/imageformats/
cp -R $QT_PLUGINS_DIR/crypto/libqca-ossl.dylib Contents/MacOS/crypto/
cp -R $QT_PLUGINS_DIR/phonon_backend/phonon_vlc.so Contents/MacOS/phonon_backend/
#cleanup
find Contents/Frameworks -name Headers -o -name \*.prl -o -name \*_debug | xargs rm -rf
find Contents -name \*_debug -o -name \*_debug.dylib | xargs rm

View File

@@ -1,16 +0,0 @@
#!/bin/sh
# author: lfranchi@kde.org
# usage: Run from inside the bundle root directory, eg. Tomahawk.app
# The first parameter should be the spotify resolver binary to copy.
# eg: add-spotify.sh /path/to/spotify_tomahawkresolver
################################################################################
mkdir -p Contents/Frameworks
cp -R /Library/Frameworks/libspotify.framework Contents/Frameworks
install_name_tool -change /usr/local/Cellar/qt/4.7.3/lib/QtCore.framework/Versions/4/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore $1
install_name_tool -change /usr/local/Cellar/qt/4.7.3/lib/QtNetwork.framework/Versions/4/QtNetwork @executable_path/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork $1
install_name_tool -change libqjson.0.dylib @executable_path/libqjson.0.7.1.dylib $1
install_name_tool -change /usr/local/Cellar/qjson/0.7.1/lib/libqjson.0.7.1.dylib @executable_path/libqjson.0.7.1.dylib $1
mkdir -p Contents/MacOS
cp $1 Contents/MacOS/

View File

@@ -23,65 +23,28 @@ then
fi
ROOT=`pwd`
QTDIR=`which qmake`
LINKDIR=`readlink $QTDIR`
QTDIR=`dirname $QTDIR`
QTDIR=$QTDIR/`dirname $LINKDIR`
QTDIR=`dirname $QTDIR`
test -L "$QTDIR" && QTDIR=`readlink $QTDIR`
echo "Goes here: $QTDIR"
export QMAKESPEC='macx-g++'
export QTDIR
export VERSION
export QTVERSION='4.7.3'
################################################################################
CLEAN='1'
BUILD='1'
NOTQUICK='1'
CREATEDMG='1'
VERSION=$1
header "Adding Qt to app bundle"
cd tomahawk.app
$ROOT/../admin/mac/add-Qt-to-bundle.sh \
'QtCore QtGui QtXml QtNetwork QtSql QtXmlPatterns QtWebKit phonon'
# 'QtCore QtGui QtXml QtNetwork QtSql QtXmlPatterns QtWebKit QtDbus phonon'
################################################################################
header "Renaming files"
mv tomahawk.app Tomahawk.app
mv Tomahawk.app/Contents/MacOS/tomahawk Tomahawk.app/Contents/MacOS/Tomahawk
header "Fixing and copying libraries"
$ROOT/../admin/mac/macdeploy.py Tomahawk.app quiet
cd Tomahawk.app
header "Renaming icon"
mv Contents/Resources/tomahawkSources.icns Contents/Resources/Tomahawk.icns
mv Contents/MacOS/tomahawk Contents/MacOS/Tomahawk
# cp $ROOT/../admin/mac/Info.plist Contents/Info.plist
cp $ROOT/../admin/mac/qt.conf Contents/Resources/qt.conf
header "Copying VLC plugins into bundle"
mkdir -p Contents/plugins
cp -R /usr/local/Cellar/vlc-git/HEAD/lib/vlc/plugins/ Contents/plugins
rm -rf Contents/plugins/video_* Contents/plugins/gui Contents/plugins/*/libold* Contents/plugins/*/libvcd* Contents/plugins/*/libdvd* \
Contents/plugins/*/liblibass* Contents/plugins/*/libx264* Contents/plugins/*/libschroe* Contents/plugins/*/liblibmpeg2* \
Contents/plugins/*/libstream_out_* Contents/plugins/*/libmjpeg_plugin* Contents/plugins/*/libh264_plugin* Contents/plugins/*/libzvbi_plugin* Contents/plugins/*/lib*sub*
header "Running install_name_tool"
$ROOT/../admin/mac/deposx.sh
header "Copying Sparkle pubkey & framework, and qt.conf"
cp $ROOT/../admin/mac/sparkle_pub.pem Contents/Resources
header "Copying Sparkle framework"
cp -R /Library/Frameworks/Sparkle.framework Contents/Frameworks
cp $ROOT/../admin/mac/qt.conf Contents/Resources
header "Adding spotify resolver to bundle if spotify_tomahawkresolver found in $ROOT"
if [ -e $ROOT/spotify_tomahawkresolver ]
then
header "Found, so adding spotify resolver."ac
$ROOT/../admin/mac/add-spotify.sh $ROOT/spotify_tomahawkresolver
fi
header "Creating DMG"
cd ..
mv tomahawk.app Tomahawk.app
$ROOT/../admin/mac/create-dmg.sh Tomahawk.app
mv Tomahawk.dmg Tomahawk-$VERSION.dmg

View File

@@ -1,164 +0,0 @@
#!/bin/sh
# author: max@last.fm, chris@last.fm
################################################################################
if [ -z $QTDIR ]
then
echo QTDIR must be set
exit 1
fi
if [ -z $QTVERSION ]
then
echo QTVERSION must be set
exit 1
fi
cd ..
ORIGROOT=`pwd`
cd -
cd Contents
QTLIBS=`ls Frameworks | cut -d. -f1`
LIBS=`cd MacOS && ls -fR1 | grep dylib`
PLUGINFOLDERS=`ls plugins | cut -d. -f1`
################################################################################
function import_lib
{
echo "L \`$1'"
cp -R -L $1 MacOS/`basename $1`
chmod u+rw MacOS/`basename $1`
deplib_change MacOS/`basename $1`
deposx_change MacOS/`basename $1`
}
function deposx_change
{
echo "D \`$1'"
echo $QTDIR
for y in $QTLIBS
do
install_name_tool -change $QTDIR/lib/$y.framework/Versions/4/$y \
@executable_path/../Frameworks/$y.framework/Versions/4/$y \
"$1"
install_name_tool -change /usr/local/Cellar/qt/$QTVERSION/lib/$y.framework/Versions/4/$y \
@executable_path/../Frameworks/$y.framework/Versions/4/$y \
"$1"
done
for y in $LIBS
do
install_name_tool -change $y \
@executable_path/$y \
"$1"
done
}
function deplib_change
{
install_name_tool -change /usr/local/Cellar/qjson/0.7.1/lib/libqjson.0.7.1.dylib @executable_path/libqjson.0.7.1.dylib $1
install_name_tool -change /usr/local/lib/libechonest.1.1.dylib @executable_path/libechonest.1.1.dylib $1
install_name_tool -change /usr/local/lib/libclucene-core.1.dylib @executable_path/libclucene-core.1.dylib $1
install_name_tool -change /usr/local/lib/libclucene-shared.1.dylib @executable_path/libclucene-shared.1.dylib $1
install_name_tool -change /usr/local/Cellar/taglib/1.7/lib/libtag.1.7.0.dylib @executable_path/libtag.1.7.0.dylib $1
# install_name_tool -change /usr/local/Cellar/gloox/1.0/lib/libgloox.8.dylib @executable_path/libgloox.8.dylib $1
# install_name_tool -change /usr/local/Cellar/libogg/1.2.0/lib/libogg.0.dylib @executable_path/libogg.0.dylib $1
# install_name_tool -change /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbis.0.dylib @executable_path/libvorbis.0.dylib $1
# install_name_tool -change /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbisfile.3.dylib @executable_path/libvorbisfile.3.dylib $1
# install_name_tool -change /usr/local/Cellar/mad/0.15.1b/lib/libmad.0.dylib @executable_path/libmad.0.dylib $1
# install_name_tool -change /usr/local/Cellar/flac/1.2.1/lib/libFLAC++.6.dylib @executable_path/libFLAC++.6.dylib $1
# install_name_tool -change /usr/local/Cellar/flac/1.2.1/lib/libFLAC.8.dylib @executable_path/libFLAC.8.dylib $1
install_name_tool -change /usr/local/Cellar/kde-phonon/4.5.0/lib/libphonon.4.dylib @executable_path/libphonon.4.dylib $1
install_name_tool -change /usr/local/Cellar/kde-phonon/4.5.0/lib/libphonon.4.5.0.dylib @executable_path/libphonon.4.dylib $1
install_name_tool -change $ORIGROOT/libtomahawklib.dylib @executable_path/libtomahawklib.dylib $1
install_name_tool -change $ORIGROOT/libtomahawk_sipjabber.dylib @executable_path/libtomahawk_sipjabber.dylib $1
install_name_tool -change $ORIGROOT/libtomahawk_sipgoogle.dylib @executable_path/libtomahawk_sipgoogle.dylib $1
install_name_tool -change $ORIGROOT/libtomahawk_siptwitter.dylib @executable_path/libtomahawk_siptwitter.dylib $1
install_name_tool -change $ORIGROOT/libtomahawk_sipzeroconf.dylib @executable_path/libtomahawk_sipzeroconf.dylib $1
install_name_tool -change $ORIGROOT/libtomahawk_qtweetlib.dylib @executable_path/libtomahawk_qtweetlib.dylib $1
install_name_tool -change $ORIGROOT/libtomahawk_portfwd.dylib @executable_path/libtomahawk_portfwd.dylib $1
install_name_tool -change $ORIGROOT/libjreen.dylib @executable_path/libjreen.dylib $1
install_name_tool -change /usr/local/Cellar/jreen/HEAD/lib/libjreen.dylib @executable_path/libjreen.dylib $1
install_name_tool -change /usr/local/Cellar/qca/2.0.2/lib/qca.framework/Versions/2/qca @executable_path/../Frameworks/qca.framework/Versions/2/qca $1
install_name_tool -change /usr/local/Cellar/gettext/0.18.1.1/lib/libintl.8.dylib @executable_path/libintl.8.dylib $1
install_name_tool -change /usr/local/Cellar/vlc-git/HEAD/lib/libvlc.5.dylib @executable_path/libvlc.5.dylib $1
install_name_tool -change /usr/local/Cellar/vlc-git/HEAD/lib/libvlccore.4.dylib @executable_path/libvlccore.4.dylib $1
install_name_tool -change libqjson.0.dylib @executable_path/libqjson.0.7.1.dylib $1
install_name_tool -change libechonest.1.1.dylib @executable_path/libechonest.1.1.dylib $1
install_name_tool -change libclucene-core.1.dylib @executable_path/libclucene-core.1.dylib $1
install_name_tool -change libclucene-shared.1.dylib @executable_path/libclucene-shared.1.dylib $1
}
################################################################################
# first all libraries and executables
find MacOS -type f -a -perm -100 | while read x
do
echo $x
y=$(file "$x" | grep 'Mach-O')
deposx_change "$x"
deplib_change "$x"
done
import_lib /usr/local/Cellar/qjson/0.7.1/lib/libqjson.0.7.1.dylib
import_lib /usr/local/Cellar/taglib/1.7/lib/libtag.1.7.0.dylib
#import_lib /usr/local/Cellar/gloox/1.0/lib/libgloox.8.dylib
#import_lib /usr/local/Cellar/libogg/1.2.0/lib/libogg.0.dylib
#import_lib /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbis.0.dylib
#import_lib /usr/local/Cellar/libvorbis/1.3.1/lib/libvorbisfile.3.dylib
#import_lib /usr/local/Cellar/mad/0.15.1b/lib/libmad.0.dylib
#import_lib /usr/local/Cellar/flac/1.2.1/lib/libFLAC++.6.dylib
#import_lib /usr/local/Cellar/flac/1.2.1/lib/libFLAC.8.dylib
import_lib /usr/local/lib/libechonest.1.1.dylib
import_lib /usr/local/lib/libclucene-core.1.dylib
import_lib /usr/local/lib/libclucene-shared.1.dylib
import_lib /usr/local/Cellar/kde-phonon/4.5.0/lib/libphonon.4.dylib
import_lib /usr/local/Cellar/vlc-git/HEAD/lib/libvlc.5.dylib
import_lib /usr/local/Cellar/vlc-git/HEAD/lib/libvlccore.4.dylib
import_lib /usr/local/Cellar/gettext/0.18.1.1/lib/libintl.8.dylib
import_lib $ORIGROOT/libjreen.dylib
import_lib $ORIGROOT/libtomahawklib.dylib
import_lib $ORIGROOT/libtomahawk_sipjabber.dylib
import_lib $ORIGROOT/libtomahawk_sipgoogle.dylib
import_lib $ORIGROOT/libtomahawk_siptwitter.dylib
import_lib $ORIGROOT/libtomahawk_sipzeroconf.dylib
import_lib $ORIGROOT/libtomahawk_qtweetlib.dylib
import_lib $ORIGROOT/libtomahawk_portfwd.dylib
cp -R /usr/local/Cellar/qca/2.0.2/lib/qca.framework Frameworks/
chmod 644 Frameworks/qca.framework/Versions/2/qca
deplib_change Frameworks/qca.framework/Versions/2/qca
deposx_change Frameworks/qca.framework/Versions/2/qca
# now Qt
for x in $QTLIBS
do
echo `pwd`
# ls -l Frameworks/$x.framework/Versions/4/$x
deposx_change Frameworks/$x.framework/Versions/4/$x
install_name_tool -id @executable_path/../Frameworks/$x.framework/Versions/4/$x \
Frameworks/$x.framework/Versions/4/$x
deplib_change "Frameworks/$x.framework/Versions/4/$x"
done
# now VLC plugins
for x in plugins/$PLUGINFOLDERS
do
for plugin in `ls plugins/$x | cut -f1`
do
echo "Fixing VLC plugin: $plugin"
chmod 644 plugins/$x/$plugin
deplib_change plugins/$x/$plugin
done
done

517
admin/mac/macdeploy.py Executable file
View File

@@ -0,0 +1,517 @@
#!/usr/bin/python
# This file is part of 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
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Clementine 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 Clementine. If not, see <http://www.gnu.org/licenses/>.
import os
import re
import subprocess
import sys
FRAMEWORK_SEARCH_PATH=[
'/Library/Frameworks',
os.path.join(os.environ['HOME'], 'Library/Frameworks')
]
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Cellar/gettext/0.18.1.1/lib', '.']
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',
]
VLC_SEARCH_PATH=[
'/usr/local/lib/vlc/plugins/',
]
QT_PLUGINS = [
'crypto/libqca-ossl.dylib',
'phonon_backend/phonon_vlc.so',
'sqldrivers/libqsqlite.dylib',
'imageformats/libqgif.dylib',
'imageformats/libqico.dylib',
'imageformats/libqjpeg.dylib',
'imageformats/libqmng.dylib',
]
TOMAHAWK_PLUGINS = [
'libtomahawk_sipjabber.dylib',
'libtomahawk_sipgoogle.dylib',
'libtomahawk_siptwitter.dylib',
'libtomahawk_sipzeroconf.dylib',
'libtomahawk_qtweetlib.dylib',
]
QT_PLUGINS_SEARCH_PATH=[
'/usr/local/Cellar/qt/4.7.3/plugins',
]
class Error(Exception):
pass
class CouldNotFindQtPluginErrorFindFrameworkError(Error):
pass
class InstallNameToolError(Error):
pass
class CouldNotFindQtPluginError(Error):
pass
class CouldNotFindVLCPluginError(Error):
pass
class CouldNotFindScriptPluginError(Error):
pass
if len(sys.argv) < 2:
print 'Usage: %s <bundle.app>' % sys.argv[0]
bundle_dir = sys.argv[1]
bundle_name = os.path.basename(bundle_dir).split('.')[0]
commands = []
binary_dir = os.path.join(bundle_dir, 'Contents', 'MacOS')
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')
binary = os.path.join(bundle_dir, 'Contents', 'MacOS', bundle_name)
fixed_libraries = []
fixed_frameworks = []
def GetBrokenLibraries(binary):
#print "Checking libs for binary: %s" % binary
output = subprocess.Popen(['otool', '-L', binary], stdout=subprocess.PIPE).communicate()[0]
broken_libs = {
'frameworks': [],
'libs': []}
for line in [x.split(' ')[0].lstrip() for x in output.split('\n')[1:]]:
#print "Checking line: %s" % line
if not line: # skip empty lines
continue
if os.path.basename(binary) == os.path.basename(line):
#print "mnope %s-%s" % (os.path.basename(binary), os.path.basename(line))
continue
if re.match(r'^\s*/System/', line):
continue # System framework
elif re.match(r'^\s*/usr/lib/', line):
#print "unix style system lib"
continue # unix style system library
elif re.match(r'Breakpad', line):
continue # Manually added by cmake.
elif re.match(r'^\s*@executable_path', line) or re.match(r'^\s*@loader_path', line):
# Potentially already fixed library
if '.framework' in line:
relative_path = os.path.join(*line.split('/')[3:])
if not os.path.exists(os.path.join(frameworks_dir, relative_path)):
broken_libs['frameworks'].append(relative_path)
else:
relative_path = os.path.join(*line.split('/')[1:])
#print "RELPATH %s %s" % (relative_path, os.path.join(binary_dir, relative_path))
if not os.path.exists(os.path.join(binary_dir, relative_path)):
broken_libs['libs'].append(relative_path)
elif re.search(r'\w+\.framework', line):
broken_libs['frameworks'].append(line)
else:
broken_libs['libs'].append(line)
return broken_libs
def FindFramework(path):
for search_path in FRAMEWORK_SEARCH_PATH:
abs_path = os.path.join(search_path, path)
if os.path.exists(abs_path):
return abs_path
raise CouldNotFindFrameworkError(path)
def FindLibrary(path):
if os.path.exists(path):
return path
for search_path in LIBRARY_SEARCH_PATH:
abs_path = os.path.join(search_path, path)
if os.path.exists(abs_path):
return abs_path
else: # try harder---look for lib name in library folders
newpath = os.path.join(search_path,os.path.basename(path))
if os.path.exists(newpath):
return newpath
return ""
#raise CouldNotFindFrameworkError(path)
def FixAllLibraries(broken_libs):
for framework in broken_libs['frameworks']:
FixFramework(framework)
for lib in broken_libs['libs']:
FixLibrary(lib)
def FixFramework(path):
if path in fixed_libraries:
return
else:
fixed_libraries.append(path)
abs_path = FindFramework(path)
broken_libs = GetBrokenLibraries(abs_path)
FixAllLibraries(broken_libs)
new_path = CopyFramework(abs_path)
id = os.sep.join(new_path.split(os.sep)[3:])
FixFrameworkId(new_path, id)
for framework in broken_libs['frameworks']:
FixFrameworkInstallPath(framework, new_path)
for library in broken_libs['libs']:
FixLibraryInstallPath(library, new_path)
def FixLibrary(path):
if path in fixed_libraries or FindSystemLibrary(os.path.basename(path)) is not None:
return
else:
fixed_libraries.append(path)
abs_path = FindLibrary(path)
if abs_path == "":
print "Could not resolve %s, not fixing!" % path
return
broken_libs = GetBrokenLibraries(abs_path)
FixAllLibraries(broken_libs)
new_path = CopyLibrary(abs_path)
FixLibraryId(new_path)
for framework in broken_libs['frameworks']:
FixFrameworkInstallPath(framework, new_path)
for library in broken_libs['libs']:
FixLibraryInstallPath(library, new_path)
def FixVLCPlugin(abs_path, subdir):
broken_libs = GetBrokenLibraries(abs_path)
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))
args = ['mkdir', '-p', os.path.dirname(new_path)]
commands.append(args)
args = ['ditto', '--arch=i386', '--arch=x86_64', abs_path, new_path]
commands.append(args)
args = ['chmod', 'u+w', new_path]
commands.append(args)
for framework in broken_libs['frameworks']:
FixFrameworkInstallPath(framework, new_path)
for library in broken_libs['libs']:
FixLibraryInstallPath(library, new_path)
def FixPlugin(abs_path, subdir):
broken_libs = GetBrokenLibraries(abs_path)
FixAllLibraries(broken_libs)
new_path = CopyPlugin(abs_path, subdir)
for framework in broken_libs['frameworks']:
FixFrameworkInstallPath(framework, new_path)
for library in broken_libs['libs']:
FixLibraryInstallPath(library, new_path)
def FixBinary(path):
broken_libs = GetBrokenLibraries(path)
FixAllLibraries(broken_libs)
for framework in broken_libs['frameworks']:
FixFrameworkInstallPath(framework, path)
for library in broken_libs['libs']:
FixLibraryInstallPath(library, path)
def CopyLibrary(path):
new_path = os.path.join(frameworks_dir, os.path.basename(path))
args = ['ditto', '--arch=i386', '--arch=x86_64', path, new_path]
commands.append(args)
args = ['chmod', 'u+w', new_path]
commands.append(args)
return new_path
def CopyPlugin(path, subdir):
new_path = os.path.join(plugins_dir, subdir, os.path.basename(path))
args = ['mkdir', '-p', os.path.dirname(new_path)]
commands.append(args)
args = ['ditto', '--arch=i386', '--arch=x86_64', path, new_path]
commands.append(args)
args = ['chmod', 'u+w', new_path]
commands.append(args)
return new_path
def CopyFramework(path):
parts = path.split(os.sep)
for i, part in enumerate(parts):
if re.match(r'\w+\.framework', part):
full_path = os.path.join(frameworks_dir, *parts[i:-1])
break
args = ['mkdir', '-p', full_path]
commands.append(args)
args = ['ditto', '--arch=i386', '--arch=x86_64', path, full_path]
commands.append(args)
args = ['chmod', 'u+w', os.path.join(full_path, parts[-1])]
commands.append(args)
menu_nib = os.path.join(os.path.split(path)[0], 'Resources', 'qt_menu.nib')
if os.path.exists(menu_nib):
args = ['cp', '-r', menu_nib, resources_dir]
commands.append(args)
return os.path.join(full_path, parts[-1])
def FixId(path, library_name):
id = '@executable_path/../Frameworks/%s' % library_name
args = ['install_name_tool', '-id', id, path]
commands.append(args)
def FixLibraryId(path):
library_name = os.path.basename(path)
FixId(path, library_name)
def FixFrameworkId(path, id):
FixId(path, id)
def FixInstallPath(library_path, library, new_path):
args = ['install_name_tool', '-change', library_path, new_path, library]
commands.append(args)
def FindSystemLibrary(library_name):
for path in ['/lib', '/usr/lib']:
full_path = os.path.join(path, library_name)
if os.path.exists(full_path):
return full_path
return None
def FixLibraryInstallPath(library_path, library):
system_library = FindSystemLibrary(os.path.basename(library_path))
if system_library is None:
new_path = '@executable_path/../Frameworks/%s' % os.path.basename(library_path)
FixInstallPath(library_path, library, new_path)
else:
FixInstallPath(library_path, library, system_library)
def FixFrameworkInstallPath(library_path, library):
parts = library_path.split(os.sep)
for i, part in enumerate(parts):
if re.match(r'\w+\.framework', part):
full_path = os.path.join(*parts[i:])
break
new_path = '@executable_path/../Frameworks/%s' % full_path
FixInstallPath(library_path, library, new_path)
def FindQtPlugin(name):
for path in QT_PLUGINS_SEARCH_PATH:
if os.path.exists(path):
if os.path.exists(os.path.join(path, name)):
return os.path.join(path, name)
raise CouldNotFindQtPluginError(name)
def FindVLCPlugin(name):
for path in VLC_SEARCH_PATH:
if os.path.exists(path):
if os.path.exists(os.path.join(path, name)):
return os.path.join(path, name)
raise CouldNotFindVLCPluginError(name)
FixBinary(binary)
for plugin in VLC_PLUGINS:
FixVLCPlugin(FindVLCPlugin(plugin), '.')
for plugin in TOMAHAWK_PLUGINS:
FixPlugin(plugin, '../MacOS')
try:
FixPlugin('spotify_tomahawkresolver', '../MacOS')
except:
print 'Failed to find spotify resolver'
for plugin in QT_PLUGINS:
FixPlugin(FindQtPlugin(plugin), os.path.dirname(plugin))
if len(sys.argv) <= 2:
print 'Would run %d commands:' % len(commands)
for command in commands:
print ' '.join(command)
print 'OK?'
raw_input()
for command in commands:
p = subprocess.Popen(command)
os.waitpid(p.pid, 0)

View File

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

View File

@@ -1,20 +1,27 @@
SET(MINGW_PREFIX "i686-w64-mingw32")
# this one is important
SET(CMAKE_SYSTEM_NAME Windows)
# specify the cross compiler
SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
SET(CMAKE_C_COMPILER ccache ${MINGW_PREFIX}-gcc)
SET(CMAKE_CXX_COMPILER ccache ${MINGW_PREFIX}-g++)
SET(CMAKE_RC_COMPILER /usr/bin/${MINGW_PREFIX}-windres)
# where is the target environment containing libraries
SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32/sys-root/mingw)
SET(CMAKE_FIND_ROOT_PATH /usr/${MINGW_PREFIX}/sys-root/mingw)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# windres executable for application icon support
SET(WINDRES_EXECUTABLE /usr/bin/i686-w64-mingw32-windres)
# libs with broken find modules
SET(TAGLIB_FOUND true)
SET(TAGLIB_LIBRARIES ${CMAKE_FIND_ROOT_PATH}/lib/libtag.dll.a)
SET(TAGLIB_INCLUDES ${CMAKE_FIND_ROOT_PATH}/include/taglib)
SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt4/plugins/)
SET(QT_QTUITOOLS_LIBRARY_RELEASE ${CMAKE_FIND_ROOT_PATH}/lib/libQtUiTools.a)
SET(QT_QTUITOOLS_LIBRARY_DEBUG ${CMAKE_FIND_ROOT_PATH}/lib/libQtUiToolsd.a)
SET(QT_QTUITOOLS_LIBRARY ${QT_QTUITOOLS_LIBRARY_RELEASE})

View File

@@ -1 +0,0 @@
105

View File

@@ -1,20 +1,49 @@
#!/bin/bash
echo "Remove old vlc dir..."
mkdir -p vlc/
cd vlc/
#rm -vf vlc-*.7z
rm -rf vlc/
#rm -rf vlc/
echo "Download specified binary..."
#wget -c "http://downloads.sourceforge.net/project/vlc/1.1.9/win32/vlc-1.1.9-win32.7z?r=http%3A%2F%2Fwww.videolan.org%2Fvlc%2Fdownload-windows.html&ts=1306272584&use_mirror=leaseweb"
wget -c "http://nightlies.videolan.org/build/win32/trunk-20110524-1321/vlc-1.2.0-git-20110524-1321-win32.7z"
#wget -c "http://download.tomahawk-player.org/tomahawk-vlc-0.1.zip"
wget -c http://people.videolan.org/~jb/phonon/phonon-vlc-last.7z
echo "Extract binary..."
7z x vlc-*.7z
mv -v vlc-*/ vlc/
7z x phonon-vlc-last.7z
#mv -v vlc-*/ vlc/
#unzip tomahawk-vlc-0.1.zip
echo "Strip unneeded plugins from vlc/plugins..."
cd vlc/plugins/
rm -rvf video_*/ gui/ */libold* */libvcd* */libdvd* */liblibass* */libx264* */libschroe* */liblibmpeg2* \
*/libstream_out_* */libmjpeg_plugin* */libh264_plugin* */libzvbi_plugin* */lib*sub*
cd prefix/bin/plugins
rm -rvf libold* libvcd* libdvd* liblibass* libx264* libschroe* liblibmpeg2* \
libstream_out_* libmjpeg_plugin* libh264_plugin* libzvbi_plugin* lib*sub* \
*qt4* *skins2* libaccess_bd_plugin.dll \
libaudiobargraph_* libball_plugin.dll \
libdirac_plugin.dll \
libgnutls_plugin.dll \
libcaca_plugin.dll \
libfreetype_plugin.dll \
libaccess_output_shout_plugin.dll \
libremoteosd_plugin.dll \
libsdl_image_plugin.dll \
libvout_sdl_plugin.dll \
libpng_plugin.dll \
libgoom_plugin.dll \
libatmo_plugin.dll \
libmux_ts_plugin.dll \
libkate_plugin.dll \
libtaglib_plugin.dll
# this is for vlc-1.2
# rm -rvf video_*/ gui/ */libold* */libvcd* */libdvd* */liblibass* */libx264* */libschroe* */liblibmpeg2* \
# */libstream_out_* */libmjpeg_plugin* */libh264_plugin* */libzvbi_plugin* */lib*sub* \
# services_discover/ visualization/ control/ misc/
echo "Downloaded and stripped VLC"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,60 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!-- 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="841.89px" height="595.28px" viewBox="0 0 841.89 595.28" enable-background="new 0 0 841.89 595.28" xml:space="preserve">
<path fill="#010101" d="M543.773,253.359c0-49.962-19.305-86.572-54.194-104.54C477.838,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.186,51.825,20.321,71.748
c-1.816,1.566-3.444,3.283-4.768,5.24c0,0,2.582,2.36,3.689,3.374c-4.262,2.123-8.22,4.322-11.555,6.669
c0,0,3.022,7.355,5.898,14.352c-11.991,9.687-21.314,18.92-27.553,27.51c0,0,1.612,1.789,2.011,2.224
c-12.355,9.158-22.133,18.206-28.528,27.021c0,0,6.925,7.351,12.408,13.167c-17.824,28.759-43.348,74.85-43.348,102.987
c0,3.281,0.346,6.318,1.093,9.054c1.764,6.442,5.752,11.437,11.229,14.058c15.255,7.311,39.648-6.364,72.589-40.434
c-0.828,8.288-1.457,16.663-1.457,24.737c0,16.804,2.266,32.07,8.77,41.249c4.886,6.895,10.898,9.07,15.084,9.683
c6.721,0.989,26.375,3.796,57.992-61.296c2.678,0.705,5.421,1.179,8.235,1.179c8.798,0,17.067-3.425,23.287-9.639
c4.286-4.288,7.133-9.584,8.562-15.313c7.516-2.129,14.555-6.702,20.779-13.191c19.563,24.861,44.78,37.643,75.38,37.643
c7.318,0,14.474-0.755,21.281-2.243c0.392-0.075,2.555-0.622,2.555-0.622l0.62-0.167c23.05-5.824,42.463-20.41,58-43.254
c7.2,9.231,15.733,15.994,24.849,19.458c1.139,6.658,4.224,12.806,9.1,17.69c6.22,6.214,14.488,9.639,23.288,9.639
c8.798,0,17.065-3.425,23.285-9.639c6.221-6.228,9.649-14.494,9.649-23.292s-3.429-17.066-9.649-23.294
c-2.988-2.988-6.476-5.296-10.248-6.923c0.277-2.947,0.613-5.848,0.613-9.007c0-10.031-1.4-20.982-4.192-31.9
c-1.196-4.672-2.757-8.745-4.511-12.567c2.838-6.467,4.805-13.268,4.805-20.426c0-7.317-1.74-14.422-4.706-21.011
C509.263,358.346,543.773,313.068,543.773,253.359z M451.232,150.998c-33.395-54.619-88.048-93.359-134.569-85.472
c-49.024-7.864-102.777,30.64-135.326,85.018c-2.648,0.208-5.278,0.497-7.875,0.88c8.694-54.414,69.429-111.108,143.107-111.108
c74.113,0,135.141,57.197,143.269,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.348-81.865,170.997
c15.97,7.654,74.912-46.056,139.701-143.288c45.751-68.648,60.797-94.429,45.68-95.922l20.614-43.357l-10.685-6.644l-33.912,33.371
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.099,113.042-39.738,189.89-20.813,192.654
c18.912,2.787,59.039-67.616,89.306-182.6c21.381-81.178,27.255-111.03,11.438-108.001l5.133-48.806l-13.207-3.354l-22.194,42.936
<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.831" r="37.801"/>
<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.809,13.607-58.455,52.219-58.455,97.818c0,56.947,34.681,103.109,89.925,103.109
c35.784,0,67.089-19.432,84.771-48.551c14.01,3.533,28.778,5.463,44.066,5.463c13.16,0,25.932-1.438,38.173-4.077
c17.966,28.357,49.108,47.165,84.604,47.165c55.665,0,90.696-46.162,90.696-103.109
C528.216,210.073,512.208,173.073,475.237,157.792z M314.742,274.908c-10.501,0-20.723-0.878-30.584-2.506
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.694-54.414,69.43-111.108,143.107-111.108c74.113,0,135.142,57.197,143.268,112.08c-6.617-1.398-13.471-2.141-20.49-2.141
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="-55.6953" y1="95.2363" x2="39.7773" y2="95.2363" gradientTransform="matrix(-0.3782 -0.8348 1.083 -0.4907 70.5233 338.0542)">
<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.027-36.091,71.213
c-31.323,14.194-65.948,5.312-77.338-19.829C106,292.849,122.366,274.543,153.69,260.35z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-180.8516" y1="181.2642" x2="-85.3789" y2="181.2642" gradientTransform="matrix(-0.9008 -0.3607 0.555 -1.386 252.7537 479.2919)">
<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.473-64.122
c27.122,10.86,36.111,52.165,20.056,92.248c-16.053,40.089-51.062,63.772-78.189,52.911
<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.776,30.397,3.982,62.358-14.521,62.358
c-16.301,0-34.904-17.333-42.675-47.733c-7.777-30.4,4.243-75.016,14.521-62.365C423.583,399.707,440.442,394.825,448.219,425.226z"
/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="217.0322" y1="557.499" x2="165.1699" y2="467.6709" gradientTransform="matrix(0.9868 0.0515 0.0515 0.7987 -5.5217 21.3475)">
<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"/>
@@ -64,29 +64,30 @@
<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.881-9.153-57.129-24.947-61.17C200.537,387.275,190.178,413.973,184.076,437.859
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.755-12.333,165.503,89.311,165.503,187.528
c0,98.215-74.305,162.834-165.707,162.834"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="194.4072" y1="374.3564" x2="358.2427" y2="90.5851">
<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.634,415.888c-91.402,0-165.297-64.619-165.297-162.834
<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="297.3164" y1="139.4717" x2="418.2684" y2="-70.0234" gradientTransform="matrix(-0.6092 0.7802 -0.4118 -0.3216 476.7253 -96.4624)">
<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.802-52.245,93.808-72.894,126.21-59.689c26.67,10.864,14.474,85.434-26.328,137.681
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.831" r="34.682"/>
<circle fill="#010101" cx="214.367" cy="388.832" r="34.682"/>
<g>
<path fill="#F4DFED" d="M131.831,427.709c-23.973,79.733-18.741,132.267-9.011,135.459c10.855,3.563,43.561-47.223,60.839-128.324
c12.189-57.265,11.727-83.75,0.009-81.625l3.505-31.111l-8.901-2.432l-14.271,32.445
C152.554,347.564,150.184,366.689,131.831,427.709z"/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="148.1519" y1="319.6758" x2="148.1518" y2="563.168">
<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"/>
@@ -94,11 +95,11 @@
<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.098-26.758-24.228,14.713
c16.962-56.432,32.317-62.998,32.317-62.998l11.404-46.658l-4.725-1.131l-14.702,30.23c-11.429-4.588-13.859,14.521-32.392,75.485
c-24.224,79.655-20.501,124.085-8.358,137.776L146.41,479.117z"/>
<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="75.7998" y1="402.9658" x2="43.9086" y2="490.7602" gradientTransform="matrix(0.9399 -0.3414 0.3414 0.9399 -44.7892 56.207)">
<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"/>
@@ -106,10 +107,10 @@
<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.4c0,0,6.608,60.692-7.474,93.405
c1.438-44.878-2.328-36.951-9.176-25.254C159.71,482.03,147.332,501.478,147.332,501.478z"/>
<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="100.2559" y1="370.0205" x2="67.8228" y2="459.3065" gradientTransform="matrix(0.9399 -0.3414 0.3414 0.9399 -44.7892 56.207)">
<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"/>
@@ -117,10 +118,10 @@
<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.952c0,0,2.251,62.278-11.831,94.991
c-0.298-44.249-5.388-28.089-8.538-23.508C165.662,454.416,156.286,463.716,156.286,463.716z"/>
<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="19.1768" y1="337.1123" x2="-32.4432" y2="389.2988" gradientTransform="matrix(0.711 -0.7032 0.7032 0.711 -56.5767 131.5096)">
<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"/>
@@ -128,21 +129,22 @@
<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.425
c-11.773-30.423-13.671-21.048-17.578-14.96C187.396,417.538,180.916,431.115,180.916,431.115z"/>
<path fill="#1E3D73" d="M174.914,335.556L158.76,362.31l-23.24,76.647c0,0,1.211-8.173,1.788-15.883l-18.783,50.773
c0,0,8.386-31.226,3.609-28.382c-4.777,2.84,4.225-21.91-23.102,13.729c5.316-18.514,20.495-39.508,33.324-54.9
c-2.172,0.474-7.1,4.788-18.387,18.374c4.38-15.232,14.957-32.934,25.358-47.898c-1.159-2.683-5.151-3.889-21.234,5.221
C134.366,356.719,174.914,335.556,174.914,335.556z"/>
<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.163c-49.752,66.752-62.779,117.913-54.719,124.242c8.987,7.059,57.064-29.51,100.989-99.844
c31.011-49.657,39.62-74.709,27.879-76.714l13.916-28.052l-7.539-5.319L150.496,341.1
C141.291,332.911,132.531,350.072,94.453,401.163z"/>
<path fill="#656B84" d="M90.603,454.464L62.515,464.67l55.456-49.201l10.331-14.731c0,0,12.047-24.096-27.794,5.558
c35.211-47.255,51.89-48.182,51.89-48.182l26.641-39.956l-4.058-2.681l-24.133,23.399c-9.177-8.222-17.989,8.911-56.224,59.885
c-49.96,66.6-61.634,109.635-54.889,126.645L90.603,454.464z"/>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="106.2383" y1="485.0312" x2="121.9901" y2="395.6984">
<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"/>
@@ -150,9 +152,10 @@
<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.474-75.981c0,0-14.507,59.304-38.916,85.248
c16.678-41.696,12.058-33.368,0-26.873C101.491,460.821,83.829,475.791,83.829,475.791z"/>
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="130.9844" y1="453.7012" x2="146.8758" y2="363.5764">
<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"/>
@@ -160,37 +163,36 @@
<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.356l68.564-75.05c0,0-19.143,59.297-43.551,85.248
c14.824-41.701,10.567-27.993,0-25.023C124.802,430.041,105.143,443.356,105.143,443.356z"/>
<path fill="#656B84" d="M139.423,421.124l34.26-65.654c0,0,2.748,46.867-8.945,72.74c-0.676-32.615-3.041-28.432-11.413-20.06
C150.5,410.974,139.423,421.124,139.423,421.124z"/>
<path fill="#656B84" d="M166.408,329.256l-24.322,19.63l-48.011,64.112c0,0,3.931-7.274,7.104-14.322l-34.994,41.313
c0,0,18.552-26.484,13.089-25.448c-5.464,1.04,11.451-19.148-26.399,5.019c11.313-15.587,32.751-30.137,50.064-40.227
c-2.205-0.298-8.316,2.077-23.552,10.989c9.313-12.818,25.302-25.842,40.183-36.357c-0.175-2.919-3.515-5.416-21.74-2.346
C121.065,335.3,166.408,329.256,166.408,329.256z"/>
<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" enable-background="new " d="M315.05,115.063c-50.514,0-83.218,15.021-109.641,64.839
c-2.502,4.713-0.232,14.337-2.796,19.152c-13.845,26.007-37.089,48.236-37.089,71.707c0,34.337,19.1,65.637,42.505,89.297
c12.185,71.644,34.7,151.593,104.339,151.593"/>
<path fill="#010101" d="M203.271,178.766c-1.519,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.382,42.666,90.413
c12.578,73.606,36.115,150.477,106.6,150.477v-1.546c-67.084,0-89.722-78.554-101.95-150.453l-0.127-0.748l-0.54-0.549
c-26.957-27.255-41.805-58.361-41.805-87.594c0-14.923,10.174-29.766,20.949-45.482c5.501-8.027,11.192-16.327,15.857-25.087
c1.56-2.935,1.636-6.92,1.707-10.773c0.057-3.221,0.118-6.551,1.088-8.381c24.256-45.734,54.398-65.974,107.503-65.974v-2.422
<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.593c23.405-23.66,42.512-54.96,42.512-89.297
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.475-45.162"/>
<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.454c0,7.813-14.98,12.535-27.275,12.535c-12.293,0-27.808-4.735-27.808-12.549
c3.43-3.43,15.246,4.886,27.544,4.886C334.789,378.326,342.916,312.495,342.916,373.454z"/>
<path fill="#D9AF82" d="M335.697,435.217c0,37.637-9.81,68.831-21.91,68.831c-12.096,0-21.901-31.194-21.901-68.831
c0-37.639,9.882-50.259,21.977-50.259C325.962,384.958,335.697,397.578,335.697,435.217z"/>
<path opacity="0.36" fill="#8A644B" d="M328.365,281.605c-1.826,24.681-14.186-7.573-34.757,20.974
c-8.672,12.026-23.23,10.877-38.845,10.877c-39.61,0-66.544-26.03-67.859-38.868c-2.517-24.557,29.024-39.586,71.464-39.586
<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="214.7554" y1="341.0537" x2="290.4385" y2="341.0537">
<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"/>
@@ -199,40 +201,38 @@
<stop offset="0.6917" style="stop-color:#F4D3C7"/>
<stop offset="1" style="stop-color:#F5D4C9"/>
</linearGradient>
<path opacity="0.36" fill="url(#SVGID_12_)" d="M272.246,361.529c-28.722,19.46-56.346-24.299-57.491-43.314
c15.913,13.821,62.032,18.457,75.683-2.517L272.246,361.529z"/>
<path opacity="0.36" fill="#8A644B" d="M313.706,461.213c-38.167,0-61.231-13.681-61.231-31.63c0-6.048,15.651-24.078,37.32-49.365
c5.952-3.699,7.464,10.038,14.958,4.731C331.61,392.044,328.318,461.213,313.706,461.213z"/>
<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.116c8.339,23.94,32.817,36.466,52.688,36.466v-4.845
C294.99,503.737,268.056,493.921,260.464,472.116L260.464,472.116z"/>
<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.099,48.222c0.587,1.121,7.021,13.387,7.021,13.387
c8.916,16.375,19.02,34.94,19.02,54.406h4.844c0-20.699-10.416-39.839-19.612-56.725l-7.586-14.455l-0.709-0.426
C190.509,305.4,180.954,291.289,180.954,271.658L180.954,271.658z"/>
<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.108-15.25-3.226-33.651-0.312-49.217l-4.764-0.889
<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="191.0591" y1="310.5205" x2="451.5771" y2="310.5205">
<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.061-31.231
c-19.885-28.185-51.072-56.27-108.998-52.618l5.212,140.363c0,0-122.733-25.589-121.021,15.935c0.227,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.863,0.683,25.108,2.467c4.976,2.739-43.139,7.052-34.351,8.757
c10.057,1.951,44.474,3.086,57.444,3.086c28.929,0,41.077-25.412,41.077-4.485c7.346,27.893,14.739,59.24,13.972,69.882
c-1.475,20.662-19.62,20.188-19.62,20.188l5.089,24.285c-8.557,0.439-6.245-1.324-13.85-0.549
c-14.427,0-32.354,13.032-32.354,16.054l39.989,0.435c0,0-29.081,13.771-22.975,22.928c4.763,7.143,20.316,13.378,31.091,13.424
c0,0,3.273,8.55,3.273,22.352c0,13.811-4.035,22.565-4.035,22.565c46.171,0,67.49-49.036,80.324-118.446
c6.083-32.876,20.018-58.106,36.034-71.657c15.742-13.321,23.008-26.641,23.008-52.071
C451.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.848-96.356-46.493-121.312
c12.682-16.357,24.611-18.136,40.046-19.238c13.519-0.965,21.294,16.525,27.302,24.271
C350.375,162.927,325.395,252.416,325.395,252.416z"/>
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="260.7119" y1="113.4033" x2="349.5527" y2="113.4033" gradientTransform="matrix(0.676 0.6564 -0.9247 0.9523 168.3961 -132.5865)">
<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"/>
@@ -242,10 +242,10 @@
<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.283,24.357
c-14.513-22.972-12.896-47.545,13.854-75.082c26.74-27.547,64.922-33.847,85.28-14.081
<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="241.0796" y1="401.8057" x2="241.0796" y2="318.2148">
<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"/>
@@ -253,27 +253,29 @@
<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.274-35.419,42.799-45.106,36.896c0-45.751-17.227-80.21-17.227-80.21
S249.882,354.221,272.246,361.529z"/>
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="175.4648" y1="345.0176" x2="128.5757" y2="362.0838" gradientTransform="matrix(-1 0 0 1 538.9277 0)">
<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.35c0,46.27,21.504,44.032,31.073,44.032c7.488-45.135,35.671-81.515,35.671-81.515
S381.703,349.045,359.338,356.35z"/>
<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.503,65.948c0.904,1.702,0.904,4.883,0.904,7.96
c-0.005,4.146-0.005,8.432,2.029,11.419c16.157,23.757,31.933,48.809,31.933,70.969c0,32.381-12.818,62.458-37.074,86.969
l-0.541,0.549l-0.128,0.748c-12.222,71.899-36.672,150.453-103.765,150.453v1.517c70.499,0,95.847-76.845,108.416-150.456
c24.801-25.335,37.935-56.354,37.935-89.78c0-23.537-16.19-49.311-32.774-73.694c-1.153-1.698-1.192-5.061-1.192-8.37
c0-0.109,0.004-0.537,0.004-0.646c0-3.567-0.041-7.221-1.469-9.91c-25.237-47.585-56.579-66.125-111.78-66.125V115.089z"/>
<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="109.1782" y1="336.3027" x2="170.7935" y2="336.3027">
<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"/>
@@ -281,10 +283,10 @@
<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.034c9.592-7.823,34.696,4.862,34.833,4.862l26.782-8.396
C170.211,334.501,120.246,321.648,109.178,338.034z"/>
<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="-102.0645" y1="221.0444" x2="-84.4219" y2="221.0444" gradientTransform="matrix(-0.0113 -0.7169 1.2476 -0.0198 36.6184 302.7065)">
<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"/>
@@ -293,10 +295,10 @@
<stop offset="0.6917" style="stop-color:#F4D3C7"/>
<stop offset="1" style="stop-color:#F5D4C9"/>
</linearGradient>
<path opacity="0.36" fill="url(#SVGID_18_)" d="M313.352,358.852c6.074-0.1,11.045,2.653,11.102,6.149
c0.058,3.49-4.829,6.399-10.907,6.498c-6.078,0.101-11.045-2.657-11.107-6.153C302.388,361.854,307.269,358.946,313.352,358.852z"/>
<path fill="#483218" d="M397.109,309.378c15.699-3.759,26.445-18.402,20.099-27.063c-38.74,19.354-75.295,11.369-85.531,9.147
<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.118,22.758-117.549,74.944c-6.089,12.999-6.656,32.87,0.638,45.014
c0,0,18.604-81.43,108.231-86.494"/>
<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>

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 691 B

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 666 B

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

After

Width:  |  Height:  |  Size: 2.9 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 260 KiB

BIN
data/images/charts.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 B

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
data/images/dashboard.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
data/images/drop-album.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
data/images/drop-song.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
data/images/filter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
data/images/info.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

After

Width:  |  Height:  |  Size: 13 KiB

BIN
data/images/loved.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
data/images/not-loved.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
data/images/post.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
data/images/share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 771 B

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

BIN
data/images/station.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 931 B

After

Width:  |  Height:  |  Size: 2.0 KiB

325
data/js/tomahawk.js Normal file
View File

@@ -0,0 +1,325 @@
// if run in phantomjs add fake Tomahawk environment
if(window.Tomahawk === undefined)
{
alert("PHANTOMJS ENVIRONMENT");
var Tomahawk = {
fakeEnv: function()
{
return true;
},
resolverData: function()
{
return {
scriptPath: function()
{
return "/home/tomahawk/resolver.js";
}
};
},
log: function( message )
{
console.log( message );
}
};
}
Tomahawk.resolver = {
scriptPath: Tomahawk.resolverData().scriptPath
};
Tomahawk.timestamp = function() {
return Math.round( new Date()/1000 );
};
Tomahawk.dumpResult = function( result ) {
var results = result.results;
Tomahawk.log("Dumping " + results.length + " results for query " + result.qid + "...");
for(var i=0; i<results.length;i++)
{
var result1 = results[i];
Tomahawk.log( result1.artist + " - " + result1.track + " | " + result1.url );
}
Tomahawk.log("Done.");
};
// javascript part of Tomahawk-Object API
Tomahawk.extend = function(object, members) {
var F = function() {};
F.prototype = object;
var newObject = new F;
for(var key in members)
{
newObject[key] = members[key];
}
return newObject;
};
// Resolver BaseObject, inherit it to implement your own resolver
var TomahawkResolver = {
init: function()
{
},
scriptPath: function()
{
return Tomahawk.resolverData().scriptPath;
},
getConfigUi: function()
{
return {};
},
getUserConfig: function()
{
var configJson = window.localStorage[ this.scriptPath() ];
if( configJson === undefined )
{
configJson = "{}";
}
var config = JSON.parse( configJson );
return config;
},
saveUserConfig: function()
{
var config = Tomahawk.resolverData().config;
var configJson = JSON.stringify( config );
window.localStorage[ this.scriptPath() ] = configJson;
this.newConfigSaved();
},
newConfigSaved: function()
{
},
resolve: function( qid, artist, album, title )
{
return {
qid: qid
};
},
search: function( qid, searchString )
{
return this.resolve( qid, "", "", searchString );
}
};
/**** begin example implementation of a resolver ****/
// implement the resolver
/*
* var DemoResolver = Tomahawk.extend(TomahawkResolver,
* {
* getSettings: function()
* {
* return {
* name: "Demo Resolver",
* weigth: 95,
* timeout: 5,
* limit: 10
};
},
resolve: function( qid, artist, album, track )
{
return {
qid: qid,
results: [
{
artist: "Mokele",
album: "You Yourself are Me Myself and I am in Love",
track: "Hiding In Your Insides (php)",
source: "Mokele.co.uk",
url: "http://play.mokele.co.uk/music/Hiding%20In%20Your%20Insides.mp3",
bitrate: 160,
duration: 248,
size: 4971780,
score: 1.0,
extension: "mp3",
mimetype: "audio/mpeg"
}
]
};
}
}
);
// register the resolver
Tomahawk.resolver.instance = DemoResolver;*/
/**** end example implementation of a resolver ****/
// help functions
Tomahawk.valueForSubNode = function(node, tag)
{
if(node === undefined)
{
throw new Error("Tomahawk.valueForSubnode: node is undefined!");
}
var element = node.getElementsByTagName(tag)[0];
if( element === undefined )
{
return undefined;
}
return element.textContent;
};
Tomahawk.syncRequest = function(url)
{
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.open('GET', url, false);
xmlHttpRequest.send(null);
if (xmlHttpRequest.status == 200){
return xmlHttpRequest.responseText;
}
};
/**
*
* Secure Hash Algorithm (SHA256)
* http://www.webtoolkit.info/
*
* Original code by Angel Marin, Paul Johnston.
*
**/
Tomahawk.sha256=function(s){
var chrsz = 8;
var hexcase = 0;
function safe_add (x, y) {
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
function S (X, n) { return ( X >>> n ) | (X << (32 - n)); }
function R (X, n) { return ( X >>> n ); }
function Ch(x, y, z) { return ((x & y) ^ ((~x) & z)); }
function Maj(x, y, z) { return ((x & y) ^ (x & z) ^ (y & z)); }
function Sigma0256(x) { return (S(x, 2) ^ S(x, 13) ^ S(x, 22)); }
function Sigma1256(x) { return (S(x, 6) ^ S(x, 11) ^ S(x, 25)); }
function Gamma0256(x) { return (S(x, 7) ^ S(x, 18) ^ R(x, 3)); }
function Gamma1256(x) { return (S(x, 17) ^ S(x, 19) ^ R(x, 10)); }
function core_sha256 (m, l) {
var K = new Array(0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0xFC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x6CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2);
var HASH = new Array(0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A, 0x510E527F, 0x9B05688C, 0x1F83D9AB, 0x5BE0CD19);
var W = new Array(64);
var a, b, c, d, e, f, g, h, i, j;
var T1, T2;
m[l >> 5] |= 0x80 << (24 - l % 32);
m[((l + 64 >> 9) << 4) + 15] = l;
for ( i = 0; i<m.length; i+=16 ) {
a = HASH[0];
b = HASH[1];
c = HASH[2];
d = HASH[3];
e = HASH[4];
f = HASH[5];
g = HASH[6];
h = HASH[7];
for ( j = 0; j<64; j++) {
if (j < 16)
{
W[j] = m[j + i];
}
else
{
W[j] = safe_add(safe_add(safe_add(Gamma1256(W[j - 2]), W[j - 7]), Gamma0256(W[j - 15])), W[j - 16]);
}
T1 = safe_add(safe_add(safe_add(safe_add(h, Sigma1256(e)), Ch(e, f, g)), K[j]), W[j]);
T2 = safe_add(Sigma0256(a), Maj(a, b, c));
h = g;
g = f;
f = e;
e = safe_add(d, T1);
d = c;
c = b;
b = a;
a = safe_add(T1, T2);
}
HASH[0] = safe_add(a, HASH[0]);
HASH[1] = safe_add(b, HASH[1]);
HASH[2] = safe_add(c, HASH[2]);
HASH[3] = safe_add(d, HASH[3]);
HASH[4] = safe_add(e, HASH[4]);
HASH[5] = safe_add(f, HASH[5]);
HASH[6] = safe_add(g, HASH[6]);
HASH[7] = safe_add(h, HASH[7]);
}
return HASH;
}
function str2binb (str) {
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz) {
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i%32);
}
return bin;
}
function Utf8Encode(string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
function binb2hex (binarray) {
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++) {
str += hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((3 - i%4)*8 )) & 0xF);
}
return str;
}
s = Utf8Encode(s);
return binb2hex(core_sha256(str2binb(s), s.length * chrsz));
};
// some aliases
Tomahawk.setTimeout = window.setTimeout;
Tomahawk.setInterval = window.setInterval;

View File

@@ -0,0 +1,22 @@
-- Script to migate from db version 23 to 24.
-- Added the social_attributes table.
--
-- Separate each command with %%
CREATE TABLE IF NOT EXISTS social_attributes (
id INTEGER REFERENCES track(id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED, -- track id
source INTEGER REFERENCES source(id) ON DELETE CASCADE ON UPDATE CASCADE, -- DEFERRABLE INITIALLY DEFERRED,
k TEXT NOT NULL,
v TEXT NOT NULL,
timestamp INTEGER NOT NULL DEFAULT 0
);
CREATE INDEX social_attrib_id ON social_attributes(id);
CREATE INDEX social_attrib_source ON social_attributes(source);
CREATE INDEX social_attrib_k ON social_attributes(k);
CREATE INDEX social_attrib_timestamp ON social_attributes(timestamp);
UPDATE settings SET v = '24' WHERE k == 'schema_version';

View File

@@ -0,0 +1,17 @@
-- Script to migate from db version 24 to 25.
-- Added the social_attributes table.
--
ALTER TABLE dynamic_playlist RENAME TO tmp_dynamic_playlist;
CREATE TABLE IF NOT EXISTS dynamic_playlist (
guid TEXT NOT NULL REFERENCES playlist(guid) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE INITIALLY DEFERRED,
pltype TEXT, -- the generator type
plmode INTEGER -- the mode of this playlist
);
INSERT INTO dynamic_playlist( guid, pltype, plmode ) SELECT guid, pltype, plmode FROM tmp_dynamic_playlist;
DROP TABLE tmp_dynamic_playlist;
UPDATE settings SET v = '25' WHERE k == 'schema_version';

View File

@@ -0,0 +1,8 @@
-- Script to migate from db version 25 to 26.
-- Added the "autoload" column to dynamic_playlist
--
ALTER TABLE dynamic_playlist ADD COLUMN autoload BOOLEAN DEFAULT 'true';
UPDATE settings SET v = '26' WHERE k == 'schema_version';

View File

@@ -119,22 +119,22 @@
<message>
<location filename="src/libtomahawk/playlist/collectionmodel.cpp" line="168"/>
<source>Name</source>
<translation type="unfinished">Name</translation>
<translation>Name</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/collectionmodel.cpp" line="168"/>
<source>Tracks</source>
<translation type="unfinished">Stücke</translation>
<translation>Stücke</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/collectionmodel.cpp" line="168"/>
<source>Duration</source>
<translation type="unfinished">Spieldauer</translation>
<translation>Spieldauer</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/collectionmodel.cpp" line="168"/>
<source>Origin</source>
<translation type="unfinished">Quelle</translation>
<translation>Quelle</translation>
</message>
</context>
<context>
@@ -142,17 +142,17 @@
<message>
<location filename="src/libtomahawk/playlist/collectionview.cpp" line="75"/>
<source>&amp;Play</source>
<translation type="unfinished">&amp;Abspielen</translation>
<translation>&amp;Abspielen</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/collectionview.cpp" line="76"/>
<source>Add to &amp;Queue</source>
<translation type="unfinished">Zur &amp;Warteschlange hinzufügen</translation>
<translation>In &amp;Warteschlange einreihen</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/collectionview.cpp" line="108"/>
<source>This collection is empty.</source>
<translation type="unfinished">Diese Sammlung ist leer.</translation>
<translation>Diese Sammlung ist leer.</translation>
</message>
</context>
<context>
@@ -175,19 +175,19 @@
<message>
<location filename="src/sip/jabber/jabber.cpp" line="124"/>
<source>Add Friend...</source>
<translation type="unfinished">Freund hinzufügen</translation>
<translation>Freund hinzufügen</translation>
</message>
<message>
<location filename="src/sip/jabber/jabber.cpp" line="169"/>
<location filename="src/sip/jreen/jabber.cpp" line="183"/>
<source>Add Friend</source>
<translation type="unfinished">Freund hinzufügen</translation>
<translation>Freund hinzufügen</translation>
</message>
<message>
<location filename="src/sip/jabber/jabber.cpp" line="170"/>
<location filename="src/sip/jreen/jabber.cpp" line="184"/>
<source>Enter Jabber ID:</source>
<translation type="unfinished">Jabber-ID eingeben:</translation>
<translation>Jabber-ID eingeben:</translation>
</message>
</context>
<context>
@@ -208,27 +208,27 @@
<message>
<location filename="src/libtomahawk/widgets/newplaylistwidget.ui" line="22"/>
<source>Enter a title for the new playlist:</source>
<translation type="unfinished">Gib einen Titel für die neue Playliste ein:</translation>
<translation>Gib einen Titel für die neue Playliste ein:</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/newplaylistwidget.ui" line="44"/>
<source>Tomahawk offers a variety of ways to help you create playlists and find music you enjoy!</source>
<translation type="unfinished">Tomahawk bietet verschiedene Wege, Playlisten zu erstellen und Musik zu finden, die du magst!</translation>
<translation>Tomahawk bietet verschiedene Wege, Playlisten zu erstellen und Musik zu finden, die du magst!</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/newplaylistwidget.ui" line="59"/>
<source>Just enter a genre or tag name and Tomahawk will suggest a few songs to get you started with your new playlist:</source>
<translation type="unfinished">Gib einfach ein Genre oder einen Tagnamen ein und Tomahawk wird dir einige Lieder vorschlagen, um dir zu helfen, eine neue Playliste zu erstellen:</translation>
<translation>Gib einfach ein Genre oder einen Tagnamen ein, und Tomahawk wird dir einige Lieder vorschlagen und dir helfen eine neue Playliste zu erstellen:</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/newplaylistwidget.cpp" line="45"/>
<source>&amp;Create Playlist</source>
<translation type="unfinished">Playliste &amp;erstellen</translation>
<translation>Playliste &amp;erstellen</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/newplaylistwidget.h" line="51"/>
<source>Create a new playlist</source>
<translation type="unfinished">Erstelle eine neue Playliste</translation>
<translation>Erstelle eine neue Playliste</translation>
</message>
</context>
<context>
@@ -270,27 +270,27 @@
<message>
<location filename="src/libtomahawk/playlist/playlistview.cpp" line="74"/>
<source>&amp;Play</source>
<translation type="unfinished">&amp;Abspielen</translation>
<translation>&amp;Abspielen</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/playlistview.cpp" line="75"/>
<source>Add to &amp;Queue</source>
<translation type="unfinished">In &amp;Warteschlange einreihen</translation>
<translation>In &amp;Warteschlange einreihen</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/playlistview.cpp" line="79"/>
<source>&amp;Delete Items</source>
<translation type="unfinished">Elemente &amp;entfernen</translation>
<translation>Elemente &amp;entfernen</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/playlistview.cpp" line="79"/>
<source>&amp;Delete Item</source>
<translation type="unfinished">Element &amp;entfernen</translation>
<translation>Element &amp;entfernen</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/playlistview.cpp" line="143"/>
<source>This playlist is currently empty. Add some tracks to it and enjoy the music!</source>
<translation type="unfinished">Die Playliste ist derzeit leer. Füge einige Stücke hinzu und genieße die Musik!</translation>
<translation>Die Playliste ist derzeit leer. Füge einige Stücke hinzu und genieße die Musik!</translation>
</message>
</context>
<context>
@@ -359,18 +359,18 @@
<message>
<location filename="src/settingsdialog.ui" line="30"/>
<source>Jabber</source>
<translation type="unfinished">Jabber</translation>
<translation>Jabber</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="53"/>
<source>Jabber ID:</source>
<translation type="unfinished">Jabber-ID:</translation>
<translation>Jabber-ID:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="79"/>
<location filename="src/settingsdialog.ui" line="524"/>
<source>Password:</source>
<translation type="unfinished">Passwort:</translation>
<translation>Passwort:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="132"/>
@@ -380,138 +380,138 @@
<message>
<location filename="src/settingsdialog.ui" line="152"/>
<source>Server:</source>
<translation type="unfinished">Server:</translation>
<translation>Server:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="175"/>
<source>Port:</source>
<translation type="unfinished">Port:</translation>
<translation>Port:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="238"/>
<source>Network</source>
<translation type="unfinished">Netzwerk</translation>
<translation>Netzwerk</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="250"/>
<source>Advanced Network Settings</source>
<translation type="unfinished">Erweiterte Netzwerkeinstellungen</translation>
<translation>Erweiterte Netzwerkeinstellungen</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="267"/>
<source>If you&apos;re having difficulty connecting to peers, try setting this to your external IP address/host name and a port number (default 50210). Make sure to forward that port to this machine!</source>
<translation type="unfinished">Wenn du Schwierigkeiten hast, zu anderen Leuten zu verbinden, versuche diene externe IP-Addresse/Rechnernamen und eine Portnummer (Standard 50210) hier einzutragen. Stelle sicher, den Port entsprechend an diesen Rechner weiterzuleiten!</translation>
<translation>Wenn du Schwierigkeiten hast, dich mit anderen Leuten zu verbinden, versuche deine externe IP-Adresse/Rechnernamen und eine Portnummer (Standard 50210) hier einzutragen. Stelle sicher, den Port entsprechend an diesen Rechner weiterzuleiten!</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="285"/>
<source>Static Host Name:</source>
<translation type="unfinished">Statischer Rechnername:</translation>
<translation>Statischer Rechnername:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="301"/>
<source>Static Port:</source>
<translation type="unfinished">Statischer Port:</translation>
<translation>Statischer Port:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="323"/>
<source>Always use static host name/port? (Overrides UPnP discovery/port forwarding)</source>
<translation type="unfinished">Statischen Rechnernamen/Port immer benutzen? (Überschreibt UPnP-discovery/Portweiterleitung)</translation>
<translation>Statischen Rechnernamen/Port immer benutzen? (Überschreibt UPnP-discovery/Portweiterleitung)</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="347"/>
<source>Proxy Settings...</source>
<translation type="unfinished">Proxy-Einstellungen</translation>
<translation>Proxy-Einstellungen</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="385"/>
<source>Playdar HTTP API</source>
<translation type="unfinished">Playdar HTTP API</translation>
<translation>Playdar HTTP API</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="398"/>
<source>Connect automatically when Tomahawk starts</source>
<translation type="unfinished">Automatisch beim Start von Tomahawk verbinden</translation>
<translation>Automatisch beim Start von Tomahawk verbinden</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="411"/>
<source>Use UPnP to establish port forward</source>
<translation type="unfinished">Benutze UPnP um die Portweiterleitung zu konfigurieren</translation>
<translation>Benutze UPnP um die Portweiterleitung einzurichten</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="425"/>
<source>Local Music</source>
<translation type="unfinished">Lokale Musik</translation>
<translation>Lokale Musik</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="436"/>
<source>Path to scan for music files:</source>
<translation type="unfinished">Pfad zu den Musikdateien:</translation>
<translation>Pfad zu den Musikdateien:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="448"/>
<source>...</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="490"/>
<source>Last.fm</source>
<translation type="unfinished">Last.fm</translation>
<translation>Last.fm</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="499"/>
<source>Scrobble tracks to Last.fm</source>
<translation type="unfinished">Gespielte Stücke an Last.fm übertragen</translation>
<translation>Gespielte Stücke an Last.fm übertragen</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="506"/>
<source>Last.fm Login</source>
<translation type="unfinished">Last.fm Anmeldung</translation>
<translation>Last.fm Anmeldung</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="514"/>
<source>Username:</source>
<translation type="unfinished">Benutzername:</translation>
<translation>Benutzername:</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="540"/>
<source>Test Login</source>
<translation type="unfinished">Anmeldung Testen</translation>
<translation>Anmeldung testen</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="564"/>
<source>Script Resolvers</source>
<translation type="unfinished"></translation>
<translation>Script Resolver</translation>
</message>
<message>
<location filename="src/settingsdialog.ui" line="570"/>
<source>Loaded script resolvers:</source>
<translation type="unfinished"></translation>
<translation>Geladene Script Resolver:</translation>
</message>
<message>
<location filename="src/settingsdialog.cpp" line="163"/>
<source>Select Music Folder</source>
<translation type="unfinished">Musikordner auswählen</translation>
<translation>Musikordner auswählen</translation>
</message>
<message>
<location filename="src/settingsdialog.cpp" line="250"/>
<location filename="src/settingsdialog.cpp" line="262"/>
<source>Failed</source>
<translation type="unfinished">Fehlgeschlagen</translation>
<translation>Fehlgeschlagen</translation>
</message>
<message>
<location filename="src/settingsdialog.cpp" line="255"/>
<source>Success</source>
<translation type="unfinished">Erfolgreich</translation>
<translation>Erfolgreich</translation>
</message>
<message>
<location filename="src/settingsdialog.cpp" line="268"/>
<source>Could not contact server</source>
<translation type="unfinished">Konnte den Server nicht erreichen</translation>
<translation>Konnte den Server nicht erreichen</translation>
</message>
<message>
<location filename="src/settingsdialog.cpp" line="338"/>
<source>Load script resolver file</source>
<translation type="unfinished"></translation>
<translation>Script Resolver laden</translation>
</message>
</context>
<context>
@@ -519,17 +519,17 @@
<message>
<location filename="src/sourcetree/sourcetreeview.cpp" line="558"/>
<source>Offline</source>
<translation type="unfinished">Nicht Verbunden</translation>
<translation>Nicht Verbunden</translation>
</message>
<message>
<location filename="src/sourcetree/sourcetreeview.cpp" line="560"/>
<source>All available tracks</source>
<translation type="unfinished">Alle verfügbaren Stücke</translation>
<translation>Alle verfügbaren Stücke</translation>
</message>
<message>
<location filename="src/sourcetree/sourcetreeview.cpp" line="564"/>
<source>Online</source>
<translation type="unfinished">Verbunden</translation>
<translation>Verbunden</translation>
</message>
</context>
<context>
@@ -537,27 +537,27 @@
<message>
<location filename="src/libtomahawk/widgets/infowidgets/sourceinfowidget.ui" line="26"/>
<source>Recent Albums</source>
<translation type="unfinished">Aktuelle Alben</translation>
<translation>Aktuelle Alben</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/infowidgets/sourceinfowidget.ui" line="68"/>
<source>Latest Additions to their Collection</source>
<translation type="unfinished">Zuletzt zur Sammlung hinzugefügte Stücke</translation>
<translation>Zuletzt zur Sammlung hinzugefügt</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/infowidgets/sourceinfowidget.ui" line="89"/>
<source>Recently played Tracks</source>
<translation type="unfinished">Aktuell gespiele Stücke</translation>
<translation>Zuletzt gespiele Stücke</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp" line="65"/>
<source>Info about %1</source>
<translation type="unfinished">Information über %1</translation>
<translation>Information über %1</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp" line="65"/>
<source>Your Collection</source>
<translation type="unfinished">Deine Sammlung</translation>
<translation>Deine Sammlung</translation>
</message>
</context>
<context>
@@ -654,17 +654,17 @@
<message>
<location filename="src/sourcetree/sourcetreeview.cpp" line="125"/>
<source>&amp;Load Playlist</source>
<translation type="unfinished">&amp;Lade Playliste</translation>
<translation>&amp;Lade Playliste</translation>
</message>
<message>
<location filename="src/sourcetree/sourcetreeview.cpp" line="126"/>
<source>&amp;Rename Playlist</source>
<translation type="unfinished">Playliste &amp;umbenennen</translation>
<translation>Playliste &amp;umbenennen</translation>
</message>
<message>
<location filename="src/sourcetree/sourcetreeview.cpp" line="128"/>
<source>&amp;Delete Playlist</source>
<translation type="unfinished">Playliste &amp;löschen</translation>
<translation>Playliste &amp;löschen</translation>
</message>
</context>
<context>
@@ -698,7 +698,7 @@ Bitte ändere den Filter oder versuche es erneut.</translation>
<message>
<location filename="src/libtomahawk/playlist/dynamic/widgets/DynamicSetupWidget.cpp" line="62"/>
<source>Generate</source>
<translation type="unfinished">Erzeugen</translation>
<translation>Erzeugen</translation>
</message>
</context>
<context>
@@ -706,17 +706,17 @@ Bitte ändere den Filter oder versuche es erneut.</translation>
<message>
<location filename="src/libtomahawk/playlist/dynamic/DynamicView.cpp" line="135"/>
<source>Add some filters above to seed this station!</source>
<translation type="unfinished">Füge einige Filter hinzu, um diese Station zu initialisieren!</translation>
<translation>Füge einige Filter hinzu, um diese Station zu starten!</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/dynamic/DynamicView.cpp" line="140"/>
<source>Press Generate to get started!</source>
<translation type="unfinished">Drücke Erzeugen, um zu beginnen!</translation>
<translation>Drücke Erzeugen, und los geht&apos;s!</translation>
</message>
<message>
<location filename="src/libtomahawk/playlist/dynamic/DynamicView.cpp" line="142"/>
<source>Add some filters above, and press Generate to get started!</source>
<translation type="unfinished">Füge oben einige Filter hinzu und drücke Erzeugen um zu beginnen!</translation>
<translation>Füge oben einige Filter hinzu und drücke Erzeugen um loszulegen!</translation>
</message>
</context>
<context>
@@ -1091,53 +1091,53 @@ Bitte ändere den Filter oder versuche es erneut.</translation>
<message>
<location filename="src/tomahawkwindow.ui" line="14"/>
<source>Tomahawk</source>
<translation type="unfinished">Tomahawk</translation>
<translation>Tomahawk</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="43"/>
<source>&amp;Settings</source>
<translation type="unfinished">&amp;Einstellungen</translation>
<translation>&amp;Einstellungen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="49"/>
<source>&amp;Music Player</source>
<translation type="unfinished">&amp;Abspielprogramm</translation>
<translation>&amp;Music Player</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="60"/>
<source>&amp;Playlist</source>
<translation type="unfinished">&amp;Playliste</translation>
<translation>&amp;Playliste</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="70"/>
<source>&amp;Network</source>
<translation type="unfinished">&amp;Netzwerk</translation>
<translation>&amp;Netzwerk</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="77"/>
<source>&amp;Help</source>
<translation type="unfinished">&amp;Hilfe</translation>
<translation>&amp;Hilfe</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="90"/>
<source>&amp;Quit</source>
<translation type="unfinished">&amp;Verlassen</translation>
<translation>&amp;Verlassen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="93"/>
<source>Ctrl+Q</source>
<translation type="unfinished">Strg+Q</translation>
<translation>Ctrl+Q</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="101"/>
<location filename="src/tomahawkwindow.cpp" line="471"/>
<source>Go &amp;online</source>
<translation type="unfinished">&amp;Verbindung herstellen</translation>
<translation>&amp;Verbindung herstellen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="106"/>
<source>Add &amp;Friend...</source>
<translation type="unfinished">Freund &amp;hinzufügen</translation>
<translation>Freund &amp;hinzufügen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="111"/>
@@ -1147,58 +1147,58 @@ Bitte ändere den Filter oder versuche es erneut.</translation>
<message>
<location filename="src/tomahawkwindow.ui" line="116"/>
<source>&amp;Configure Tomahawk...</source>
<translation type="unfinished">Tomahawk &amp;einrichten</translation>
<translation>Tomahawk &amp;einrichten</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="124"/>
<source>Load &amp;XSPF...</source>
<translation type="unfinished">&amp;XSPF-Datei laden</translation>
<translation>&amp;XSPF laden</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="129"/>
<source>Create &amp;New Playlist...</source>
<translation type="unfinished">Neue &amp;Playliste erstellen</translation>
<translation>Neue &amp;Playliste erstellen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="134"/>
<source>About &amp;Tomahawk...</source>
<translation type="unfinished">Über &amp;Tomahawk</translation>
<translation>Über &amp;Tomahawk</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="142"/>
<source>Create New &amp;Automatic Playlist</source>
<translation type="unfinished">Neue, &amp;automatische Playliste erstellen</translation>
<translation>Neue &amp;automatische Playliste erstellen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="147"/>
<source>Create New &amp;Station</source>
<translation type="unfinished">Neue &amp;Station erstellen</translation>
<translation>Neue &amp;Station erstellen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="152"/>
<source>Show Offline Sources</source>
<translation type="unfinished">Nicht-Verfügbare Quellen anzeigen</translation>
<translation>Nicht-Verfügbare Quellen anzeigen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.ui" line="157"/>
<source>Hide Offline Sources</source>
<translation type="unfinished">Nicht-Verfügbare Quellen ausblenden</translation>
<translation>Nicht-Verfügbare Quellen ausblenden</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="150"/>
<location filename="src/tomahawkwindow.cpp" line="166"/>
<source>Check for updates...</source>
<translation type="unfinished">Teste auf updates</translation>
<translation type="unfinished">Suche nach Updates</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="170"/>
<source>Back</source>
<translation type="unfinished">Zurück</translation>
<translation>Zurück</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="171"/>
<source>Forward</source>
<translation type="unfinished">Forwärts</translation>
<translation>Vorwärts</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="172"/>
@@ -1210,37 +1210,37 @@ Bitte ändere den Filter oder versuche es erneut.</translation>
<location filename="src/tomahawkwindow.cpp" line="339"/>
<location filename="src/tomahawkwindow.cpp" line="347"/>
<source>Connect To Peer</source>
<translation type="unfinished">Zu Gegenstelle verbinden</translation>
<translation>Zu Gegenstelle verbinden</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="333"/>
<source>Enter peer address:</source>
<translation type="unfinished">Gib die Adresse der Gegenstelle ein:</translation>
<translation>Gib die Adresse der Gegenstelle ein:</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="340"/>
<source>Enter peer port:</source>
<translation type="unfinished">Gib den Port der Gegenstelle ein:</translation>
<translation>Gib den Port der Gegenstelle ein:</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="348"/>
<source>Enter peer key:</source>
<translation type="unfinished">Gib den Schlüssel der Gegenstelle ein:</translation>
<translation>Gib den Schlüssel der Gegenstelle ein:</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="464"/>
<source>Go &amp;offline</source>
<translation type="unfinished">Verbindung &amp;trennen</translation>
<translation>Verbindung &amp;trennen</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="481"/>
<source>Authentication Error</source>
<translation type="unfinished">Authentifizierungsfehler</translation>
<translation>Authentifizierungsfehler</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="496"/>
<source>by</source>
<translation type="unfinished">von</translation>
<translation>von</translation>
</message>
<message>
<location filename="src/tomahawkwindow.cpp" line="506"/>
@@ -1357,17 +1357,17 @@ Bitte ändere den Filter oder versuche es erneut.</translation>
<message>
<location filename="src/transferview.cpp" line="46"/>
<source>Peer</source>
<translation type="unfinished">Gegenstelle</translation>
<translation>Gegenstelle</translation>
</message>
<message>
<location filename="src/transferview.cpp" line="46"/>
<source>Rate</source>
<translation type="unfinished">Rate</translation>
<translation>Rate</translation>
</message>
<message>
<location filename="src/transferview.cpp" line="46"/>
<source>Track</source>
<translation type="unfinished">Stück</translation>
<translation>Stück</translation>
</message>
</context>
<context>
@@ -1435,22 +1435,22 @@ If connections to peers seem to have been lost, just press the appropriate butto
<message>
<location filename="src/libtomahawk/widgets/welcomewidget.ui" line="22"/>
<source>Recently played playlists:</source>
<translation type="unfinished">Aktuell gespielte Playlisten:</translation>
<translation>Zuletzt gespielte Playlisten:</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/welcomewidget.ui" line="37"/>
<source>Recently played tracks:</source>
<translation type="unfinished">Aktuell gespielte Stücke:</translation>
<translation>Zuletzt gespielte Stücke:</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/welcomewidget.cpp" line="81"/>
<source>You have not played any playlists yet.</source>
<translation type="unfinished">Du hast bisher keine Playlisten abgespielt.</translation>
<translation>Du hast bisher keine Playlisten abgespielt.</translation>
</message>
<message>
<location filename="src/libtomahawk/widgets/welcomewidget.h" line="106"/>
<source>Welcome to Tomahawk</source>
<translation type="unfinished">Willkommen bei Tomahawk</translation>
<translation>Willkommen bei Tomahawk</translation>
</message>
</context>
<context>

View File

@@ -1,106 +1,119 @@
<RCC>
<qresource>
<file>./data/images/add-friend-button-pressed.png</file>
<file>./data/images/add-friend-button-rest.png</file>
<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/cover-shadow.png</file>
<file>./data/images/magnifying-glass.png</file>
<file>./data/images/no-album-art-placeholder.png</file>
<file>./data/images/now-playing-panel.png</file>
<file>./data/images/now-playing-speaker.png</file>
<file>./data/images/pause-pressed.png</file>
<file>./data/images/pause-rest.png</file>
<file>./data/images/play-pressed.png</file>
<file>./data/images/play-rest.png</file>
<file>./data/images/sipplugin-add.png</file>
<file>./data/images/sipplugin-remove.png</file>
<file>./data/images/playlist-icon.png</file>
<file>./data/images/repeat-1-on-pressed.png</file>
<file>./data/images/repeat-1-on-rest.png</file>
<file>./data/images/repeat-all-on-pressed.png</file>
<file>./data/images/repeat-all-on-rest.png</file>
<file>./data/images/repeat-off-pressed.png</file>
<file>./data/images/repeat-off-rest.png</file>
<file>./data/images/search-box-dismiss-x.png</file>
<file>./data/images/search-box.png</file>
<file>./data/images/seek-and-volume-knob-pressed.png</file>
<file>./data/images/seek-and-volume-knob-rest.png</file>
<file>./data/images/seek-slider-bkg.png</file>
<file>./data/images/seek-slider-level.png</file>
<file>./data/images/shuffle-off-pressed.png</file>
<file>./data/images/shuffle-off-rest.png</file>
<file>./data/images/shuffle-on-pressed.png</file>
<file>./data/images/shuffle-on-rest.png</file>
<file>./data/images/skip-pressed.png</file>
<file>./data/images/skip-rest.png</file>
<file>./data/images/source-info.png</file>
<file>./data/images/source-off-pressed.png</file>
<file>./data/images/source-off-rest.png</file>
<file>./data/images/source-on-pressed.png</file>
<file>./data/images/source-on-rest.png</file>
<file>./data/images/status-alert-icon.png</file>
<file>./data/images/status-bar-bkg.png</file>
<file>./data/images/status-dismiss-x.png</file>
<file>./data/images/user-avatar.png</file>
<file>./data/images/view-toggle-active-centre.png</file>
<file>./data/images/view-toggle-active-left.png</file>
<file>./data/images/view-toggle-active-right.png</file>
<file>./data/images/view-toggle-icon-artist-active.png</file>
<file>./data/images/view-toggle-icon-artist-inactive.png</file>
<file>./data/images/view-toggle-icon-cloud-active.png</file>
<file>./data/images/view-toggle-icon-cloud-inactive.png</file>
<file>./data/images/view-toggle-icon-list-active.png</file>
<file>./data/images/view-toggle-icon-list-inactive.png</file>
<file>./data/images/view-toggle-inactive-centre.png</file>
<file>./data/images/view-toggle-inactive-left.png</file>
<file>./data/images/view-toggle-inactive-right.png</file>
<file>./data/images/view-toggle-pressed-centre.png</file>
<file>./data/images/view-toggle-pressed-left.png</file>
<file>./data/images/view-toggle-pressed-right.png</file>
<file>./data/images/list-add.png</file>
<file>./data/images/list-remove.png</file>
<file>./data/images/arrow-up-double.png</file>
<file>./data/images/arrow-down-double.png</file>
<file>./data/images/volume-icon-full.png</file>
<file>./data/images/arrow-right-double.png</file>
<file>./data/images/view-refresh.png</file>
<file>./data/images/volume-icon-muted.png</file>
<file>./data/images/volume-slider-bkg.png</file>
<file>./data/images/volume-slider-level.png</file>
<file>./data/images/echonest_logo.png</file>
<file>./data/images/loading-animation.gif</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/add.png</file>
<file>./data/images/recently-played.png</file>
<file>./data/images/supercollection.png</file>
<file>./data/images/sipplugin-online.png</file>
<file>./data/images/sipplugin-offline.png</file>
<file>./data/images/advanced-settings.png</file>
<file>./data/images/account-settings.png</file>
<file>./data/images/music-settings.png</file>
<file>./data/images/resolvers-settings.png</file>
<file>./data/images/lastfm-settings.png</file>
<file>./data/stylesheets/topbar-radiobuttons.css</file>
<file>./data/icons/tomahawk-icon-16x16.png</file>
<file>./data/icons/tomahawk-icon-32x32.png</file>
<file>./data/icons/tomahawk-icon-64x64.png</file>
<file>./data/icons/tomahawk-icon-128x128.png</file>
<file>./data/icons/tomahawk-icon-256x256.png</file>
<file>./data/icons/tomahawk-icon-512x512.png</file>
<file>./data/icons/audio-x-generic-22x22.png</file>
<file>./data/icons/audio-x-generic-32x32.png</file>
<file>./data/icons/audio-x-generic-16x16.png</file>
<file>./data/www/auth.html</file>
<file>./data/www/auth.na.html</file>
<file>./data/www/tomahawk_banner_small.png</file>
<file>./data/sql/dbmigrate-22_to_23.sql</file>
</qresource>
<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/cover-shadow.png</file>
<file>data/images/filter.png</file>
<file>data/images/loved.png</file>
<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/track-placeholder.png</file>
<file>data/images/now-playing-panel.png</file>
<file>data/images/now-playing-speaker.png</file>
<file>data/images/pause-pressed.png</file>
<file>data/images/pause-rest.png</file>
<file>data/images/play-pressed.png</file>
<file>data/images/play-rest.png</file>
<file>data/images/sipplugin-add.png</file>
<file>data/images/sipplugin-remove.png</file>
<file>data/images/playlist-icon.png</file>
<file>data/images/repeat-1-on-pressed.png</file>
<file>data/images/repeat-1-on-rest.png</file>
<file>data/images/repeat-all-on-pressed.png</file>
<file>data/images/repeat-all-on-rest.png</file>
<file>data/images/repeat-off-pressed.png</file>
<file>data/images/repeat-off-rest.png</file>
<file>data/images/search-box-dismiss-x.png</file>
<file>data/images/seek-and-volume-knob-pressed.png</file>
<file>data/images/seek-and-volume-knob-rest.png</file>
<file>data/images/seek-slider-bkg.png</file>
<file>data/images/seek-slider-level.png</file>
<file>data/images/shuffle-off-pressed.png</file>
<file>data/images/shuffle-off-rest.png</file>
<file>data/images/shuffle-on-pressed.png</file>
<file>data/images/shuffle-on-rest.png</file>
<file>data/images/skip-pressed.png</file>
<file>data/images/skip-rest.png</file>
<file>data/images/user-avatar.png</file>
<file>data/images/view-toggle-active-centre.png</file>
<file>data/images/view-toggle-active-left.png</file>
<file>data/images/view-toggle-active-right.png</file>
<file>data/images/view-toggle-icon-artist-active.png</file>
<file>data/images/view-toggle-icon-artist-inactive.png</file>
<file>data/images/view-toggle-icon-cloud-active.png</file>
<file>data/images/view-toggle-icon-cloud-inactive.png</file>
<file>data/images/view-toggle-icon-list-active.png</file>
<file>data/images/view-toggle-icon-list-inactive.png</file>
<file>data/images/view-toggle-inactive-centre.png</file>
<file>data/images/view-toggle-inactive-left.png</file>
<file>data/images/view-toggle-inactive-right.png</file>
<file>data/images/view-toggle-pressed-centre.png</file>
<file>data/images/view-toggle-pressed-left.png</file>
<file>data/images/view-toggle-pressed-right.png</file>
<file>data/images/list-add.png</file>
<file>data/images/list-remove.png</file>
<file>data/images/arrow-up-double.png</file>
<file>data/images/arrow-down-double.png</file>
<file>data/images/volume-icon-full.png</file>
<file>data/images/arrow-right-double.png</file>
<file>data/images/view-refresh.png</file>
<file>data/images/volume-icon-muted.png</file>
<file>data/images/volume-slider-bkg.png</file>
<file>data/images/volume-slider-level.png</file>
<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/add.png</file>
<file>data/images/recently-played.png</file>
<file>data/images/supercollection.png</file>
<file>data/images/sipplugin-online.png</file>
<file>data/images/sipplugin-offline.png</file>
<file>data/images/advanced-settings.png</file>
<file>data/images/account-settings.png</file>
<file>data/images/music-settings.png</file>
<file>data/images/resolvers-settings.png</file>
<file>data/images/lastfm-settings.png</file>
<file>data/images/automatic-playlist.png</file>
<file>data/images/station.png</file>
<file>data/images/new-additions.png</file>
<file>data/images/charts.png</file>
<file>data/images/loved_playlist.png</file>
<file>data/images/dashboard.png</file>
<file>data/images/artist-icon.png</file>
<file>data/images/album-icon.png</file>
<file>data/images/search-icon.png</file>
<file>data/images/track-icon-22x22.png</file>
<file>data/images/track-icon-32x32.png</file>
<file>data/images/track-icon-16x16.png</file>
<file>data/stylesheets/topbar-radiobuttons.css</file>
<file>data/icons/tomahawk-icon-16x16.png</file>
<file>data/icons/tomahawk-icon-32x32.png</file>
<file>data/icons/tomahawk-icon-64x64.png</file>
<file>data/icons/tomahawk-icon-128x128.png</file>
<file>data/icons/tomahawk-icon-256x256.png</file>
<file>data/icons/tomahawk-icon-512x512.png</file>
<file>data/www/auth.html</file>
<file>data/www/auth.na.html</file>
<file>data/www/tomahawk_banner_small.png</file>
<file>data/sql/dbmigrate-22_to_23.sql</file>
<file>data/sql/dbmigrate-23_to_24.sql</file>
<file>data/sql/dbmigrate-24_to_25.sql</file>
<file>data/sql/dbmigrate-25_to_26.sql</file>
<file>data/js/tomahawk.js</file>
<file>data/images/avatar_frame.png</file>
<file>data/images/drop-all-songs.png</file>
<file>data/images/drop-local-songs.png</file>
<file>data/images/drop-top-songs.png</file>
<file>data/images/drop-song.png</file>
<file>data/images/drop-album.png</file>
</qresource>
</RCC>

View File

@@ -41,12 +41,17 @@ if (APPLE)
edited_plist # save in this variable
"${plist}" # from the contents of this var
)
IF( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
STRING( REPLACE "http://download.tomahawk-player.org/sparkle" # match this
"http://download.tomahawk-player.org/sparkle-debug" #replace with debug url
edited_plist # save in this variable
"${edited_plist}" # from the contents of this var
)
ENDIF()
# Disable non-release sparkle for now. We haven't used it yet.
# IF( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
# STRING( REPLACE "http://download.tomahawk-player.org/sparkle" # match this
# "http://download.tomahawk-player.org/sparkle-debug" #replace with debug url
# edited_plist # save in this variable
# "${edited_plist}" # from the contents of this var
# )
# ENDIF()
FILE( WRITE ${CMAKE_BINARY_DIR}/Info.plist "${edited_plist}" )
FILE(COPY ${CMAKE_SOURCE_DIR}/admin/mac/sparkle_pub.pem
DESTINATION "${CMAKE_BINARY_DIR}/tomahawk.app/Contents/Resources")
endif (APPLE)

View File

@@ -4,13 +4,17 @@ CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
IF( "${gui}" STREQUAL "no" )
SET( QT_DONT_USE_QTGUI TRUE )
ENDIF()
IF( UNIX AND NOT APPLE )
SET( QT_USE_QTDBUS TRUE )
ENDIF( UNIX AND NOT APPLE )
SET( QT_USE_QTSQL TRUE )
SET( QT_USE_QTNETWORK TRUE )
SET( QT_USE_QTXML TRUE )
SET( QT_USE_QTWEBKIT TRUE )
INCLUDE( ${QT_USE_FILE} )
INCLUDE( ${CMAKE_MODULE_PATH}/AddAppIconMacro.cmake )
INCLUDE( AddAppIconMacro )
#SET( CMAKE_BUILD_TYPE "Release" )
SET( CMAKE_VERBOSE_MAKEFILE ON )
@@ -53,11 +57,14 @@ SET( tomahawkSourcesGui ${tomahawkSourcesGui}
sourcetree/sourcesmodel.cpp
sourcetree/sourcesproxymodel.cpp
sourcetree/sourcetreeview.cpp
sourcetree/sourcedelegate.cpp
sourcetree/animationhelper.cpp
sourcetree/items/sourcetreeitem.cpp
sourcetree/items/collectionitem.cpp
sourcetree/items/playlistitems.cpp
sourcetree/items/categoryitems.cpp
sourcetree/items/genericpageitems.cpp
sourcetree/items/temporarypageitem.cpp
transferview.cpp
PipelineStatusView.cpp
@@ -68,6 +75,7 @@ SET( tomahawkSourcesGui ${tomahawkSourcesGui}
configdelegatebase.cpp
sipconfigdelegate.cpp
resolverconfigdelegate.cpp
settingslistdelegate.cpp
resolversmodel.cpp
tomahawkwindow.cpp
)
@@ -96,11 +104,14 @@ SET( tomahawkHeadersGui ${tomahawkHeadersGui}
sourcetree/sourcesmodel.h
sourcetree/sourcesproxymodel.h
sourcetree/sourcetreeview.h
sourcetree/sourcedelegate.h
sourcetree/animationhelper.h
sourcetree/items/sourcetreeitem.h
sourcetree/items/collectionitem.h
sourcetree/items/playlistitems.h
sourcetree/items/categoryitems.h
sourcetree/items/genericpageitems.h
sourcetree/items/temporarypageitem.h
transferview.h
PipelineStatusView.h
@@ -111,14 +122,16 @@ SET( tomahawkHeadersGui ${tomahawkHeadersGui}
configdelegatebase.h
resolverconfigdelegate.h
sipconfigdelegate.h
settingslistdelegate.h
resolversmodel.h
delegateconfigwrapper.h
tomahawkwindow.h
Qocoa/qsearchfield.h
)
SET( tomahawkUI ${tomahawkUI}
tomahawkwindow.ui
settingsdialog.ui
diagnosticsdialog.ui
stackedsettingsdialog.ui
proxydialog.ui
@@ -165,12 +178,13 @@ 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 )
SET( tomahawkSources ${tomahawkSources} mac/tomahawkapp_mac.mm mac/macshortcuthandler.cpp Qocoa/qsearchfield_mac.mm )
IF(HAVE_SPARKLE)
SET( tomahawkHeaders ${tomahawkHeaders} ${SPARKLE}/Headers )
ENDIF(HAVE_SPARKLE)
ELSE( APPLE )
SET( tomahawkSources ${tomahawkSources} Qocoa/qsearchfield.cpp )
ENDIF( APPLE )
IF(GLOOX_FOUND)
@@ -180,6 +194,10 @@ IF(GLOOX_FOUND)
ENDIF(GLOOX_FOUND)
ADD_SUBDIRECTORY( sip )
IF(QCA2_FOUND)
INCLUDE_DIRECTORIES( ${QCA2_INCLUDE_DIR} )
ENDIF(QCA2_FOUND)
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} )
@@ -220,6 +238,10 @@ IF(GLOOX_FOUND)
SET(LINK_LIBRARIES ${LINK_LIBRARIES} ${GLOOX_LIBRARIES} )
ENDIF(GLOOX_FOUND)
IF(QCA2_FOUND)
SET(LINK_LIBRARIES ${LINK_LIBRARIES} ${QCA2_LIBRARIES} )
ENDIF(QCA2_FOUND)
TARGET_LINK_LIBRARIES( tomahawk
${LINK_LIBRARIES}
${TOMAHAWK_LIBRARIES}
@@ -231,10 +253,8 @@ TARGET_LINK_LIBRARIES( tomahawk
${QXTWEB_LIBRARIES}
${QJSON_LIBRARIES}
${TAGLIB_LIBRARIES}
${CLUCENE_LIBRARIES}
)
IF( APPLE )
IF(HAVE_SPARKLE)
MESSAGE("Sparkle Found, installing framekwork in bundle")
@@ -260,4 +280,5 @@ IF( UNIX AND NOT APPLE AND KDE4_INSTALLED ) #install protocol file
ENDIF()
INSTALL( FILES ${CMAKE_BINARY_DIR}/tomahawk.protocol DESTINATION ${PROTOCOL_INSTALL_DIR} )
ENDIF()
#INCLUDE( "CPack.txt" )

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