1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-09-20 19:01:34 +02:00

Compare commits

..

567 Commits
0.8.4 ... qmlng

Author SHA1 Message Date
Michael Zanetti
23b477da19 revert back to static model for genre tag cloud 2013-08-04 22:29:44 +02:00
Michael Zanetti
1131840a23 added a completion list to InputField, use it for all genres input field 2013-08-04 22:27:53 +02:00
Michael Zanetti
439730ee8a changed startByGenre to according to the mockup 2013-08-04 21:38:44 +02:00
Michael Zanetti
745bbb8afb don't show save button while on page 1 2013-08-04 20:44:31 +02:00
Michael Zanetti
6198d55940 tweak input bubble a little 2013-08-04 20:41:48 +02:00
Michael Zanetti
9886a15760 change artist selection to according to design mockup 2013-08-04 20:41:29 +02:00
Michael Zanetti
ec6ec7833f fix inputbubble 2013-08-04 18:32:46 +02:00
Michael Zanetti
0b4c3cde67 Station is now a CoverFlow instead of a CoverFlip 2013-08-04 18:13:52 +02:00
Michael Zanetti
eb84ddc699 Merge branch 'qmlng' of github.com:tomahawk-player/tomahawk into qmlng
Conflicts:
	src/libtomahawk/playlist/PlayableModel.cpp
	src/tomahawk/sourcetree/SourcesModel.cpp
2013-07-19 00:45:22 +02:00
Michael Zanetti
26f581dc97 some more work on saving stations 2013-07-18 15:49:33 +02:00
Michael Zanetti
cee26a77c3 adjust station summaries to look the same everywhere 2013-07-18 15:49:33 +02:00
Michael Zanetti
d65de01847 fix loading state 2013-07-18 15:49:33 +02:00
Michael Zanetti
c161d5dc3d also add a description for byStation 2013-07-18 15:49:33 +02:00
Michael Zanetti
1d9b76efbc station summary does something again, at least for stations by artist 2013-07-18 15:49:33 +02:00
Christian Muehlhaeuser
6bb9ec7de3 * Fixed startFromGenre. 2013-07-18 15:49:33 +02:00
Michael Zanetti
53ba4aae93 generate does the real thing again 2013-07-18 15:49:33 +02:00
Christian Muehlhaeuser
952120a260 * Create EchonestParams out of the variant list. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
490f736a93 * Print out controls when creating a station. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
a4fee407a4 * Create those darned controls manually. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
6378a1658d * Fixed invoke. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
59003b88e9 * Show save button when we have a configured station. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
c946bd9b8d * Fixed displaying of back / save button. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
02f8eac1b3 * Radio mode needs to initialize a temporary station. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
75a1fce2d8 * Create dynamic playlist when needed - for temporary ones. 2013-07-18 15:49:32 +02:00
Christian Muehlhaeuser
a7152f83f4 * Style fix. 2013-07-18 15:49:32 +02:00
Michael Zanetti
6ab35323e8 more cleanup 2013-07-18 15:49:32 +02:00
Michael Zanetti
b402347bee fix playlist generation and clean up dynamicqmlwidget a bit 2013-07-18 15:49:32 +02:00
Michael Zanetti
1252b6618d fix merge 2013-07-18 15:49:32 +02:00
Uwe L. Korn
ff8e905599 Only setup a Connection once 2013-07-18 15:49:32 +02:00
Uwe L. Korn
cf93741079 Keep lazy offers lazy 2013-07-18 15:49:32 +02:00
Uwe L. Korn
45519110b9 Only match duplicates on inbound Connections 2013-07-18 15:49:32 +02:00
Uwe L. Korn
33cca96f00 Connections should be started in the thread they live 2013-07-18 15:49:32 +02:00
Teo Mrnjavac
8e0dcc69ed Update README.md 2013-07-18 15:49:32 +02:00
Uwe L. Korn
7f8bb31e23 Set nodeId on lazy offers 2013-07-18 15:49:31 +02:00
Uwe L. Korn
15704d8fbf Unbind from source if we are not responsible for it 2013-07-18 15:49:31 +02:00
Christian Muehlhaeuser
1554b638f6 * More debug output in DbCmd_SetPlaylistRevision. 2013-07-18 15:49:31 +02:00
Uwe L. Korn
7219f1035a Add Network Activity to ChangeLog 2013-07-18 15:49:31 +02:00
Dominik Schmidt
cb3889f37e Few minor fixes/improvements for Windows installer 2013-07-18 15:49:31 +02:00
Tomahawk CI
6ad4a8ce76 Automatic merge of Transifex translations 2013-07-18 15:49:31 +02:00
Uwe L. Korn
fbc8803c37 Don't try to acquire lock if we do not have a source anymore. 2013-07-18 15:49:31 +02:00
Uwe L. Korn
0be198fc49 Make selection of ControlConnection symmetric 2013-07-18 15:49:31 +02:00
Uwe L. Korn
4998852e5a Revert "Only display filename in JS resolver errors/as scriptname"
This reverts commit a6459f2823.
2013-07-18 15:49:31 +02:00
Uwe L. Korn
179dac3442 Only display filename in JS resolver errors/as scriptname
* The paths are internal ones
* Shortens error messages for JS resolvers so that they will most likely not 
   overflow anymore
2013-07-18 15:49:31 +02:00
Uwe L. Korn
22aa75f4bb Export JobStatusView 2013-07-18 15:49:31 +02:00
Uwe L. Korn
b0e352a5f5 Generate QxtSslServer fancy header 2013-07-18 15:49:31 +02:00
Uwe L. Korn
d41a9d8dce Update Qxt 2013-07-18 15:49:31 +02:00
Uwe L. Korn
f742066a7e Ensure that Servent still runs on all IPs with Qt 5.0 2013-07-18 15:49:31 +02:00
Uwe L. Korn
419a3f1cd2 Prefix HTTP API v1.0 members 2013-07-18 15:49:30 +02:00
Uwe L. Korn
a381c5e3f1 Use strongRef where strongRef requested 2013-07-18 15:49:30 +02:00
Uwe L. Korn
04e5b338c4 Add comment to prevent others from doing the same mistake 2013-07-18 15:49:30 +02:00
Uwe L. Korn
7daebc655a Performance++, Memory-- 2013-07-18 15:49:30 +02:00
Uwe L. Korn
546f54f196 Make WeakPeerHash more generic 2013-07-18 15:49:30 +02:00
Uwe L. Korn
cde07bc2b8 Write --verbose output to Tomahawk.log 2013-07-18 15:49:30 +02:00
Uwe L. Korn
09026a33fe Debug spam++ 2013-07-18 15:49:30 +02:00
Tomahawk CI
b4de7d6e90 Automatic merge of Transifex translations 2013-07-18 15:49:30 +02:00
Christian Muehlhaeuser
be364d582a * Added xhochy to AUTHORS / about-dialog. 2013-07-18 15:49:30 +02:00
Uwe L. Korn
1b1b88551d Improve Includes in ExternalResolvers.h 2013-07-18 15:49:30 +02:00
Uwe L. Korn
8d80b1e113 Improve includes in Resolver.h 2013-07-18 15:49:30 +02:00
Uwe L. Korn
9fa387e102 Dpointer JSResolver 2013-07-18 15:49:30 +02:00
Uwe L. Korn
7b6987418c Move implementations out of the header 2013-07-18 15:49:29 +02:00
Uwe L. Korn
2dac747a90 Remove unneed includes out of JSResolver.h 2013-07-18 15:49:29 +02:00
Uwe L. Korn
402a7ed6d4 Move JSResolverHelper to its own files 2013-07-18 15:49:29 +02:00
Uwe L. Korn
0403301c9a Move ScriptEngine into its own files 2013-07-18 15:49:29 +02:00
Tomahawk CI
10712c7efb Automatic merge of Transifex translations 2013-07-18 15:49:29 +02:00
Uwe L. Korn
1c62ec3358 Delete AudioEngine after MainWindow 2013-07-18 15:49:29 +02:00
Teo Mrnjavac
612d8874df Don't output secrets in log. 2013-07-18 15:49:29 +02:00
Teo Mrnjavac
56dd8e2572 Stay insecure if there's no other way. 2013-07-18 15:49:29 +02:00
Teo Mrnjavac
3adeee4140 Debug spam++ 2013-07-18 15:49:29 +02:00
Christian Muehlhaeuser
d829389e4e * Filter out tracks with bogus mtime when trying to load recent albums. 2013-07-18 15:49:29 +02:00
Christian Muehlhaeuser
1ecfc8aa9e * Load recent albums when SourceList is ready. 2013-07-18 15:49:29 +02:00
Christian Muehlhaeuser
a4505930b5 * Changed tomahawkLoaded handling. 2013-07-18 15:49:29 +02:00
Christian Muehlhaeuser
a6f8dc1830 * Get rid of passing tomahawkLoaded signal through TomahawkWindow and ViewManager. 2013-07-18 15:49:29 +02:00
Uwe L. Korn
ec17293d3d Do not queue ACL result if there are no sipInfos
* Temporary fix until nodeId is moved/refactored into PeerInfo out of SipInfo
2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
00e8d25da6 Revert "Put "out of %1" under the big number in StatsGauge"
This reverts commit 5634f5a4ca.
2013-07-18 15:49:28 +02:00
Lasse Liehu
483fa38f7b Put "out of %1" under the big number in StatsGauge
"[number]\nout of %1" flows better than "out of %1\n[number]".
2013-07-18 15:49:28 +02:00
Tomahawk CI
193d4b6a96 Automatic merge of Transifex translations 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
ef00f9c21a This breaks too many things: Revert "Some dashboard design tweaks"
This reverts commit 22ce38adbb.
2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
42c0199f53 * Fixed incompatible signal/slot types. 2013-07-18 15:49:28 +02:00
Jason Herskowitz
61a99449f3 Some dashboard design tweaks 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
6ed0879c7c * Respect results' online state when displaying. 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
53ad9739ad * Query's resoltSorter needs to take into account the result's online state. 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
8e48956c87 * Result now always returns the actual score regardless of the online state. 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
776b1c9f2e * Pipeline only becomes ready when Database is entirely finished with init. 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
42c03fd9ba * Don't emit Database::ready() just because the FuzzyIndex became ready. 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
7a2d1cadec * Make sure JSResolver always has at least the default resolver icon set. 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
21beba0881 * Style fixes. 2013-07-18 15:49:28 +02:00
Christian Muehlhaeuser
277edfe8ca * Don't reset the resolver's icon if we couldn't retrieve one in ResolverAccount. 2013-07-18 15:49:27 +02:00
Tomahawk CI
e48b4096b9 Automatic merge of Transifex translations 2013-07-18 15:49:27 +02:00
Tomahawk CI
0db80a9a61 Automatic merge of Transifex translations 2013-07-18 15:49:27 +02:00
Uwe L. Korn
e0bff794ab Fix slot/signal namespacing 2013-07-18 15:49:27 +02:00
Jason Herskowitz
47fc81b8c0 Don't forget to replace Fauna font on Album pages too. 2013-07-18 15:49:27 +02:00
Jason Herskowitz
c002eaf11c Try a different label font since Fauna One wasn't so great on Windows 2013-07-18 15:49:27 +02:00
Jeff Mitchell
c21de815a6 Re-mark proxy changes as needing restart 2013-07-18 15:49:27 +02:00
Jeff Mitchell
97da93afd5 Fix compiler warning 2013-07-18 15:49:27 +02:00
Uwe L. Korn
4002716159 Loosen destructor calls and empty source_ptr instead of deleting it. 2013-07-18 15:49:27 +02:00
Tomahawk CI
ab882608d8 Automatic merge of Transifex translations 2013-07-18 15:49:27 +02:00
Christian Muehlhaeuser
aad713d638 * Fixed compiling Hatchet. 2013-07-18 15:49:26 +02:00
Dominik Schmidt
a5f1e63ae3 Allow to set icon and text for externally added generic page items without instantiating them (aka fix lazy loading for vsxu widget) 2013-07-18 15:49:26 +02:00
Dominik Schmidt
be67d85f91 Revert "Add icon() method to ViewPage api and use that and title() for sidebar items"
We can't lazy load the page when we need its members to show the sidebar
entry...

This reverts commit 1821b24391c33b2ea14fc0d094142395588075d9.
2013-07-18 15:49:26 +02:00
Dominik Schmidt
3debc10943 Clean up 2013-07-18 15:49:26 +02:00
Dominik Schmidt
68812eb3a5 Add icon() method to ViewPage api and use that and title() for sidebar items 2013-07-18 15:49:26 +02:00
Uwe L. Korn
257395a1fe Pimple ControlConnection 2013-07-18 15:49:26 +02:00
Dominik Schmidt
a928833373 Use XInitThreads() on X11 to enable loading the visualizer module 2013-07-18 15:49:26 +02:00
Dominik Schmidt
6b69e50731 Explicitly hide inactive view pages 2013-07-18 15:49:26 +02:00
Uwe L. Korn
8817aa65c4 Pimple Msg 2013-07-18 15:49:26 +02:00
Uwe L. Korn
e5b418ac24 More include cleanups 2013-07-18 15:49:26 +02:00
Dominik Schmidt
63a3339ca5 Add generic page item for new view pages 2013-07-18 15:49:26 +02:00
Uwe L. Korn
8128f1ea48 Clean up headers 2013-07-18 15:49:26 +02:00
Uwe L. Korn
e0a6331142 Pimple BufferIoDevice 2013-07-18 15:49:26 +02:00
Uwe L. Korn
68448db757 No need for QObject on Private classes 2013-07-18 15:49:26 +02:00
Dominik Schmidt
eaf1b58df6 Remove stub page from ViewManager implementation 2013-07-18 15:49:25 +02:00
Teo Mrnjavac
187602c424 GenericPageItem insertion fixage. 2013-07-18 15:49:25 +02:00
Dominik Schmidt
426dd354eb Move stub page adding from appendGroups to SourcesModel ctor 2013-07-18 15:49:25 +02:00
Dominik Schmidt
cb5916b42a Use QList < ViewPage* > in ViewManager to store simple view pages 2013-07-18 15:47:05 +02:00
Dominik Schmidt
4b29d34278 Add stub page to pull out again 2013-07-18 15:47:05 +02:00
Uwe L. Korn
67fc355f16 No more warnings in tomahawk code 2013-07-18 15:47:05 +02:00
Uwe L. Korn
ace775d6a6 Fight all compiler warnings in libtomahawk 2013-07-18 15:47:05 +02:00
Uwe L. Korn
4d43577eda Add missing include 2013-07-18 15:47:05 +02:00
Uwe L. Korn
8f7e2f1f8a Move includes from global headers into local .cpp 2013-07-18 15:47:05 +02:00
Uwe L. Korn
96f28f53ce Move implementations out of the header 2013-07-18 15:47:05 +02:00
Uwe L. Korn
c2b54683d3 Remove not needed includes in Query.h 2013-07-18 15:47:04 +02:00
Uwe L. Korn
5afc5b0909 Remove not needed includes 2013-07-18 15:47:04 +02:00
Uwe L. Korn
54e8ee172b Add missing include for OSX 2013-07-18 15:47:04 +02:00
Uwe L. Korn
ceb856acb2 Finish Connection pimpeling 2013-07-18 15:47:04 +02:00
Uwe L. Korn
69c2d603b8 Make access to Connection->nodeid thread-safe 2013-07-18 15:47:04 +02:00
Uwe L. Korn
bd0c3e29eb If a ControlConnection is not anymore responsible for a source, it should not touch it. 2013-07-18 15:47:04 +02:00
Uwe L. Korn
bfd5690af7 Move outbound, ready, onceonly into ConnectionPrivate 2013-07-18 15:47:04 +02:00
Christian Muehlhaeuser
6e91080311 * Fixed compiling. 2013-07-18 15:47:04 +02:00
Tomahawk CI
ed5cb1d93d Automatic merge of Transifex translations 2013-07-18 15:47:04 +02:00
Uwe L. Korn
1a5406bd44 Pimple SipStatusMessage 2013-07-18 15:47:04 +02:00
Uwe L. Korn
5bf09cced0 Rename Tomahawk::ACL -> Tomahawk::ACLStatus 2013-07-18 15:47:03 +02:00
Uwe L. Korn
bf48967305 Less (global) includes in/of SipPlugin.h 2013-07-18 15:47:03 +02:00
Uwe L. Korn
611b108eb9 Move peerport and msg into ConnectionPrivate 2013-07-18 15:47:03 +02:00
Uwe L. Korn
7efa2fd781 Tomahawk::ACL -> Tomahawk::ACL::Type 2013-07-18 15:47:03 +02:00
Uwe L. Korn
70706c9eb1 Move m_name into ConnectionPrivate 2013-07-18 15:47:03 +02:00
Uwe L. Korn
aaf4ced6db Remove not needed ControlConnection include 2013-07-18 15:47:03 +02:00
Uwe L. Korn
34196ec001 Pimple Source, remove some headers from Source.h and Connection.h 2013-07-18 15:47:03 +02:00
Uwe L. Korn
3d33c68778 Move all implementations out of the header 2013-07-18 15:47:03 +02:00
Uwe L. Korn
bf5fcbd0b6 Remove unused include 2013-07-18 15:47:03 +02:00
Uwe L. Korn
2ee369393c Unprefix Qt includes 2013-07-18 15:47:03 +02:00
Jason Herskowitz
8824466840 More padding in breadcrumb. Don't yet know how to make font bigger. 2013-07-18 15:47:03 +02:00
Uwe L. Korn
d62bd306be Remove unused qjson includes and member 2013-07-18 15:47:03 +02:00
Uwe L. Korn
29ba51b32c Move private members of Connection into a Dpointer 2013-07-18 15:47:03 +02:00
Uwe L. Korn
f074d4dea7 Set nodeid directly, not as a property 2013-07-18 15:47:03 +02:00
Christian Muehlhaeuser
53e03f90e7 * Draw a horizontal splitter. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
feaaa6c7cd * Adjust the splitter handle width. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
f79744fb72 * FlexibleView's GridView looks nicer with black background. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
18d38f5a46 * Change AudioEngine's state before emitting the signal. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
df4aa8ce13 * Trim the artist biography before showing it. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
d6fd70f1f1 * Fixed HistoryWidget's header color. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
9d90c07b70 * Dashboard should use the vanilla InfoBar. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
bb69caed62 * Made deprecated InfoBar look the same as the other headers. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
5300ddae2c * New layout for search page. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
4be8717525 * Set captions to non-bold in .ui. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
30447cee2b * Set captions to non-bold in .ui. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
b2db38db09 * Fixed inbox header color. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
74972ca5e1 * Removed .ui font definitions. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
36ae09b698 * New layout for Dashboard. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
06dca3111f * Nitpicky fix. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
10cb39dd2e * Fixed albums area on artist page growing too big. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
5678f61211 * New layout for Album page. 2013-07-18 15:47:02 +02:00
Christian Muehlhaeuser
1d74242670 * Clean up for Artist page. 2013-07-18 15:47:01 +02:00
Christian Muehlhaeuser
ff08efbdf8 * Clean up for Track page. 2013-07-18 15:47:01 +02:00
Christian Muehlhaeuser
d1e97b1dec * Moved Track page's font definitions to .ui file. 2013-07-18 15:47:01 +02:00
Christian Muehlhaeuser
4145bf14f8 * Fixed Artist page's header size and moved font definitions to .ui file. 2013-07-18 15:47:01 +02:00
Jason Herskowitz
1af86b3257 More font size tweaks 2013-07-18 15:47:01 +02:00
Tomahawk CI
8f7671ae65 Automatic merge of Transifex translations 2013-07-18 15:47:01 +02:00
Jason Herskowitz
5b3c297306 Update all the Spotify icons to their new logo, except the one in the resolvers which is apparently the only one that matters. 2013-07-18 15:47:01 +02:00
Jason Herskowitz
c014650628 Fix track number color 2013-07-18 15:47:01 +02:00
Thierry Goeckel
dd28657dbc Remove newline. 2013-07-18 15:47:01 +02:00
Thierry Goeckel
9b53ffc952 Style fix. 2013-07-18 15:47:01 +02:00
Jason Herskowitz
508c7ffc80 Bump up bio font a couple of point sizes 2013-07-18 15:47:01 +02:00
Thierry Goeckel
088d7ed3ae Don't sort alphabetically here. Makes sense as it is in the source code (week->month->year->overall).
Now someone make week the default. :p
2013-07-18 15:47:00 +02:00
Jason Herskowitz
4926fcb239 Pretty up the gauge a bit more 2013-07-18 15:47:00 +02:00
Jason Herskowitz
c66300aa67 More artist & track design plus some updated placeholder icons 2013-07-18 15:47:00 +02:00
Jason Herskowitz
5fa5532fd2 Unbreak OSX 2013-07-18 15:47:00 +02:00
Uwe L. Korn
0be6ec1a40 Remove unneeded include 2013-07-18 15:47:00 +02:00
Uwe L. Korn
776c919445 Correctly handle/display the different states of PeerInfos 2013-07-18 15:47:00 +02:00
Uwe L. Korn
6bf5d70b5c Use deleteLater so that peerinfo_ptr can be used in different threads. 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
e7eea28d84 * Fixed page fonts. 2013-07-18 15:47:00 +02:00
Jason Herskowitz
60ad0a016f More Artist page design. 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
786a5f4cd5 * Fixed ModeHeader's background color. 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
2203c7afcb * Fixed Track page. 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
ac5774a486 * Set the proper background color for the albums grid on the Artist page. 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
3df5ab3a41 * Got rid of cover shadow / gradient. 2013-07-18 15:47:00 +02:00
Uwe L. Korn
ea7a21518d Only invoke Closure if receiver still exists 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
82705f63f7 * Moved highlight color roles into TomahawkStyle. 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
6e84706d3e * Use QPalette::Foreground for drawing AlbumItemDelegate's position figure. 2013-07-18 15:47:00 +02:00
Christian Muehlhaeuser
0e5e4e96e5 * Use new color roles on Artist page. 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
d875b8dccf * StatsGauge retrieves color palette from TomahawkStyle. 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
99eae3c542 * Fixed TomahawkUtils::prepareStyleOption(). 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
2781fafdf4 * Added new color roles to TomahawkStyle. 2013-07-18 15:46:59 +02:00
Uwe L. Korn
1b9b706fce Keep a local strong reference to prevent deleting of the current object 2013-07-18 15:46:59 +02:00
Uwe L. Korn
2066214aef Do not rely on the object to be removed to be deleted after the callback 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
0492bbded4 * A few more tweaks to artist page. 2013-07-18 15:46:59 +02:00
Tomahawk CI
865b7db1b8 Automatic merge of Transifex translations 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
13c87e0acc * Fixed link color in header. 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
42640ef259 * WIP: Artist page. 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
aa5e0fcecb * Got rid of obsolete TomahawkStyle colors. 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
6166eac485 * Cleaned up TomahawkStyle. 2013-07-18 15:46:59 +02:00
Christian Muehlhaeuser
0aade324ad * Added regular version of Titillium as resource. 2013-07-18 15:46:58 +02:00
Jason Herskowitz
d302850d51 Use a font that also has bold. WIP. 2013-07-18 15:46:58 +02:00
Jason Herskowitz
d2f9d2d79c A bunch of styling to the Arist Page. WIP. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
ae8ddb2144 * Use TomahawkStyle::HEADER_TEXT for captions. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
d833f5fef2 * Use Titillium Web for the labels on ArtistInfoWidget. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
8c671568bb * Load fonts on startup. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
7a4e4410a1 * TomahawkStyle::loadFonts() auto-loads all fonts in the data/fonts/ resource. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
df56877403 * Added example ttf font. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
e27396be63 * Further tweaks to artist-page layout. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
082d86a127 * Style fixes. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
1e89558c78 * Make boxes entirely transparent. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
af5fe4b965 * When a track starts playing, check if we need to update the sidebar's speaker-icon. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
bd4e19fa32 * Implemented LovedTracksItem's isBeingPlayed(). 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
d8311c0e41 * Style fixes in GenericPageItems. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
555d3587d7 * Style fixes in SourcesModel. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
0cf881359c * Style fixes in SourceTreeView. 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
63ee2cbd59 * Implemented Flexible(Tree)View's isBeingPlayed(). 2013-07-18 15:46:58 +02:00
Christian Muehlhaeuser
a59971a74a * Emit a signal when the currentTrackPlaylist changes in AudioEngine. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
7723cade58 * Removed obsolete png. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
815ec7cbe2 * Use TomahawkStyle's methods to apply stylesheets. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
022efd5503 * Moved stylesheet methods into TomahawkStyle. 2013-07-18 15:46:57 +02:00
Tomahawk CI
81d2278857 Automatic merge of Transifex translations 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
8dc56abbf6 * Fixed RecentPlaylistsModel not respecting the set limit. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
a95276d960 * Auto-resize PlaylistWidget. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
f4bd8959e1 * Make hover-glow subtler. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
2b6da82805 * Give Dashboard a header. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
9cc6c1fb35 * Tweak page and header colors. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
cc62a458f5 * Draw divider below BasicHeader. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
b2ac6acb6e * Show 'kbps' next to the bitrate. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
a883c7135f * Fixed HistoryWidget's extra header. 2013-07-18 15:46:57 +02:00
Christian Muehlhaeuser
ff007d8595 * Make FlexibleView use new header style - to be consolidated. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
a0b7c6e504 * Init FilterHeader with parent. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
da8fd58aaa * Re-enable TreeView for collections. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
3ef99fbb32 * FlexibleHeader needs to set its own size. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
0f45146ada * Compact BasicHeader. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
bcd33932d0 * Added ModeHeader widget. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
4ea22ba054 * Show a default track cover until we retrieved the proper, new one. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
8ac833bf97 * Double-clicking in ColumnView opens the corresponding page. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
7b62c3ed14 * A few ColumnItemDelegate fixes. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
5c2cebb423 * Don't show empty labels in preview-widget. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
e8a48aafe4 * Show more info in the preview-widget. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
d2f8bc2784 * Removed header from ColumnView. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
447c6c0217 * Reset the model before applying a filter. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
d098c1cba7 * Use FlexibleTreeViews for showing collections. 2013-07-18 15:46:56 +02:00
Christian Muehlhaeuser
53bdd2de6b * Updated CMakeLists.txt. 2013-07-18 15:46:20 +02:00
Christian Muehlhaeuser
d590fa4faa * Added FlexibleTreeView. 2013-07-18 15:46:20 +02:00
Christian Muehlhaeuser
95e6efd26d * Added ColumnViewPreviewWidget. 2013-07-18 15:46:20 +02:00
Christian Muehlhaeuser
7f64f25e59 * Added ColumnView. 2013-07-18 15:46:20 +02:00
Christian Muehlhaeuser
812ca58674 * Added ColumnItemDelegate. 2013-07-18 15:46:20 +02:00
Christian Muehlhaeuser
a2406e8595 * Disconnect from previous query correctly. 2013-07-18 15:46:19 +02:00
Christian Muehlhaeuser
88dfad3298 * Style fix. 2013-07-18 15:46:19 +02:00
Christian Muehlhaeuser
fc4e42befa * Added custom UserRoles to access model's data. 2013-07-18 15:46:19 +02:00
Christian Muehlhaeuser
db56757bc8 * PlayableItem::forceUpdate() forces a repaint by emitting dataChanged(). 2013-07-18 15:41:38 +02:00
Christian Muehlhaeuser
2d6b8de76b * Caution for upcoming changes. 2013-07-18 15:41:38 +02:00
Christian Muehlhaeuser
81a406d1b5 * Style fixes for Servent. 2013-07-18 15:41:38 +02:00
Tomahawk CI
b3b47398bc Automatic merge of Transifex translations 2013-07-18 15:41:38 +02:00
Tomahawk CI
ddb66a5cfe Automatic merge of Transifex translations 2013-07-18 15:41:38 +02:00
Uwe L. Korn
b3dc65997c Do not squash Peers with no nodeid 2013-07-18 15:41:38 +02:00
Uwe L. Korn
d800323afe Do not try to access NULL-pointers instead search the whole hash for holes 2013-07-18 15:41:38 +02:00
Hugo Lindström
980f56dbcf TWK-1389: Utilize private sessions, if private 2013-07-18 15:41:38 +02:00
Hugo Lindström
587568e026 TWK-1377: Space Encoding on Imported M3Us 2013-07-18 15:41:38 +02:00
Hugo Lindström
18d488b0f1 Stylefix 2013-07-18 15:41:38 +02:00
Uwe L. Korn
aafab2e016 Group peers by (Account, nodeid) in the Diagnostics Dialog, add nodeid info 2013-07-18 15:41:38 +02:00
Uwe L. Korn
0a4a281027 Move all sockets to the Servent thread. 2013-07-18 15:41:38 +02:00
Uwe L. Korn
c248ebb9e0 Speed up connecting by sorting the SipInfos 2013-07-18 15:41:38 +02:00
Uwe L. Korn
251ed6e555 Documentation++, make ConnectionManager CTOR private 2013-07-18 15:41:37 +02:00
Uwe L. Korn
2555ab7766 Better debug spam on column restore 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
d14afb5a8f * Tweak timeouts for the lazy-lists drop-down. 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
ca025e41b0 * Style fixes. 2013-07-18 15:41:37 +02:00
Uwe L. Korn
ca307d6922 Do not kill used ControlConnection
* Debug spam ++
2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
0d2dade6da * Don't print out cache-value in log. 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
241a3a075b * Delegates use the base-class impls for painting / handling. 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
1a88203247 * Views handle leaveEvents now and inform the delegate to update itself when required. 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
d6bb90fc25 * Handle source-icon and info-icon painting in the base delegate class. 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
f5dc808d4c * Use TrackView's setPlaylistItemDelegate across Tomahawk. 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
27879a814e * Moved some page-impl out of the headers. 2013-07-18 15:41:37 +02:00
Christian Muehlhaeuser
cc9687c407 * Fixed secondary text's color in PlaylistDelegate & PlaylistLargeItemDelegate. 2013-07-18 15:41:37 +02:00
Tomahawk CI
9f9d01618e Automatic merge of Transifex translations 2013-07-18 15:41:37 +02:00
Uwe L. Korn
ce10b501a8 Copy internal hash instead of trying to make a non-valid assignment 2013-07-18 15:41:37 +02:00
Uwe L. Korn
d52333893f Self cleaning peerInfo cache, fixes TWK-1396 2013-07-18 15:41:37 +02:00
Uwe L. Korn
6216ab1a79 No need for a pointer here 2013-07-18 15:41:37 +02:00
Uwe L. Korn
d3f32f73c9 Proxy the QtConncurrent call to a static function to preserve a strong ref 2013-07-18 15:41:36 +02:00
Uwe L. Korn
c3eca392f2 Less strong refs to ConnectionManagers if they are not used 2013-07-18 15:41:36 +02:00
Uwe L. Korn
0f82e54f2a Reconnect if ACL decision took too long 2013-07-18 15:41:36 +02:00
Christian Muehlhaeuser
482b0288e7 * Fixed coding style in AudioEngine. 2013-07-18 15:41:36 +02:00
Tomahawk CI
7597dd5554 Automatic merge of Transifex translations 2013-07-18 15:41:36 +02:00
Uwe L. Korn
a2b20fa49e Remove unused defines 2013-07-18 15:41:36 +02:00
Uwe L. Korn
1227d40c26 Lazyload Network Activities 2013-07-18 15:41:36 +02:00
Christian Muehlhaeuser
090cc66fc7 * Moved artist / track labels out of the PlayableCover. 2013-07-18 15:41:36 +02:00
Christian Muehlhaeuser
d13f3f3c45 * Don't consider artists with a playcount of 1 as part of the charts. 2013-07-18 15:41:36 +02:00
Christian Muehlhaeuser
f3b660f123 * Don't consider tracks with a playcount of 1 as part of the charts. 2013-07-18 15:41:36 +02:00
Christian Muehlhaeuser
e0ad9d48d8 * Added gauge for track chart position. 2013-07-18 15:41:36 +02:00
Christian Muehlhaeuser
aca0f51342 * Shrink font size for bigger figures. 2013-07-18 15:41:36 +02:00
Christian Muehlhaeuser
252b809fe4 * Expose track stats in Track(-Data). 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
4e83dbac2e * Read chart position when loading TrackStats. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
9d92e2689c * Unspectacular performance improvement. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
edd3759126 * Correctly set initial alternating-row-color setting, so we don't rely on the proxymodel activating it for us on filling. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
51e7fb4c18 * Style the extra header a bit. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
9a9fac59e5 * Get rid of the header gradient. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
408d4486d2 * Slightly different tooltips for the gauges. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
45cc595010 * SourceItem now uses HistoryWidget to display recently played tracks of Sources. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
7cd6af4933 * Forgot to add HistoryWidget to CMakeLists.txt. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
d7629ff626 * HistoryWidget is a FlexibleView with date range input fields as an extra header. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
b4ccf7d6ea * RecentlyPlayedModel can now deal with date ranges. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
c4f48abf77 * DbCmd_PlaybackHistory can now deal with date ranges. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
6b36f3a737 * PlayableModel::ensureResolved() passes queries in one batch to the Pipeline now. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
ff0c3d4bef * QueueView waits for the Pipeline to become ready. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
4939ffb6d3 * FlexibleView now can be initialized with an additional header widget. 2013-07-18 15:41:35 +02:00
Christian Muehlhaeuser
8a4caa4118 * Emit a signal when the Pipeline gets started. 2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
6b7dbedc45 * Extra (optional) CTOR param for RecentlyPlayedModel: maxItems. 2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
371b8cff0e * Style for the vertical scrollbars. 2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
ee67518d47 * WelcomeWidget => Dashboard. 2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
e9c4d8118b * Renamed and pagified Dashboard. 2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
6b6475f767 * Don't enforce resolving of similar tracks. 2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
ad40c8efa9 * Style clean up. 2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
42cf9375a6 * Don't enforce resolving of incoming Artist's top-tracks. 2013-07-18 15:41:34 +02:00
Tomahawk CI
268537bdc6 Automatic merge of Transifex translations 2013-07-18 15:41:34 +02:00
Uwe L. Korn
797fa8d21c Dpointerize PeerInfo 2013-07-18 15:41:34 +02:00
Uwe L. Korn
91df437e62 Dpointerize NetworkActivityWidget 2013-07-18 15:41:34 +02:00
Uwe L. Korn
fe7c1b1d73 Introduce the Dpointer concept to ConnectionManager 2013-07-18 15:41:34 +02:00
Uwe L. Korn
81a9da23da Delete d_ptr in Servent desctructor 2013-07-18 15:41:34 +02:00
Uwe L. Korn
b48b0127f8 Add Boost_INCLUDE_DIR and make less usage of boost in headers
* Make Servent member more private
2013-07-18 15:41:34 +02:00
Christian Muehlhaeuser
da47c00813 * Made StatsGauge animation smooth and use QProgressBar's own inverted state handling. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
7ea790d40b * Fixed a bunch of compiler warnings. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
6af1be8fa7 * Init needs to wait for InfoSystem to be ready. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
5350330141 * InfoSystem now emits ready() when init is done. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
b37e0d801e * Fixed typos. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
84faa1671c * CreateIndex isn't the right place to connect signals. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
530d5402a1 * Fix Logger with Qt5. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
3e06803162 * Fixed creating QPixmaps in the wrong thread. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
3de4042d6e * Fixed Accounts stuff causing QLayout warning. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
004d84f1b0 * Fixed broken png causing libpng warning. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
62db235b3c * Set pen color correctly for Inbox. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
f1483bfe3f * Adapted Track page to new style. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
89202ae445 * Fixed Artist page. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
1e579bc238 * Adapt Album page to new style. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
e11b1515a9 * Offer inverted gauge animations. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
25f2c2db66 * Changed PAGE_BACKGROUND color. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
df7fafced1 * Don't try animating with bogus values. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
e9a33e3ed4 * Start animating the gauge with value 1. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
b5090d2873 * Chart values need to be always initialized. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
86e201673f * Added StatsGauge. 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
0f3cfb210c * Work on artist page. Better layout / design? 2013-07-18 15:41:33 +02:00
Christian Muehlhaeuser
74fdd6500c * Properly set pen before painting figure ovals. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
2e1a1385e1 * Fixed pen settings for drawBackgroundAndNumbers. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
b15622f275 * TrackView should restore externally set alternating-row-color setting. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
02da2cba8d * Mutex protect TrackData. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
00662c2d8d * Load artist-stats. 2013-07-18 15:41:32 +02:00
Tomahawk CI
5fc1d68a3c Automatic merge of Transifex translations 2013-07-18 15:41:32 +02:00
Florian Richter
0a815e06df Fix signal signature 2013-07-18 15:41:32 +02:00
Tomahawk CI
3e678c55ee Automatic merge of Transifex translations 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
250c76b53c * When redirecting a request, make sure HEAD ops don't become a GET. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
b070ed8f82 * Style fixes. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
03a84c574e * Cache avatar instead of trying to get it from the cache over and over. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
58ee8b35f4 * Style fixes and removed spamy logging from TomahawkCache. 2013-07-18 15:41:32 +02:00
Uwe L. Korn
6ef3dc30af Use peerName instead of peerAddress
* If connecting to a non-IP host, peerAddress is an empty string,
  peerName contains the DNS name
2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
1da4cb83ca * The mutex isn't needed. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
27fcb1c43f * Style fixes for NetworkActivityWidget. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
8c0b982852 * Fixed building without breakpad. Thanks to Dinar Valeev. 2013-07-18 15:41:32 +02:00
Christian Muehlhaeuser
9a2594c644 * Style fixes for build system. 2013-07-18 15:41:31 +02:00
Christian Muehlhaeuser
f8b2d792df * Style fixes for build system. 2013-07-18 15:41:31 +02:00
Tomahawk CI
f199f08288 Automatic merge of Transifex translations 2013-07-18 15:41:31 +02:00
Uwe L. Korn
183d7be141 Do not delete connection if PeerInfo disappers during connect 2013-07-18 15:41:31 +02:00
Uwe L. Korn
213edc6d12 Hide InfoBar and report isBeingPlayed status. 2013-07-18 15:41:31 +02:00
Uwe L. Korn
4ffbb06baa NetworkActivity now features Charts 2013-07-18 15:41:31 +02:00
Uwe L. Korn
c808b0989b Add NetworkCharts Database Command 2013-07-18 15:41:31 +02:00
Uwe L. Korn
aa104fce10 Add empty NetworkActivity page 2013-07-18 15:41:31 +02:00
Uwe L. Korn
991bacd667 Add network-activity.svg to resources 2013-07-18 15:40:55 +02:00
Tomahawk CI
b6109b9bf9 Automatic merge of Transifex translations 2013-07-18 15:40:55 +02:00
Uwe L. Korn
ca08729d24 Show DBID/nodeId in DiagnosticsDialog 2013-07-18 15:40:55 +02:00
Uwe L. Korn
4c6ed3d368 Remove hack to avoid resetting firstMessage on parallel connection 2013-07-18 15:40:55 +02:00
Christian Muehlhaeuser
b951f1f4bc * Improvements to item-delegates. 2013-07-18 15:40:55 +02:00
Christian Muehlhaeuser
20df5ded1f * Style fixes for FdoNotifyPlugin. 2013-07-18 15:40:55 +02:00
Tomahawk CI
de5ddc925d Automatic merge of Transifex translations 2013-07-18 15:40:54 +02:00
Florian Richter
cc104598db listen to media key events of gnome settings daemon
* add shortcuthandler, which listens to the media key event
  provided by the gnome settings daemon via dbus
  (https://github.com/GNOME/gnome-settings-daemon/blob/master/plugins/media-keys/README.media-keys-API)
* fixes TWK-983
2013-07-18 15:40:54 +02:00
Christian Muehlhaeuser
e84316c325 * Fixed liben comment. 2013-07-18 15:40:54 +02:00
Teo Mrnjavac
efddc70b7f Bump Echonest version. 2013-07-18 15:40:54 +02:00
Tomahawk CI
f300b4f617 Automatic merge of Transifex translations 2013-07-18 15:40:54 +02:00
Kevin Funk
062addd7e8 Fix some compiler/runtime warnings 2013-07-18 15:40:54 +02:00
Uwe L. Korn
cfb04bb1d7 Delay resuming as we will most likely fail connecting directly 2013-07-18 15:40:54 +02:00
Uwe L. Korn
830d2c9391 Add support for UPower 2013-07-18 15:40:54 +02:00
Florian Richter
d4d45220d1 use autogenerated dbus interface for fdonotify 2013-07-18 15:40:54 +02:00
Jason Herskowitz
c79a671802 Add Network Activity icon for sidebar 2013-07-18 15:40:54 +02:00
Uwe L. Korn
a6113204d2 Fix time in spelling 2013-07-18 15:40:54 +02:00
Uwe L. Korn
701c5ff61c Add SIP improvements to ChangeLog 2013-07-18 15:40:53 +02:00
Florian Richter
a0d988e63a autogenerate dbus adaptors for mpris 2013-07-18 15:40:53 +02:00
Tomahawk CI
ee4186c51d Automatic merge of Transifex translations 2013-07-18 15:40:53 +02:00
Jeff Mitchell
795e525889 Add hatchet plugin to master 2013-07-18 15:40:53 +02:00
Christian Muehlhaeuser
8c10a0c821 * Try simpler OverlayWidget layout. 2013-07-18 15:40:53 +02:00
Christian Muehlhaeuser
9d0c8e1b03 * Fixed AnimatedSpinner flickering when resizing window. 2013-07-18 15:40:53 +02:00
Christian Muehlhaeuser
606a86e016 * Disable / enable alternate row colors when required. 2013-07-18 15:40:53 +02:00
Tomahawk CI
bd33824202 Automatic merge of Transifex translations 2013-07-18 15:40:53 +02:00
Teo Mrnjavac
cae5e75f2a Only show the mark as listened action if unlistened tracks are selected. 2013-07-18 15:40:53 +02:00
Christian Muehlhaeuser
2b1df0e664 * x.y.999 is invalid on OSX. 2013-07-18 15:40:52 +02:00
Teo Mrnjavac
cb4816d662 Replaced GenericSelect with a proper dbcmd.
Consequences:
* we avoid the use of QObject properties, which are not thread safe
* we get social actions right away, without having to wait for
  every track's loadSocialActions to finish
2013-07-18 15:40:52 +02:00
Teo Mrnjavac
1bbfe1599a Remove debug spam. 2013-07-18 15:40:52 +02:00
Tomahawk CI
13f8ad5daa Automatic merge of Transifex translations 2013-07-18 15:40:52 +02:00
Uwe L. Korn
ba23f701f8 Make private things private 2013-07-18 15:40:52 +02:00
Uwe L. Korn
0c1a10ec6a Copy-Constructor is automatically called 2013-07-18 15:40:52 +02:00
Uwe L. Korn
af0504fe41 Bump Version to 0.7.999 2013-07-18 15:40:52 +02:00
Uwe L. Korn
a87b0268d4 Remove usage of QSharedPointer around SipInfo 2013-07-18 15:40:52 +02:00
Uwe L. Korn
72b326a3be We are handling a set, so we need no duplicate detection. 2013-07-18 15:40:52 +02:00
Teo Mrnjavac
1637b325d7 Add "Mark as Listened" to Inbox. 2013-07-18 15:40:52 +02:00
Uwe L. Korn
91feefc433 Fix compilation 2013-07-18 15:40:52 +02:00
Uwe L. Korn
c3a1ee84a1 Even more race precautions
* It did not break yet, but I could not sleep without this commit.
2013-07-18 15:40:52 +02:00
Tomahawk CI
d440061228 Automatic merge of Transifex translations 2013-07-18 15:40:52 +02:00
Teo Mrnjavac
8215e5be00 Send tracks via context menu. 2013-07-18 15:40:51 +02:00
Uwe L. Korn
5e3d14c950 Lock setControlConnection to prevent races 2013-07-18 15:40:51 +02:00
Teo Mrnjavac
e7be3ac8a2 Make tracks sending more discoverable. 2013-07-18 15:40:51 +02:00
Uwe L. Korn
3fd379e81c Detect duplicate ControlConnections 2013-07-18 15:40:51 +02:00
Uwe L. Korn
8b63388ead Remove trailing semicolons 2013-07-18 15:40:51 +02:00
Uwe L. Korn
7b7dffbf0a Credits to me 2013-07-18 15:40:51 +02:00
Uwe L. Korn
e8286b2995 Change ContolContection* to QPointer 2013-07-18 15:40:51 +02:00
Uwe L. Korn
926f42ed1f Set interval to timeout 2013-07-18 15:40:51 +02:00
Uwe L. Korn
b9b24e8161 readyRead is not used as a Slot/Signal 2013-07-18 15:40:51 +02:00
Uwe L. Korn
b362e2a9bd Wait for versionString in Xmpp until telling Servent SipInfos 2013-07-18 15:40:51 +02:00
Uwe L. Korn
008b7e32a6 Weaken references to PeerInfos 2013-07-18 15:40:51 +02:00
Uwe L. Korn
baaddf22a4 Introduce ConnectionManager for outgoing connections 2013-07-18 15:40:51 +02:00
Uwe L. Korn
cad21c1712 Make less usage of QHostAddress when dealing with DNS records. 2013-07-18 15:40:51 +02:00
Uwe L. Korn
b3549ac945 Connection should be able to shutdown even if the socket already disappeared 2013-07-18 15:40:51 +02:00
Uwe L. Korn
9723d7b4ce Do not delete the Connection in Socket cleanup, we take care of this at another stage. 2013-07-18 15:40:51 +02:00
Uwe L. Korn
26f8270372 More logging to find error causes 2013-07-18 15:40:51 +02:00
Uwe L. Korn
652a506922 For old clients, just connect if the magic sort says we should. 2013-07-18 15:40:50 +02:00
Uwe L. Korn
3de5670de7 Sent old tomahawk versions SipInfos like before. 2013-07-18 15:40:50 +02:00
Uwe L. Korn
9d89f8a12e Only destroy existing ControlConnection if it does not run anymore 2013-07-18 15:40:50 +02:00
Uwe L. Korn
e974c08883 Make more use of peerInfoDebug 2013-07-18 15:40:50 +02:00
Uwe L. Korn
bc3c65a027 Split up log messages to know the real cause 2013-07-18 15:40:50 +02:00
Uwe L. Korn
08fb69abb9 Lazily create ControlConnection for offers 2013-07-18 15:40:50 +02:00
Uwe L. Korn
945cf58e78 Add const to arguments in getLocalSipInfos 2013-07-18 15:40:50 +02:00
Uwe L. Korn
c5731c20d5 Refactor the creation of local SipInfos into its own method 2013-07-18 15:40:50 +02:00
Uwe L. Korn
a861943222 Add more verbose logging 2013-07-18 15:40:50 +02:00
Uwe L. Korn
09f47fe11c Remove assert and fix logging 2013-07-18 15:40:50 +02:00
Uwe L. Korn
e2f9dad471 Add more logging to connection handling 2013-07-18 15:40:50 +02:00
Uwe L. Korn
e38be974e4 Add a bit of logging to XmppMessage serialzation 2013-07-18 15:40:50 +02:00
Uwe L. Korn
6c9ec62e7e Handle disconnects during connection attempts (i.e. vanishing connection objects) 2013-07-18 15:40:50 +02:00
Uwe L. Korn
f1ad4922ab Sent non-IP hostname as a last hostname too (these are the user-supplied ones) 2013-07-18 15:40:50 +02:00
Uwe L. Korn
f34dc1b75f Add ASSERTs again 2013-07-18 15:40:50 +02:00
Uwe L. Korn
35da957765 Use nodeId instead of id 2013-07-18 15:40:50 +02:00
Uwe L. Korn
9c1100d180 Some more style changes 2013-07-18 15:40:49 +02:00
Uwe L. Korn
d8bc1cc11d Rename sipInfo to sipInfos at various places 2013-07-18 15:40:49 +02:00
Uwe L. Korn
11f2c24966 Clear up (Control)Connections if connecting failed. 2013-07-18 15:40:49 +02:00
Uwe L. Korn
a0c69ac45a Do nothing in handleSipInfo if we have not received valid SipInfo 2013-07-18 15:40:49 +02:00
Uwe L. Korn
785b616e07 Change comment style to gobal default 2013-07-18 15:40:49 +02:00
Uwe L. Korn
df0fbbc96e Always try next SipInfo 2013-07-18 15:40:49 +02:00
Uwe L. Korn
1d82d0b80b Fix multiple ip connection mechanism 2013-07-18 15:40:49 +02:00
Uwe L. Korn
1c4baee0d4 Correctly ignore IPv4-as-IPv6 localhost 2013-07-18 15:40:49 +02:00
Uwe L. Korn
6172d50710 Do not try link-local addresses. 2013-07-18 15:40:49 +02:00
Uwe L. Korn
85c7b16fa1 Ignore IPv4 localhost even if written as IPv6 address 2013-07-18 15:40:49 +02:00
Uwe L. Korn
d3afba1a90 Add missing writeEndElement 2013-07-18 15:40:49 +02:00
Uwe L. Korn
2c86361190 Rename sipInfoList to sipInfo 2013-07-18 15:40:49 +02:00
Uwe L. Korn
b9e42a03e9 Better way to get the id of a peer 2013-07-18 15:40:49 +02:00
Uwe L. Korn
8b7dba77aa Get back accidently deleted registerOffer 2013-07-18 15:40:49 +02:00
Uwe L. Korn
2a721e89a5 Ignore Zeroconf messages sent by ourselves 2013-07-18 15:40:49 +02:00
Uwe L. Korn
c42054ea5c Create SipInfo with the correct information. 2013-07-18 15:40:49 +02:00
Uwe L. Korn
073f6f5b7a Always return SipInfo, even if not visible 2013-07-18 15:40:49 +02:00
Uwe L. Korn
2438485433 Remove asserts in getters as this makes debugging harder 2013-07-18 15:40:49 +02:00
Uwe L. Korn
812b4f6ee3 Support multiple SipInfos per peer 2013-07-18 15:40:49 +02:00
Uwe L. Korn
0807a3ce4e Change option description to reflect new functionality 2013-07-18 15:40:48 +02:00
Uwe L. Korn
c41c475852 Servent should listen to IPv6 too 2013-07-18 15:40:48 +02:00
Christian Muehlhaeuser
cba83e5225 Revert "Add missing emit ready()"
This reverts commit cc336e9d45.
2013-07-18 15:40:48 +02:00
Christian Muehlhaeuser
1ba923fd21 Revert "* Some fixes to InfoSystem and loading."
This reverts commit 8460d8f522.
2013-07-18 15:40:48 +02:00
Dominik Schmidt
5272cd5f9e Add missing emit ready() 2013-07-18 15:40:48 +02:00
Christian Muehlhaeuser
04a1f4e595 * Some fixes to InfoSystem and loading. 2013-07-18 15:40:48 +02:00
Tomahawk CI
9a6850def5 Automatic merge of Transifex translations 2013-07-18 15:40:48 +02:00
Uwe L. Korn
39da04b843 Display friend's avatars on Dashboard even when they are offline
* Fixes TWK-398
2013-07-18 15:40:48 +02:00
Tomahawk CI
8e4ccbee6d Automatic merge of Transifex translations 2013-07-18 15:40:48 +02:00
Uwe L. Korn
4aed8bf75e Add desktop notifications for received tracks 2013-07-18 15:40:47 +02:00
Dominik Schmidt
3e00b5c0e6 Revert "listen to media key events of gnome settings daemon"
This reverts commit 966ab37b94.
2013-07-18 15:40:47 +02:00
Uwe L. Korn
f64436f9bb Add the possibility for JSResolvers to specify that a given URL is checked/valid. 2013-07-18 15:40:47 +02:00
Florian Richter
da2308db33 listen to media key events of gnome settings daemon
* add shortcuthandler, which listens to the media key event
  provided by the gnome settings daemon via dbus
  (https://github.com/GNOME/gnome-settings-daemon/blob/master/plugins/media-keys/README.media-keys-API)
2013-07-18 15:40:47 +02:00
Dominik Schmidt
45b6340952 Forgotten files are forgotten 2013-07-18 15:40:47 +02:00
Dominik Schmidt
ec4ac5210b Pimple AudioEngine 2013-07-18 15:40:47 +02:00
Teo Mrnjavac
aa5e9ea4f2 Useless entry is useless. 2013-07-18 15:40:47 +02:00
Tomahawk CI
4c85b1d92d Automatic merge of Transifex translations 2013-07-18 15:40:47 +02:00
Teo Mrnjavac
8798f2103e Avoid crash when propagating dbcmd_ShareTrack. 2013-07-18 15:40:47 +02:00
Jeff Mitchell
4497849d07 Fix spelling 2013-07-18 15:40:47 +02:00
Jeff Mitchell
9d42209e96 Use removeOne, not removeAll, as there won't be more than one 2013-07-18 15:40:47 +02:00
Teo Mrnjavac
2185b3ae5a Fix loading of playlist updaters. 2013-07-18 15:40:46 +02:00
Uwe L. Korn
2dee4ccca3 Use QKeySequence::Find to focus the search widget 2013-07-18 15:40:46 +02:00
Dominik Schmidt
25be3d4ad7 Move src/breakdpad/CrashReporter to src/crashreporter 2013-07-18 15:40:46 +02:00
Dominik Schmidt
cb10c59215 Build all subdirs of src/ automatically 2013-07-18 15:40:46 +02:00
Dominik Schmidt
af2336b32f Adjust cmake to build again and fix include errors
These are partly hacks - I split the commit for referencing the hacks
afterwards
2013-07-18 15:40:46 +02:00
Dominik Schmidt
e4ab92b81f Move application target from src/ to src/tomahawk/ 2013-07-18 15:40:46 +02:00
Tomahawk CI
6da9b2937c Automatic merge of Transifex translations 2013-07-18 15:40:46 +02:00
Teo Mrnjavac
30a4019c65 Try to fix startup issue. 2013-07-18 15:40:46 +02:00
Teo Mrnjavac
b006c56876 Make AccountModel loading asynchronous.
AccountManager starts up in 3 steps, first waiting for credentials and
then for Servent to be ready. During this time an AccountModel could be
instantiated in the GUI thread, which needs AccountManager, and if the
latter is not ready at that time, the former cannot be populated with
sane data.
This commit splits the AccountModel ctor so that it waits for
AccountManager to be ready before hooking up to its signals and
performing the initial model reset.
2013-07-18 15:40:46 +02:00
Teo Mrnjavac
3f7c08fdb8 Debug spam++ 2013-07-18 15:40:46 +02:00
Teo Mrnjavac
2d8ca57fee Use outbox icon when sending tracks. 2013-07-18 15:40:45 +02:00
Teo Mrnjavac
7c417f1076 Notify sender of track that an inbox entry has been sent. 2013-07-18 15:40:25 +02:00
Jason Herskowitz
a88816168b Add outbox SVG 2013-07-18 15:40:25 +02:00
Dominik Schmidt
b12aba360c Link privately against qtkeychain 2013-07-18 15:40:25 +02:00
Teo Mrnjavac
c35b63da71 Rename QtScriptResolver to JSResolver because JS != QtScript. 2013-07-18 15:40:25 +02:00
Teo Mrnjavac
24ad7ac701 Enable AccountModel debug spam. 2013-07-18 15:40:25 +02:00
Teo Mrnjavac
641d28c932 Fix issue with not all accountIds being carried over to loading phase. 2013-07-18 15:40:25 +02:00
Teo Mrnjavac
8b972ca62e *** Restore v14 config file before running to avoid losing accounts ***
Change QtKeychain's user-visible service name to "Tomahawk".
2013-07-18 15:40:25 +02:00
Tomahawk CI
748c3106ea Automatic merge of Transifex translations 2013-07-18 15:40:25 +02:00
Dominik Schmidt
29c8b0bea9 Add libqtkeychain.dll to windows installer 2013-07-18 15:40:24 +02:00
Dominik Schmidt
8e16445b49 Fix config file for build tree usage 2013-07-18 15:40:24 +02:00
Teo Mrnjavac
a129a54d1b Enable config upgrade path. 2013-07-18 15:40:24 +02:00
Teo Mrnjavac
e790fab9ae Also write credentials to QtKeychain through CredentialsManager. 2013-07-18 15:40:24 +02:00
Teo Mrnjavac
812f8cb250 Load Account credentials from CredentialsManager. 2013-07-18 15:40:24 +02:00
Teo Mrnjavac
481b16be89 Wait for both Servent and AccountManager to be ready for initSIP. 2013-07-18 15:40:24 +02:00
Teo Mrnjavac
c723160883 Added CredentialsManager as a QtKeychain credentials cache. 2013-07-18 15:40:24 +02:00
Teo Mrnjavac
17f0606139 Upgrade config. 2013-07-18 15:40:24 +02:00
Teo Mrnjavac
1bd7c18715 Build with QtKeychain. 2013-07-18 15:40:24 +02:00
Dominik Schmidt
4beee033ac hack until Qt5: Make external modules/projects automatically act as gui modules/projects 2013-07-18 15:40:24 +02:00
Dominik Schmidt
3ded897d55 Remove TomahawkVersion.h and QtCrypto includes from public QtScriptResolver header 2013-07-18 15:39:40 +02:00
Tomahawk CI
bf49d2bec5 Automatic merge of Transifex translations 2013-07-18 15:39:40 +02:00
Christian Muehlhaeuser
7c963e4c37 * Try to work-around translated error messages. Loathing. 2013-07-18 15:39:39 +02:00
Christian Muehlhaeuser
e35b2bcf43 * Show QSqlError's number() when a query fails. 2013-07-18 15:39:39 +02:00
Christian Muehlhaeuser
7ca0786f02 * Need to actually load controls. 2013-07-18 15:39:39 +02:00
Christian Muehlhaeuser
045e4df526 * DbCmd_SetDynamicPlaylistRevision should check if its parent's exec() succeeded. 2013-07-18 15:39:39 +02:00
Christian Muehlhaeuser
02dee0ec06 * Don't retry on empty SQL error. 2013-07-18 15:39:39 +02:00
Tomahawk CI
8c5ec2bc23 Automatic merge of Transifex translations 2013-07-18 15:39:39 +02:00
Hugo Lindström
c3995a0cc8 Sort by rank if possible 2013-07-18 15:39:39 +02:00
Hugo Lindström
c2f3cff83a Bump charts and newreleases version 2013-07-18 15:39:39 +02:00
Michael Zanetti
e99439ecca some more work on start by year 2013-07-18 15:39:39 +02:00
Michael Zanetti
97c8b93d3c add animation to FlexibleHeader 2013-07-18 15:39:39 +02:00
Christian Muehlhaeuser
050503e8b5 * Behave, Qt4. 2013-07-18 15:39:39 +02:00
Michael Zanetti
c53800f0d3 create station wizard: workaround slow fist scrolling of the ListView 2013-07-18 15:39:38 +02:00
Michael Zanetti
fcc6f5c966 some more work on stations merged 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
2e3785f92b * Disable 'Create new station' item. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
2156466762 * Added itemFromIndex to PlayableModel. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
266de41624 * Fixed PlayableItem & added properties. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
bbeeac9935 * Bring back Radio sidebar item. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
99ef263ba2 * Use DynamicQmlWidget for stations. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
f3a50bedbd * Stations shouldn't depend on widgets / controls. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
2841593a85 * Added model specific roles and updated data methods. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
c47d52b144 * Added coverID() related methods to Artist, Album, Track. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
d03cb674c9 * Imported QML specific widgets / views / providers. 2013-07-18 15:39:38 +02:00
Christian Muehlhaeuser
17eeae9a8f * Imported QML resources. 2013-07-18 15:39:38 +02:00
Michael Zanetti
64fd91c0ca some more work on saving stations 2013-07-01 21:03:33 +02:00
Michael Zanetti
145cb67390 adjust station summaries to look the same everywhere 2013-06-29 22:24:50 +02:00
Michael Zanetti
2045dcfaf7 fix loading state 2013-06-29 22:00:10 +02:00
Michael Zanetti
d09fe0a5d6 also add a description for byStation 2013-06-29 22:00:01 +02:00
Michael Zanetti
fd2d0a53ed station summary does something again, at least for stations by artist 2013-06-29 21:42:41 +02:00
Christian Muehlhaeuser
23f47f825a * Fixed startFromGenre. 2013-06-29 21:51:10 +02:00
Michael Zanetti
b211263ced generate does the real thing again 2013-06-29 21:07:35 +02:00
Christian Muehlhaeuser
ecab5b41b0 * Create EchonestParams out of the variant list. 2013-06-29 21:15:51 +02:00
Christian Muehlhaeuser
914f8ccdbb * Print out controls when creating a station. 2013-06-29 19:47:12 +02:00
Christian Muehlhaeuser
daff8101a0 * Create those darned controls manually. 2013-06-29 19:46:55 +02:00
Christian Muehlhaeuser
3a822f22e9 * Fixed invoke. 2013-06-29 19:46:31 +02:00
Christian Muehlhaeuser
d025e8f512 * Show save button when we have a configured station. 2013-06-29 19:46:16 +02:00
Christian Muehlhaeuser
6b6fd9a6e2 * Fixed displaying of back / save button. 2013-06-29 19:05:08 +02:00
Christian Muehlhaeuser
b2a7b23590 * Radio mode needs to initialize a temporary station. 2013-06-29 19:05:08 +02:00
Christian Muehlhaeuser
656f621868 * Create dynamic playlist when needed - for temporary ones. 2013-06-29 19:05:08 +02:00
Christian Muehlhaeuser
bafcb1c07e * Style fix. 2013-06-29 19:05:08 +02:00
Michael Zanetti
ad88242d3a more cleanup 2013-06-29 18:55:29 +02:00
Michael Zanetti
fd0ee87208 fix playlist generation and clean up dynamicqmlwidget a bit 2013-06-29 18:48:18 +02:00
Michael Zanetti
65eec14a48 fix merge 2013-06-29 17:06:54 +02:00
Christian Muehlhaeuser
2dd0efc310 * Merged master into qmlng. 2013-06-29 17:09:19 +02:00
Christian Muehlhaeuser
7b6c183bf7 * Need to actually load controls. 2013-05-20 20:05:56 +02:00
Michael Zanetti
541ad42b86 some more work on start by year 2013-05-19 04:40:17 +02:00
Michael Zanetti
3f25010cd9 add animation to FlexibleHeader 2013-05-19 04:40:16 +02:00
Christian Muehlhaeuser
e7259f619e * Behave, Qt4. 2013-05-19 02:38:44 +02:00
Michael Zanetti
abd2957e0e create station wizard: workaround slow fist scrolling of the ListView 2013-05-19 02:36:11 +02:00
Michael Zanetti
e468ad2687 some more work on stations merged 2013-05-19 00:40:12 +02:00
Christian Muehlhaeuser
7ad06f5ee2 * Disable 'Create new station' item. 2013-05-19 00:32:31 +02:00
Christian Muehlhaeuser
6cd680c388 * Added itemFromIndex to PlayableModel. 2013-05-19 00:31:40 +02:00
Christian Muehlhaeuser
3490975de5 * Fixed PlayableItem & added properties. 2013-05-19 00:31:15 +02:00
Christian Muehlhaeuser
aaebfe39c5 * Bring back Radio sidebar item. 2013-05-18 23:55:30 +02:00
Christian Muehlhaeuser
a52998d766 * Use DynamicQmlWidget for stations. 2013-05-18 22:56:51 +02:00
Christian Muehlhaeuser
74ec938037 * Stations shouldn't depend on widgets / controls. 2013-05-18 22:56:28 +02:00
Christian Muehlhaeuser
7a1ef2eba7 * Added model specific roles and updated data methods. 2013-05-18 22:55:09 +02:00
Christian Muehlhaeuser
f42a5f461c * Added coverID() related methods to Artist, Album, Track. 2013-05-18 22:54:42 +02:00
Christian Muehlhaeuser
2704f1261d * Imported QML specific widgets / views / providers. 2013-05-18 22:53:56 +02:00
Christian Muehlhaeuser
91b562a98e * Imported QML resources. 2013-05-18 22:53:18 +02:00
2533 changed files with 543556 additions and 176230 deletions

2
.gitignore vendored
View File

@@ -12,6 +12,7 @@ Makefile*
moc_*
*~
/tomahawk
thirdparty/qtweetlib/WARNING-twitter-api-keys
.kdev4
*.kdev4
*.kate-swp
@@ -21,4 +22,3 @@ gcc/
tags
.DS_Store
*.autosave
Doxyfile

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "thirdparty/libcrashreporter-qt"]
path = thirdparty/libcrashreporter-qt
url = https://github.com/dschmidt/libcrashreporter-qt

View File

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

View File

@@ -14,7 +14,6 @@ Contributors include:
* Michael Zanetti <dreadhead@follefuder.org>
* Christopher Reichert <christopher@tomahawk-player.org>
* Uwe L. Korn <uwelk@xhochy.com>
* Patrick von Reth <vonreth@kde.org>
Thanks to:

View File

@@ -3,16 +3,6 @@ CMAKE_MINIMUM_REQUIRED( VERSION 2.8.6 )
SET( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules" )
CMAKE_POLICY(SET CMP0017 NEW)
IF ( CMAKE_VERSION VERSION_EQUAL 2.8.12 OR CMAKE_VERSION VERSION_GREATER 2.8.12 )
CMAKE_POLICY(SET CMP0022 NEW)
# TODO:
# Update to NEW and fix things up when we can depend on 2.8.12
CMAKE_POLICY(SET CMP0023 OLD)
ENDIF()
INCLUDE(CMakeDependentOption)
###
### Tomahawk application info
###
@@ -20,11 +10,6 @@ SET( TOMAHAWK_ORGANIZATION_NAME "Tomahawk" )
SET( TOMAHAWK_ORGANIZATION_DOMAIN "tomahawk-player.org" )
SET( TOMAHAWK_APPLICATION_NAME "Tomahawk" )
SET( TOMAHAWK_DESCRIPTION_SUMMARY "The social media player" )
IF(APPLE)
SET( TOMAHAWK_TARGET_NAME "Tomahawk" )
ELSE()
SET( TOMAHAWK_TARGET_NAME "tomahawk" )
ENDIF()
IF( WIN32 )
SET( TOMAHAWK_SYSTEM "Windows" )
@@ -37,87 +22,72 @@ ELSE()
ENDIF()
SET( TOMAHAWK_VERSION_MAJOR 0 )
SET( TOMAHAWK_VERSION_MINOR 8 )
SET( TOMAHAWK_VERSION_PATCH 4 )
#SET( TOMAHAWK_VERSION_RC 1 )
SET( TOMAHAWK_VERSION_MINOR 7 )
SET( TOMAHAWK_VERSION_PATCH 100 )
#SET( TOMAHAWK_VERSION_RC 0 )
SET( TOMAHAWK_TRANSLATION_LANGUAGES ar bg bn_IN ca cs da de en el es fi fr hi_IN hu gl id it ja lt nl pl pt_BR ro ru sq sv th tr uk vi zh_CN zh_TW )
# add_definitions is only in the scope of this directory and all directories
# below it. Tomahawk Libraries and plugins that are built with Tomahawk are
# not included in out-of-source build so we need to re-add_definitions there.
macro(tomahawk_add_definitions DEFINITION)
add_definitions( ${DEFINITION} )
list(APPEND TOMAHAWK_DEFINITIONS ${DEFINITION})
endmacro()
SET( TOMAHAWK_TRANSLATION_LANGUAGES ar bg bn_IN ca cs de en el es fi fr hi_IN hu gl it ja lt pl pt_BR ru sv tr zh_CN zh_TW )
# enforce proper symbol exporting on all platforms
tomahawk_add_definitions( "-fvisibility=hidden" )
add_definitions( "-fvisibility=hidden" )
# enforce using constBegin, constEnd for const-iterators
tomahawk_add_definitions( "-DQT_STRICT_ITERATORS" )
add_definitions( "-DQT_STRICT_ITERATORS" )
# build options
option(BUILD_RELEASE "Generate TOMAHAWK_VERSION without GIT info" OFF)
if(BUILD_RELEASE)
set(BUILD_NO_RELEASE OFF)
else()
set(BUILD_NO_RELEASE ON)
endif()
option(BUILD_GUI "Build Tomahawk with GUI" ON)
option(BUILD_TESTS "Build Tomahawk with unit tests" ${BUILD_NO_RELEASE})
option(BUILD_TOOLS "Build Tomahawk helper tools" ${BUILD_NO_RELEASE})
option(BUILD_HATCHET "Build the Hatchet plugin" ON)
option(BUILD_WITH_QT4 "Build Tomahawk with Qt4 no matter if Qt5 was found" ON)
option(BUILD_RELEASE "Generate TOMAHAWK_VERSION without GIT info" OFF)
option(BUILD_TESTS "Build Tomahawk with unit tests" ON)
option(BUILD_HATCHET "Build the Hatchet plugin" OFF)
option(WITH_BREAKPAD "Build with breakpad integration" ON)
option(WITH_CRASHREPORTER "Build with CrashReporter" ON)
option(WITH_BINARY_ATTICA "Enable support for downloading binary resolvers automatically" ON)
option(LEGACY_KDE_INTEGRATION "Install tomahawk.protocol file, deprecated since 4.6.0" OFF)
option(WITH_KDE4 "Build with support for KDE specific stuff" ON)
option(WITH_UPOWER "Build with support for UPower events" OFF)
option(WITH_GNOMESHORTCUTHANDLER "Build with shortcut handler for GNOME" OFF)
# build options for development purposes
option(SANITIZE_ADDRESS "Enable Address Sanitizer for memory error detection" OFF)
option(TOMAHAWK_FINEGRAINED_MESSAGES "Enable even more verbose logging (will hurt performance significantly" OFF)
CMAKE_DEPENDENT_OPTION(WITH_UPOWER "Build with support for UPower events" ON
"UNIX;NOT APPLE" OFF)
CMAKE_DEPENDENT_OPTION(WITH_GNOMESHORTCUTHANDLER "Build with shortcut handler for GNOME" ON
"UNIX;NOT APPLE" OFF)
IF( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libcrashreporter-qt/CMakeLists.txt")
message(STATUS "Build of crashreporter disabled.")
IF( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" )
message(STATUS "Build of breakpad library disabled on this platform.")
SET(WITH_BREAKPAD OFF)
SET(WITH_CRASHREPORTER OFF)
ENDIF()
# add definitions based on build options
IF( WITH_BREAKPAD )
message(STATUS "Build with support for breakpad.")
IF( CMAKE_COMPILER_IS_GNUCXX )
ADD_DEFINITIONS( -DSTDC_HEADERS -std=gnu++98 )
# SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTDC_HEADERS -std=gnu++98" )
ENDIF()
ENDIF()
# generate version string
# base string used in release and unstable builds
SET( TOMAHAWK_VERSION_TMP "${TOMAHAWK_VERSION_MAJOR}.${TOMAHAWK_VERSION_MINOR}.${TOMAHAWK_VERSION_PATCH}")
SET( TOMAHAWK_VERSION_SHORT "${TOMAHAWK_VERSION_TMP}" )
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION_MAJOR}.${TOMAHAWK_VERSION_MINOR}.${TOMAHAWK_VERSION_PATCH} )
SET( TOMAHAWK_VERSION_SHORT "${TOMAHAWK_VERSION}" )
IF( TOMAHAWK_VERSION_RC )
SET( TOMAHAWK_VERSION_TMP "${TOMAHAWK_VERSION_TMP}rc${TOMAHAWK_VERSION_RC}")
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}rc${TOMAHAWK_VERSION_RC} )
ENDIF()
# additional info for non-release builds
IF( NOT BUILD_RELEASE AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git/" )
INCLUDE( CMakeDateStamp )
SET( TOMAHAWK_VERSION_DATE "${CMAKE_DATESTAMP_YEAR}${CMAKE_DATESTAMP_MONTH}${CMAKE_DATESTAMP_DAY}" )
IF( TOMAHAWK_VERSION_DATE GREATER 0 )
SET( TOMAHAWK_VERSION_TMP ${TOMAHAWK_VERSION_TMP}.${TOMAHAWK_VERSION_DATE} )
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}.${TOMAHAWK_VERSION_DATE} )
ENDIF()
INCLUDE( CMakeVersionSource )
IF( CMAKE_VERSION_SOURCE )
SET( TOMAHAWK_VERSION_TMP ${TOMAHAWK_VERSION_TMP}-${CMAKE_VERSION_SOURCE} )
SET( TOMAHAWK_VERSION ${TOMAHAWK_VERSION}-${CMAKE_VERSION_SOURCE} )
ENDIF()
ENDIF()
# write Tomahawk version to cache
SET(TOMAHAWK_VERSION "${TOMAHAWK_VERSION_TMP}" CACHE STRING "Tomahawk Version")
# set paths
SET( THIRDPARTY_DIR "${CMAKE_SOURCE_DIR}/thirdparty" )
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}" )
@@ -132,29 +102,21 @@ INCLUDE( TomahawkCPack.cmake )
INCLUDE( MacroOptionalFindPackage )
INCLUDE( MacroLogFeature )
message( STATUS "Building Tomahawk ${TOMAHAWK_VERSION} ***" )
# headless mode
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 ***" )
endif()
if( NOT BUILD_WITH_QT4 )
find_package(Qt5Core QUIET)
if( Qt5Core_DIR )
# CMAKE 2.8.13+/3.0.0+ requires these for IMPORTed targets
find_package(Qt5Concurrent REQUIRED)
find_package(Qt5Svg REQUIRED)
find_package(Qt5UiTools REQUIRED)
find_package(Qt5WebKitWidgets REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Xml REQUIRED)
find_package(Qt5Widgets QUIET)
message(STATUS "Found Qt5! Be aware that Qt5-support is still experimental and not officially supported!")
if( UNIX AND NOT APPLE )
# We need this to find the paths to qdbusxml2cpp and co
find_package(Qt5DBus REQUIRED)
endif()
if(WIN32)
find_package(Qt5WinExtras REQUIRED)
endif()
macro(qt_wrap_ui)
qt5_wrap_ui(${ARGN})
endmacro()
@@ -168,20 +130,13 @@ if( NOT BUILD_WITH_QT4 )
qt5_add_translation(${ARGN})
endmacro()
macro(qt_add_dbus_interface)
qt5_add_dbus_interface(${ARGN})
endmacro()
macro(qt_add_dbus_adaptor)
qt5_add_dbus_adaptor(${ARGN})
endmacro()
macro(setup_qt)
endmacro()
set(QT_RCC_EXECUTABLE "${Qt5Core_RCC_EXECUTABLE}")
#FIXME: CrashReporter depends on deprecated QHttp
set(WITH_KDE4 OFF)
set(WITH_CRASHREPORTER OFF)
set(WITH_BREAKPAD OFF)
endif()
endif()
if( NOT Qt5Core_DIR )
@@ -196,7 +151,7 @@ if( NOT Qt5Core_DIR )
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-project.org" TRUE "" "If you see this, although libqt4-devel is installed, check whether the \n qtwebkit-devel package and whatever contains QtUiTools is installed too")
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 the \n qtwebkit-devel package and whatever contains QtUiTools is installed too")
macro(qt5_use_modules)
endmacro()
@@ -213,14 +168,6 @@ if( NOT Qt5Core_DIR )
qt4_add_translation(${ARGN})
endmacro()
macro(qt_add_dbus_interface)
qt4_add_dbus_interface(${ARGN})
endmacro()
macro(qt_add_dbus_adaptor)
qt4_add_dbus_adaptor(${ARGN})
endmacro()
macro(setup_qt)
if( NOT BUILD_GUI )
set(QT_DONT_USE_QTGUI TRUE)
@@ -232,79 +179,50 @@ if( NOT Qt5Core_DIR )
set(QT_USE_QTNETWORK TRUE)
set(QT_USE_QTXML TRUE)
set(QT_USE_QTWEBKIT TRUE)
set(QT_USE_QTDECLARATIVE TRUE)
include( ${QT_USE_FILE} )
endmacro()
# Qt5 C++11 Macros not defined within Qt4
# TODO: Add C++11 support
tomahawk_add_definitions( "-DQ_DECL_FINAL=" )
tomahawk_add_definitions( "-DQ_DECL_OVERRIDE=" )
endif()
if( Qt5Core_DIR )
set( TOMAHAWK_QT5 TRUE )
else( Qt5Core_DIR )
set( TOMAHAWK_QT5 FALSE )
endif( Qt5Core_DIR )
if( BUILD_GUI AND UNIX AND NOT APPLE )
macro_optional_find_package( X11 )
macro_log_feature(X11_FOUND "X11" "The Xorg libraries" "http://www.x.org/wiki/" TRUE "" "Xorg libraries are used by libqnetwm to bring windows to front reliably")
find_package( X11 )
endif()
# Check if we can use <functional> or need <tr1/functional>
include( CheckStdFunctional )
check_std_functional( CXX_STD_FUNCTIONAL )
include( CheckStdTr1Functional )
check_std_tr1_functional( CXX_STD_TR1_FUNCTIONAL )
if ( NOT CXX_STD_FUNCTIONAL AND NOT CXX_STD_TR1_FUNCTIONAL )
message( FATAL_ERROR
"Used compiler neither provides std::function nor std::tr1::function")
IF( UNIX AND NOT APPLE AND QT_QTDBUS_FOUND )
SET( WITH_UPOWER ON )
SET( WITH_GNOMESHORTCUTHANDLER ON )
ENDIF( UNIX AND NOT APPLE AND QT_QTDBUS_FOUND )
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(Echonest 2.2.0)
macro_log_feature(ECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 2.2.0 is needed for dynamic playlists and the infosystem")
macro_optional_find_package(Echonest 2.1.0)
macro_log_feature(ECHONEST_FOUND "Echonest" "Qt library for communicating with The Echo Nest" "http://projects.kde.org/libechonest" TRUE "" "libechonest 2.1.0 is needed for dynamic playlists and the infosystem")
find_package(Boost REQUIRED COMPONENTS filesystem system)
macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explanation
macro_optional_find_package(CLucene 0.9.23)
macro_log_feature(CLucene_FOUND "CLucene" "The open-source, C++ search engine" "http://clucene.sf.net" TRUE "" "CLucene is used for indexing the collection")
macro_optional_find_package(Lucene++ 3.0.0)
macro_log_feature(LUCENEPP_FOUND "Lucene++" "The open-source, C++ search engine" "https://github.com/luceneplusplus/LucenePlusPlus/" TRUE "" "Lucene++ is used for indexing the collection")
macro_optional_find_package(QJSON)
macro_log_feature(QJSON_FOUND "QJson" "Qt library that maps JSON data to QVariant objects" "http://qjson.sf.net" TRUE "" "libqjson is used for encoding communication between Tomahawk instances")
if( NOT TOMAHAWK_QT5 )
macro_optional_find_package(QJSON 0.8.1)
macro_log_feature(QJSON_FOUND "QJson" "Qt library that maps JSON data to QVariant objects" "http://qjson.sf.net" TRUE "" "libqjson is used for encoding communication between Tomahawk instances")
ENDIF()
macro_optional_find_package(Taglib 1.8.0)
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(Sparsehash)
macro_log_feature(SPARSEHASH_FOUND "Sparsehash"
"An extremely memory-efficient hash_map implementation."
"https://code.google.com/p/sparsehash/" TRUE ""
"Sparsehash is needed for reading metadata of mediastreams and fast
forward/backward seeking in HTTP streams")
macro_optional_find_package(GnuTLS)
macro_log_feature(GNUTLS_FOUND "GnuTLS"
"GnuTLS is a secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them."
"http://gnutls.org/" TRUE ""
"GnuTLS is needed for serving the Playdar/HTTP API via TLS")
find_package(Boost REQUIRED)
macro_log_feature(Boost_FOUND "Boost" "Provides free peer-reviewed portable C++ source libraries" "http://www.boost.org" TRUE "" "") #FIXME: give useful explanation
macro_optional_find_package(QCA2)
macro_log_feature(QCA2_FOUND "QCA2" "Provides encryption and signing functions necessary for some resolvers and accounts" "http://delta.affinix.com/qca/" TRUE "" "")
if( TOMAHAWK_QT5 )
macro_optional_find_package(KF5Attica 1.0.0)
set(LIBATTICA_FOUND ${KF5Attica_FOUND})
else()
macro_optional_find_package(LibAttica 0.4.0)
endif()
macro_log_feature(LIBATTICA_FOUND "libattica" "Provides support for installation of resolvers from the Tomahawk website" "http://download.kde.org/stable/attica/" TRUE "" "")
macro_optional_find_package(LibAttica 0.4.0)
macro_log_feature(LIBATTICA_FOUND "libattica" "Provides support for installation of resolvers from the Tomahawk website" "https://projects.kde.org/projects/kdesupport/attica" TRUE "" "")
macro_optional_find_package(QuaZip)
macro_log_feature(QuaZip_FOUND "QuaZip" "Provides support for extracting downloaded resolvers automatically." "http://quazip.sourceforge.net/" TRUE "" "")
@@ -315,26 +233,14 @@ if( PC_JREEN_VERSION STREQUAL "1.1.0" )
message(FATAL_ERROR "Jreen 1.1.0 has a very annoying bug that breaks accepting auth requests in Tomahawk. Please upgrade to 1.1.1 or downgrade to 1.0.5.")
endif()
macro_optional_find_package(QTweetLib)
macro_log_feature(QTWEETLIB_FOUND "QTweetLib" "Qt Twitter Library" "https://github.com/minimoog/QTweetLib" FALSE "" "QTweetLib is needed for the Twitter SIP plugin.\n")
macro_optional_find_package(LibLastFm 1.0.0)
macro_log_feature(LIBLASTFM_FOUND "liblastfm" "Qt library for the Last.fm webservices" "https://github.com/lastfm/liblastfm" TRUE "" "liblastfm is needed for scrobbling tracks to Last.fm and fetching cover artwork")
if( NOT APPLE )
if( TOMAHAWK_QT5 )
macro_optional_find_package(Qt5Keychain 0.1.0)
else()
macro_optional_find_package(QtKeychain 0.1.0)
endif()
macro_optional_find_package(QtKeychain 0.1.0)
macro_log_feature(QTKEYCHAIN_FOUND "QtKeychain" "Provides support for secure credentials storage" "https://github.com/frankosterfeld/qtkeychain" TRUE "" "")
endif()
if( UNIX AND NOT APPLE )
macro_optional_find_package(TelepathyQt 0.9.3)
if ( TOMAHAWK_QT5 )
macro_log_feature(TelepathyQt5_FOUND "Telepathy-Qt" "Telepathy-Qt is a Qt high-level binding for Telepathy, a D-Bus framework for unifying real time communication." FALSE "" "Telepathy-Qt is needed for sharing Jabber/GTalk accounts with Telepathy.\n")
else ( TOMAHAWK_QT5)
macro_log_feature(TelepathyQt4_FOUND "Telepathy-Qt" "Telepathy-Qt is a Qt high-level binding for Telepathy, a D-Bus framework for unifying real time communication." FALSE "" "Telepathy-Qt is needed for sharing Jabber/GTalk accounts with Telepathy.\n")
endif()
endif()
# we need pthreads too
macro_optional_find_package(Threads)
@@ -346,15 +252,7 @@ if( WIN32 )
macro_log_feature(QTSPARKLE_FOUND "qtsparkle" "Library for creating auto updaters written in Qt" "https://github.com/davidsansome/qtsparkle" FALSE "" "")
endif( WIN32 )
if( WIN32 OR APPLE )
if( TOMAHAWK_QT5 )
macro_optional_find_package(LibsnoreQt5 QUIET)
else()
macro_optional_find_package(Libsnore QUIET)
endif()
macro_log_feature(LIBSNORE_FOUND "Libsnore" "Library for notifications" "https://github.com/TheOneRing/Snorenotify" FALSE "" "")
endif()
#TODO: support external qxt
set(QXTWEB_FOUND TRUE)
set(QXTWEB_LIBRARIES qxtweb-standalone)
set(QXTWEB_INCLUDE_DIRS ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/web ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/network ${THIRDPARTY_DIR}/qxt/qxtweb-standalone/core ${CMAKE_CURRENT_BINARY_DIR})
@@ -379,23 +277,14 @@ add_subdirectory(${THIRDPARTY_DIR}/libportfwd)
#### submodules end
macro_optional_find_package(KDE4)
macro_optional_find_package(KDE4Installed)
if (WITH_KDE4)
macro_optional_find_package(KDE4)
macro_optional_find_package(KDE4Installed)
endif(WITH_KDE4)
macro_log_feature(KDE4_FOUND "KDE4" "Provides support for configuring Telepathy Accounts from inside Tomahawk" "https://www.kde.org" FALSE "" "")
# this was used before we had FindKDE4Installed, just leaving it here to keep the flags
# for future kde integration
if(NOT Phonon_FOUND)
macro_optional_find_package(Phonon 4.5.0)
endif()
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()
IF( KDE4_FOUND OR Phonon_FOUND )
# macro_optional_find_package(KDE4)
IF( KDE4_FOUND )
IF( CMAKE_C_FLAGS )
# KDE4 adds and removes some compiler flags that we don't like
# (only for gcc not for clang e.g.)
@@ -417,42 +306,27 @@ CONFIGURE_FILE(
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
# KDE4 defines an uninstall target for us automatically (and at least with Qt4 Phonon does as well no matter if kdelibs was found)
# IF( NOT KDE4_FOUND )
# ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
# ENDIF()
# KDE4 defines an uninstall target for us automatically
IF( NOT KDE4_FOUND )
ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
ENDIF()
IF( ( NOT APPLE ) AND ( NOT SANITIZE_ADDRESS ))
IF( NOT APPLE )
# Make linking as strict on linux as it is on osx. Then we don't break linking on mac so often
#
# On using Address Sanitizer, we cannot link to the ASAN lib, so
# --no-undefined would break the build.
SET( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined" )
ENDIF()
IF ( SANITIZE_ADDRESS )
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
ENDIF()
# Early configure these files as we need them later on
configure_file(TomahawkUse.cmake.in "${PROJECT_BINARY_DIR}/TomahawkUse.cmake" @ONLY)
file(COPY TomahawkAddPlugin.cmake DESTINATION "${PROJECT_BINARY_DIR}")
file(COPY TomahawkAddLibrary.cmake DESTINATION "${PROJECT_BINARY_DIR}")
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-undefined" )
ENDIF( NOT APPLE )
SET( TOMAHAWK_LIBRARIES tomahawklib )
SET( TOMAHAWK_WIDGETS_LIBRARIES tomahawk-widgets )
SET( TOMAHAWK_PLAYDARAPI_LIBRARIES tomahawk-playdarapi )
ADD_SUBDIRECTORY( thirdparty )
ADD_SUBDIRECTORY( src )
ADD_SUBDIRECTORY( admin )
IF(BUILD_TESTS)
enable_testing()
ADD_SUBDIRECTORY( src/tests )
ENDIF()
if( BUILD_TESTS )
enable_testing()
add_subdirectory( tests )
endif()
# Add all targets to the build-tree export set
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Tomahawk" CACHE PATH "Installation directory for CMake files")
@@ -472,6 +346,9 @@ file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_FULL_CMAKEDIR}" "${CMAK
configure_file(TomahawkConfig.cmake.in "${PROJECT_BINARY_DIR}/TomahawkConfig.cmake" @ONLY)
configure_file(TomahawkConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/TomahawkConfigVersion.cmake" @ONLY)
file(COPY TomahawkUse.cmake DESTINATION "${PROJECT_BINARY_DIR}")
file(COPY TomahawkAddPlugin.cmake DESTINATION "${PROJECT_BINARY_DIR}")
# Install the cmake files
install(
@@ -480,7 +357,6 @@ install(
"${PROJECT_BINARY_DIR}/TomahawkConfigVersion.cmake"
"${PROJECT_BINARY_DIR}/TomahawkUse.cmake"
"${PROJECT_BINARY_DIR}/TomahawkAddPlugin.cmake"
"${PROJECT_BINARY_DIR}/TomahawkAddLibrary.cmake"
DESTINATION
"${CMAKE_INSTALL_CMAKEDIR}"
)

View File

@@ -12,8 +12,8 @@ SET(WINDRES_EXECUTABLE ${CMAKE_RC_COMPILER})
# adds application icon to target source list
# for detailed documentation see the top of FindKDE4Internal.cmake
macro (TOMAHAWK_ADD_APP_ICON appsources outfilename pattern)
set (_outfilename ${CMAKE_CURRENT_BINARY_DIR}/${outfilename})
macro (KDE4_ADD_APP_ICON appsources pattern)
set (_outfilename ${CMAKE_CURRENT_BINARY_DIR}/${appsources})
if (WIN32)
if(NOT WINCE)
@@ -86,9 +86,9 @@ macro (TOMAHAWK_ADD_APP_ICON appsources outfilename pattern)
if (_icon)
# first, get the basename of our app icon
add_custom_command(OUTPUT ${_outfilename}.icns ${_outfilename}.tiff
COMMAND ${SIPS_EXECUTABLE} -s format tiff ${_icon} --out ${_outfilename}.tiff
COMMAND ${TIFF2ICNS_EXECUTABLE} ${_outfilename}.tiff ${_outfilename}.icns
add_custom_command(OUTPUT ${_outfilename}.icns ${outfilename}.tiff
COMMAND ${SIPS_EXECUTABLE} -s format tiff ${_icon} --out ${outfilename}.tiff
COMMAND ${TIFF2ICNS_EXECUTABLE} ${outfilename}.tiff ${_outfilename}.icns
DEPENDS ${_icon}
)
@@ -111,4 +111,4 @@ macro (TOMAHAWK_ADD_APP_ICON appsources outfilename pattern)
message(STATUS "Unable to find the sips and tiff2icns utilities - application will not have an application icon!")
endif(SIPS_EXECUTABLE AND TIFF2ICNS_EXECUTABLE)
endif(Q_WS_MAC)
endmacro (TOMAHAWK_ADD_APP_ICON)
endmacro (KDE4_ADD_APP_ICON)

View File

@@ -1,12 +0,0 @@
macro (CHECK_STD_FUNCTIONAL CXX_STD_FUNCTIONAL)
include (CheckCXXSourceCompiles)
check_cxx_source_compiles(
"
#include <functional>
using std::function;
int main()
{
return 0;
}" ${CXX_STD_FUNCTIONAL})
endmacro()

View File

@@ -1,12 +0,0 @@
macro (CHECK_STD_TR1_FUNCTIONAL CXX_STD_TR1_FUNCTIONAL)
include (CheckCXXSourceCompiles)
check_cxx_source_compiles(
"
#include <tr1/functional>
using std::tr1::function;
int main()
{
return 0;
}" ${CXX_STD_TR1_FUNCTIONAL})
endmacro()

View File

@@ -0,0 +1,132 @@
#
# This module looks for clucene (http://clucene.sf.net) support
# It will define the following values
#
# CLUCENE_INCLUDE_DIRS = CLUCENE_INCLUDE_DIR + CLUCENE_LIBRARY_DIR
# CLUCENE_INCLUDE_DIR = where CLucene/StdHeader.h can be found
# CLUCENE_LIBRARY_DIR = where CLucene/clucene-config.h can be found
# CLUCENE_LIBRARIES = the libraries to link against CLucene
# CLUCENE_VERSION = The CLucene version string
# CLucene_FOUND = set to 1 if clucene is found
#
INCLUDE(CheckSymbolExists)
INCLUDE(FindLibraryWithDebug)
# try to locate a patched unstable version (for comp's sake *sigh*) first
FIND_PACKAGE(CLuceneUnstable QUIET)
IF(CLUCENEUNSTABLE_FOUND)
SET(CLucene_FOUND TRUE)
SET(CLUCENE_INCLUDE_DIR ${CLUCENE_UNSTABLE_INCLUDE_DIRS})
SET(CLUCENE_INCLUDE_DIRS ${CLUCENE_INCLUDE_DIR})
SET(CLUCENE_LIBRARIES ${CLUCENE_UNSTABLE_LIBS})
#MESSAGE(FATAL_ERROR NARF)
ELSE(CLUCENEUNSTABLE_FOUND)
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)
ENDIF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
SET(TRIAL_LIBRARY_PATHS
$ENV{CLUCENE_HOME}/lib${LIB_SUFFIX}
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
/usr/local/lib${LIB_SUFFIX}
/usr/lib${LIB_SUFFIX}
/sw/lib${LIB_SUFFIX}
/usr/pkg/lib${LIB_SUFFIX}
/usr/lib64
/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
)
SET(TRIAL_INCLUDE_PATHS
$ENV{CLUCENE_HOME}/include
${CMAKE_INSTALL_PREFIX}/include
/usr/local/include
/usr/include
/sw/include
/usr/pkg/include
)
FIND_LIBRARY_WITH_DEBUG(CLUCENE_CORE_LIBRARY
WIN32_DEBUG_POSTFIX d
NAMES clucene-core
PATHS ${TRIAL_LIBRARY_PATHS})
IF (CLUCENE_CORE_LIBRARY)
MESSAGE(STATUS "Found CLucene core library: ${CLUCENE_CORE_LIBRARY}")
ENDIF (CLUCENE_CORE_LIBRARY)
FIND_LIBRARY_WITH_DEBUG(CLUCENE_SHARED_LIBRARY
WIN32_DEBUG_POSTFIX d
NAMES clucene-shared
PATHS ${TRIAL_LIBRARY_PATHS})
IF (CLUCENE_SHARED_LIBRARY)
MESSAGE(STATUS "Found CLucene shared library: ${CLUCENE_SHARED_LIBRARY}")
ENDIF (CLUCENE_SHARED_LIBRARY)
IF(CLUCENE_CORE_LIBRARY AND CLUCENE_SHARED_LIBRARY)
SET(CLUCENE_LIBRARIES ${CLUCENE_CORE_LIBRARY} ${CLUCENE_SHARED_LIBRARY})
ENDIF(CLUCENE_CORE_LIBRARY AND CLUCENE_SHARED_LIBRARY)
FIND_PATH(CLUCENE_INCLUDE_DIR
NAMES CLucene.h
PATHS ${TRIAL_INCLUDE_PATHS})
IF (CLUCENE_INCLUDE_DIR)
MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}")
ENDIF (CLUCENE_INCLUDE_DIR)
IF(WIN32)
SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR})
ENDIF(WIN32)
SET(CLUCENE_GOOD_VERSION TRUE)
FIND_PATH(CLUCENE_LIBRARY_DIR
NAMES CLuceneConfig.cmake/CLuceneConfig.cmake CLucene/CLuceneConfig.cmake
PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
IF (CLUCENE_LIBRARY_DIR)
MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}")
# include CLuceneConfig/CLuceneConfig.cmake
IF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
INCLUDE(${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
ENDIF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLuceneConfig.cmake/CLuceneConfig.cmake)
# include CLucene/CLuceneConfig.cmake
IF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
INCLUDE(${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
ENDIF(EXISTS ${CLUCENE_LIBRARY_DIR}/CLucene/CLuceneConfig.cmake)
IF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}")
SET(CLUCENE_GOOD_VERSION FALSE)
ENDIF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
IF (CLUCENE_VERSION STREQUAL "0.9.17")
MESSAGE(ERROR "CLucene version 0.9.17 is not supported.")
SET(CLUCENE_GOOD_VERSION FALSE)
ENDIF (CLUCENE_VERSION STREQUAL "0.9.17")
ENDIF (CLUCENE_LIBRARY_DIR)
IF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARIES AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
SET(CLucene_FOUND TRUE)
SET(CLUCENE_INCLUDE_DIRS ${CLUCENE_LIBRARY_DIR} ${CLUCENE_INCLUDE_DIR})
ENDIF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARIES AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
ENDIF(CLUCENEUNSTABLE_FOUND)
IF(CLucene_FOUND)
IF(NOT CLucene_FIND_QUIETLY)
MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARIES} version ${CLUCENE_VERSION}")
ENDIF(NOT CLucene_FIND_QUIETLY)
ELSE(CLucene_FOUND)
IF(CLucene_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find CLucene.")
ENDIF(CLucene_FIND_REQUIRED)
ENDIF(CLucene_FOUND)
MARK_AS_ADVANCED(
CLUCENE_INCLUDE_DIRS
CLUCENE_INCLUDE_DIR
CLUCENE_LIBRARY_DIR
CLUCENE_LIBRARIES
)

View File

@@ -0,0 +1,37 @@
# - Try to find clucene-unstable
# This is a workaround for distros, that want to ship a recent enough clucene but don't want to replace the old version
#
# CLUCENEUNSTABLE_FOUND - system has clucene-unstable
# CLUCENE_UNSTABLE_INCLUDE_DIR - the clucene-unstable include directories
# CLUCENE_UNSTABLE_LIBS - link these to use clucene-unstable
#
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
#
# Include dir
find_path(CLUCENE_UNSTABLE_INCLUDE_DIR
NAMES CLucene.h
PATH_SUFFIXES clucene-unstable
PATHS ${KDE4_INCLUDE_DIR}
)
# Finally the library itself
find_library(CLUCENE_UNSTABLE_SHARED_LIB
NAMES clucene-unstable-shared
PATHS ${KDE4_LIB_DIR}
)
find_library(CLUCENE_UNSTABLE_CORE_LIB
NAMES clucene-unstable-core
PATHS ${KDE4_LIB_DIR}
)
SET( CLUCENE_UNSTABLE_LIBS ${CLUCENE_UNSTABLE_SHARED_LIB} ${CLUCENE_UNSTABLE_CORE_LIB} )
SET( CLUCENE_UNSTABLE_INCLUDE_DIRS ${CLUCENE_UNSTABLE_INCLUDE_DIR})
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CLuceneUnstable DEFAULT_MSG CLUCENE_UNSTABLE_LIBS CLUCENE_UNSTABLE_INCLUDE_DIRS)
MARK_AS_ADVANCED(CLUCENE_UNSTABLE_LIBS CLUCENE_UNSTABLE_INCLUDE_DIRS)

View File

@@ -6,12 +6,7 @@
# ECHONEST_FOUND, whether libechonest was found
FIND_PACKAGE(PkgConfig QUIET)
if( TOMAHAWK_QT5 )
set(LIBECHONEST_SUFFIX "5")
endif()
PKG_CHECK_MODULES(PC_ECHONEST QUIET libechonest${LIBECHONEST_SUFFIX})
PKG_CHECK_MODULES(PC_ECHONEST QUIET libechonest)
FIND_PATH(ECHONEST_INCLUDE_DIR NAMES echonest/Track.h
HINTS
@@ -21,7 +16,7 @@ FIND_PATH(ECHONEST_INCLUDE_DIR NAMES echonest/Track.h
${KDE4_INCLUDE_DIR}
)
FIND_LIBRARY(ECHONEST_LIBRARIES NAMES echonest${LIBECHONEST_SUFFIX}
FIND_LIBRARY(ECHONEST_LIBRARIES NAMES echonest
HINTS
${PC_ECHONEST_LIBDIR}
${PC_ECHONEST_LIBRARY_DIRS}

View File

@@ -6,13 +6,7 @@
# LIBJREEN_FOUND, whether libjreen was found
FIND_PACKAGE(PkgConfig QUIET)
if( TOMAHAWK_QT5 )
set(JREEN_LIB_SUFFIX "-qt5")
set(JREEN_INCLUDE_SUFFIX ${JREEN_LIB_SUFFIX})
else()
set(JREEN_INCLUDE_SUFFIX "-qt4")
endif()
PKG_CHECK_MODULES(PC_JREEN QUIET libjreen${JREEN_LIB_SUFFIX})
PKG_CHECK_MODULES(PC_JREEN QUIET libjreen)
FIND_PATH(JREEN_INCLUDE_DIR NAMES jreen/jreen.h
HINTS
@@ -20,12 +14,9 @@ FIND_PATH(JREEN_INCLUDE_DIR NAMES jreen/jreen.h
${PC_JREEN_INCLUDE_DIRS}
${CMAKE_INSTALL_INCLUDEDIR}
${KDE4_INCLUDE_DIR}
PATH_SUFFIXES
jreen${JREEN_INCLUDE_SUFFIX}
)
FIND_LIBRARY(JREEN_LIBRARIES NAMES jreen${JREEN_LIB_SUFFIX}
FIND_LIBRARY(JREEN_LIBRARIES NAMES jreen
HINTS
${PC_JREEN_LIBDIR}
${PC_JREEN_LIBRARY_DIRS}

View File

@@ -7,10 +7,6 @@
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
#
if( TOMAHAWK_QT5 )
set(LASTFM_LIB_SUFFIX "5")
endif()
# Include dir
find_path(LIBLASTFM_INCLUDE_DIR
# Track.h doesn't exist in liblastfm-0.3.1, was called Track back then
@@ -20,7 +16,7 @@ find_path(LIBLASTFM_INCLUDE_DIR
# Finally the library itself
find_library(LIBLASTFM_LIBRARY
NAMES lastfm${LASTFM_LIB_SUFFIX}
NAMES lastfm
PATHS ${KDE4_LIB_DIR}
)

View File

@@ -1,103 +0,0 @@
#
# This module looks for lucene++ support
# It will define the following values
#
# LUCENEPP_INCLUDE_DIRS = LUCENEPP_INCLUDE_DIR + LUCENEPP_LIBRARY_DIR
# LUCENEPP_INCLUDE_DIR = where lucene++/Lucene.h can be found
# LUCENEPP_LIBRARY_DIR = where liblucene++.so can be found
# LUCENEPP_LIBRARIES = the libraries to link against lucene++
# LUCENEPP_VERSION = The lucene++ version string
# LUCENEPP_FOUND = set to 1 if lucene++ is found
#
INCLUDE(CheckSymbolExists)
INCLUDE(FindLibraryWithDebug)
IF(LUCENEPP_FIND_VERSION)
SET(LUCENEPP_MIN_VERSION ${LUCENEPP_FIND_VERSION})
ELSEIF()
SET(LUCENEPP_MIN_VERSION "3.0.0")
ENDIF(LUCENEPP_FIND_VERSION)
SET(TRIAL_LIBRARY_PATHS
$ENV{LUCENEPP_HOME}/lib${LIB_SUFFIX}
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
${CMAKE_INSTALL_PREFIX}/lib
/usr/local/lib${LIB_SUFFIX}
/usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE}
/usr/lib${LIB_SUFFIX}
/sw/lib${LIB_SUFFIX}
/usr/pkg/lib${LIB_SUFFIX}
/usr/lib64
/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}
)
SET(TRIAL_INCLUDE_PATHS
$ENV{LUCENEPP_HOME}/include
${CMAKE_INSTALL_PREFIX}/include
/usr/local/include
/usr/include
/sw/include
/usr/pkg/include
)
FIND_LIBRARY_WITH_DEBUG(LUCENEPP_CORE_LIBRARY
WIN32_DEBUG_POSTFIX d
NAMES lucene++
PATHS ${TRIAL_LIBRARY_PATHS})
IF (LUCENEPP_CORE_LIBRARY)
MESSAGE(STATUS "Found Lucene++ core library: ${LUCENEPP_CORE_LIBRARY}")
ENDIF (LUCENEPP_CORE_LIBRARY)
FIND_LIBRARY_WITH_DEBUG(LUCENEPP_SHARED_LIBRARY
WIN32_DEBUG_POSTFIX d
NAMES lucene++-contrib
PATHS ${TRIAL_LIBRARY_PATHS})
IF (LUCENEPP_SHARED_LIBRARY)
MESSAGE(STATUS "Found Lucene++ contrib library: ${LUCENEPP_SHARED_LIBRARY}")
ENDIF (LUCENEPP_SHARED_LIBRARY)
IF(LUCENEPP_CORE_LIBRARY AND LUCENEPP_SHARED_LIBRARY)
SET(LUCENEPP_LIBRARIES ${LUCENEPP_CORE_LIBRARY} ${LUCENEPP_SHARED_LIBRARY} ${Boost_SYSTEM_LIBRARY})
ENDIF(LUCENEPP_CORE_LIBRARY AND LUCENEPP_SHARED_LIBRARY)
FIND_PATH(LUCENEPP_INCLUDE_DIR
NAMES lucene++/Lucene.h
PATHS ${TRIAL_INCLUDE_PATHS})
IF (LUCENEPP_INCLUDE_DIR)
MESSAGE(STATUS "Found Lucene++ include dir: ${LUCENEPP_INCLUDE_DIR}")
ENDIF (LUCENEPP_INCLUDE_DIR)
SET(LUCENEPP_GOOD_VERSION TRUE)
FIND_PATH(LUCENEPP_LIBRARY_DIR
NAMES liblucene++.dylib liblucene++.so liblucene++.dll.a lucene++
PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
IF (LUCENEPP_LIBRARY_DIR)
MESSAGE(STATUS "Found Lucene++ library dir: ${LUCENEPP_LIBRARY_DIR}")
IF (LUCENEPP_VERSION STRLESS "${LUCENEPP_MIN_VERSION}")
MESSAGE(ERROR " Lucene++ version ${LUCENEPP_VERSION} is less than the required minimum ${LUCENEPP_MIN_VERSION}")
SET(LUCENEPP_GOOD_VERSION FALSE)
ENDIF (LUCENEPP_VERSION STRLESS "${LUCENEPP_MIN_VERSION}")
ENDIF (LUCENEPP_LIBRARY_DIR)
IF(LUCENEPP_INCLUDE_DIR AND LUCENEPP_LIBRARIES AND LUCENEPP_LIBRARY_DIR AND LUCENEPP_GOOD_VERSION)
SET(LUCENEPP_FOUND TRUE)
SET(LUCENEPP_INCLUDE_DIRS ${LUCENEPP_LIBRARY_DIR} ${LUCENEPP_INCLUDE_DIR})
ENDIF(LUCENEPP_INCLUDE_DIR AND LUCENEPP_LIBRARIES AND LUCENEPP_LIBRARY_DIR AND LUCENEPP_GOOD_VERSION)
IF(LUCENEPP_FOUND)
IF(NOT LUCENEPP_FIND_QUIETLY)
MESSAGE(STATUS "Found Lucene++: ${LUCENEPP_LIBRARIES} version ${LUCENEPP_VERSION}")
ENDIF(NOT LUCENEPP_FIND_QUIETLY)
ELSE(LUCENEPP_FOUND)
IF(LUCENEPP_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Lucene++.")
ENDIF(LUCENEPP_FIND_REQUIRED)
ENDIF(LUCENEPP_FOUND)
MARK_AS_ADVANCED(
LUCENEPP_INCLUDE_DIRS
LUCENEPP_INCLUDE_DIR
LUCENEPP_LIBRARY_DIR
LUCENEPP_LIBRARIES
)

View File

@@ -11,14 +11,27 @@
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
macro(_phonon_find_version)
set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/phonon/phononnamespace.h")
if (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
set(_phonon_namespace_header_file "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
endif (APPLE AND EXISTS "${PHONON_INCLUDE_DIR}/Headers/phononnamespace.h")
file(READ ${_phonon_namespace_header_file} _phonon_header LIMIT 5000 OFFSET 1000)
string(REGEX MATCH "define PHONON_VERSION_STR \"(4\\.[0-9]+\\.[0-9a-z]+)\"" _phonon_version_match "${_phonon_header}")
set(PHONON_VERSION "${CMAKE_MATCH_1}")
endmacro(_phonon_find_version)
# the dirs listed with HINTS are searched before the default sets of dirs
find_library(PHONON_LIBRARY NAMES phonon HINTS ${KDE4_LIB_INSTALL_DIR} ${QT_LIBRARY_DIR})
find_path(PHONON_INCLUDE_DIR NAMES phonon/phonon_export.h HINTS ${KDE4_INCLUDE_INSTALL_DIR} ${QT_INCLUDE_DIR} ${INCLUDE_INSTALL_DIR} ${QT_LIBRARY_DIR})
if(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
set(PHONON_LIBS ${phonon_LIB_DEPENDS} ${PHONON_LIBRARY})
set(PHONON_INCLUDES ${PHONON_INCLUDE_DIR}/KDE ${PHONON_INCLUDE_DIR})
_phonon_find_version()
endif(PHONON_INCLUDE_DIR AND PHONON_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Phonon DEFAULT_MSG PHONON_INCLUDE_DIR PHONON_LIBRARY)
if( TOMAHAWK_QT5 )
find_package(Phonon4Qt5 NO_MODULE)
set(Phonon_FOUND ${Phonon4Qt5_FOUND})
set(Phonon_DIR ${Phonon4Qt5_DIR})
else()
find_package(Phonon NO_MODULE)
endif()
find_package_handle_standard_args(Phonon DEFAULT_MSG Phonon_DIR )
mark_as_advanced(PHONON_INCLUDE_DIR PHONON_LIBRARY)

View File

@@ -0,0 +1,28 @@
# - Try to find QTweetLib
#
# QTWEETLIB_FOUND - system has QTweetLib
# QTWEETLIB_INCLUDE_DIRS - the QTweetLib include directories
# QTWEETLIB_LIBRARIES - link these to use QTweetLib
#
# (c) Dominik Schmidt <dev@dominik-schmidt.de>
#
# Include dir
find_path(QTWEETLIB_INCLUDE_DIR
NAMES QTweetLib/qtweetlib_global.h
PATHS ${KDE4_INCLUDE_DIR}
)
# Finally the library itself
find_library(QTWEETLIB_LIBRARY
NAMES QTweetLib
PATHS ${KDE4_LIB_DIR}
)
SET( QTWEETLIB_LIBRARIES ${QTWEETLIB_LIBRARY} ${QJSON_LIBRARIES} )
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(QTweetLib DEFAULT_MSG QTWEETLIB_LIBRARY QTWEETLIB_INCLUDE_DIR)
MARK_AS_ADVANCED(QTWEETLIB_LIBRARIES QTWEETLIB_INCLUDE_DIR)

View File

@@ -1,25 +0,0 @@
# - Find google-sparsehash
# Find the google-sparsehash includes
# This module defines
# SPARSEHASH_INCLUDE_DIR, root jreen include dir.
# SPARSEHASH_FOUND, whether libjreen was found
FIND_PACKAGE(PkgConfig QUIET)
PKG_CHECK_MODULES(PC_SPARSEHASH QUIET libsparsehash)
FIND_PATH(SPARSEHASH_INCLUDE_DIR NAMES google/sparsetable
HINTS
${PC_SPARSEHASH_INCLUDEDIR}
${PC_SPARSEHASH_INCLUDE_DIRS}
${CMAKE_INSTALL_INCLUDEDIR}
)
IF(SPARSEHASH_INCLUDE_DIR AND NOT PC_SPARSEHASH_VERSION)
MESSAGE(WARNING "You don't have pkg-config and so the google-sparsehash version check does not work!")
ENDIF()
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Sparsehash
REQUIRED_VARS SPARSEHASH_INCLUDE_DIR)
MARK_AS_ADVANCED(SPARSEHASH_INCLUDE_DIR)

View File

@@ -1,27 +0,0 @@
# Copyright (c) 2013, Teo Mrnjavac <teo@kde.org>
include(FindPackageHandleStandardArgs)
if( NOT BUILD_WITH_QT4 )
find_package(TelepathyQt5 NO_MODULE)
set(TelepathyQt_FOUND ${TelepathyQt5_FOUND})
set(TELEPATHY_QT_VERSION ${TELEPATHY_QT5_VERSION})
set(TELEPATHY_QT_INSTALL_DIR ${TELEPATHY_QT5_INSTALL_DIR})
set(TELEPATHY_QT_INCLUDE_DIR ${TELEPATHY_QT5_INCLUDE_DIR})
set(TELEPATHY_QT_LIB_DIR ${TELEPATHY_QT5_LIB_DIR})
set(TELEPATHY_QT_SHARE_DIR ${TELEPATHY_QT5_SHARE_DIR})
set(TELEPATHY_QT_LIBRARIES ${TELEPATHY_QT5_LIBRARIES})
else()
find_package(TelepathyQt4 NO_MODULE)
set(TelepathyQt_FOUND ${TelepathyQt4_FOUND})
set(TELEPATHY_QT_VERSION ${TELEPATHY_QT4_VERSION})
set(TELEPATHY_QT_INSTALL_DIR ${TELEPATHY_QT4_INSTALL_DIR})
set(TELEPATHY_QT_INCLUDE_DIR ${TELEPATHY_QT4_INCLUDE_DIR})
set(TELEPATHY_QT_LIB_DIR ${TELEPATHY_QT4_LIB_DIR})
set(TELEPATHY_QT_SHARE_DIR ${TELEPATHY_QT4_SHARE_DIR})
set(TELEPATHY_QT_LIBRARIES ${TELEPATHY_QT4_LIBRARIES})
endif()
set(TELEPATHY_QT_FOUND ${TelepathyQt_FOUND})
find_package_handle_standard_args(TelepathyQt DEFAULT_MSG TELEPATHY_QT_INSTALL_DIR )

View File

@@ -34,9 +34,6 @@
!define NSI_PATH "${SOURCE_PATH}/admin/win/nsi"
;define app id needed for Windows 8 notifications
!define AppUserModelId org.tomahawk-player.Tomahawk
;-----------------------------------------------------------------------------
; Installer version
;-----------------------------------------------------------------------------
@@ -279,9 +276,6 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${INSTALL_PATH}\bin\tomahawk_crash_reporter.exe"
File "${INSTALL_PATH}\bin\libtomahawk.dll"
File "${INSTALL_PATH}\bin\libtomahawk-widgets.dll"
File "${INSTALL_PATH}\bin\libtomahawk-playdarapi.dll"
; plugins
File "${INSTALL_PATH}\lib\libtomahawk_*_*.dll"
!endif
@@ -292,9 +286,6 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${BUILD_PATH}\tomahawk_crash_reporter.exe"
File "${BUILD_PATH}\libtomahawk.dll"
File "${BUILD_PATH}\libtomahawk-widgets.dll"
File "${BUILD_PATH}\libtomahawk-playdarapi.dll"
; plugins
File "${BUILD_PATH}\libtomahawk_*_*.dll"
!endif
@@ -313,14 +304,11 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
File "${QT_DLL_PATH}\QtWebKit4.dll"
File "${QT_DLL_PATH}\QtXml4.dll"
File "${QT_DLL_PATH}\QtSvg4.dll"
File "${QT_DLL_PATH}\QtDeclarative4.dll"
File "${QT_DLL_PATH}\QtXmlPatterns4.dll"
;SQLite driver
SetOutPath "$INSTDIR\sqldrivers"
File "${SQLITE_DLL_PATH}\qsqlite4.dll"
SetOutPath "$INSTDIR"
File "${MING_BIN}\libsqlite3-0.dll"
;Image plugins
SetOutPath "$INSTDIR\imageformats"
@@ -352,56 +340,27 @@ Section "Tomahawk Player" SEC_TOMAHAWK_PLAYER
; Other
File "${MING_BIN}\libqjson.dll"
File "${MING_BIN}\libtag.dll"
File "${MING_BIN}\libpng16-16.dll"
File "${MING_BIN}\libpng15-15.dll"
File "${MING_BIN}\libjpeg-8.dll"
File "${MING_BIN}\zlib1.dll"
File "${MING_BIN}\libechonest.dll"
File "${MING_BIN}\liblastfm.dll"
File "${MING_BIN}\libQTweetLib.dll"
File "${MING_BIN}\libquazip.dll"
File "${MING_BIN}\libqtkeychain.dll"
; GnuTLS
File "${MING_BIN}\libgnutls-28.dll"
File "${MING_BIN}\libtasn1-6.dll"
File "${MING_BIN}\libgmp-10.dll"
File "${MING_BIN}\libhogweed-2-4.dll"
File "${MING_BIN}\libintl-8.dll"
File "${MING_BIN}\libnettle-4-6.dll"
File "${MING_BIN}\libp11-kit-0.dll"
File "${MING_BIN}\libffi-6.dll"
; Snorenotify
File "${MING_BIN}\SnoreToast.exe"
File "${MING_BIN}\libsnore.dll"
File "${MING_LIB}\libsnore\libsnore_backend_growl.dll"
File "${MING_LIB}\libsnore\libsnore_backend_snarl.dll"
File "${MING_LIB}\libsnore\libsnore_backend_snore.dll"
File "${MING_LIB}\libsnore\libsnore_backend_snoretoast.dll"
; Snoregrowl
File "${MING_BIN}\libsnoregrowl++.dll"
File "${MING_BIN}\libsnoregrowl.dll"
; Jabber
File "${MING_BIN}\libjreen.dll"
File "${MING_BIN}\libidn-11.dll"
File "${MING_BIN}\libgsasl-7.dll"
File "${MING_BIN}\libqca.dll"
SetOutPath "$INSTDIR\crypto"
File "${MING_LIB}\qt4\plugins\crypto\libqca-ossl.dll"
SetOutPath "$INSTDIR"
File "${MING_BIN}\libssl-10.dll"
File "${MING_BIN}\libcrypto-10.dll"
File "${MING_BIN}\libssl-8.dll"
File "${MING_BIN}\libcrypto-8.dll"
; LucenePlusPlus
File "${MING_BIN}\liblucene++.dll"
File "${MING_BIN}\libboost_system-mt.dll"
File "${MING_BIN}\libboost_filesystem-mt.dll"
File "${MING_BIN}\libboost_iostreams-mt.dll"
File "${MING_BIN}\libboost_regex-mt.dll"
File "${MING_BIN}\libboost_thread-mt.dll"
File "${MING_BIN}\bz2-1.dll"
File "${MING_BIN}\libclucene-core.dll"
File "${MING_BIN}\libclucene-shared.dll"
File "${MING_BIN}\libqtsparkle.dll"
File "${MING_BIN}\libattica.dll"
@@ -420,7 +379,6 @@ SectionGroup "Shortcuts"
CreateDirectory "$SMPROGRAMS\Tomahawk"
CreateShortCut "$SMPROGRAMS\Tomahawk\LICENSE.lnk" "$INSTDIR\LICENSE.txt"
CreateShortCut "$SMPROGRAMS\Tomahawk\Tomahawk.lnk" "$INSTDIR\tomahawk.exe"
WinShell::SetLnkAUMI "$SMPROGRAMS\Tomahawk\Tomahawk.lnk" "${AppUserModelId}"
CreateShortCut "$SMPROGRAMS\Tomahawk\Release notes.lnk" "$INSTDIR\NOTES.txt"
CreateShortCut "$SMPROGRAMS\Tomahawk\Uninstall.lnk" "$INSTDIR\uninstall.exe"
SetShellVarContext current
@@ -501,72 +459,6 @@ Section -post
WriteRegStr HKCR "tomahawk\shell" "" "open"
WriteRegStr HKCR "tomahawk\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
; Register file associations
WriteRegStr HKCR ".mp3" "" "MPEG Audio Layer 3"
WriteRegStr HKCR ".mp3\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".mp3\shell" "" "open"
WriteRegStr HKCR ".mp3\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".oga" "" "Ogg Audio File"
WriteRegStr HKCR ".oga\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".oga\shell" "" "open"
WriteRegStr HKCR ".oga\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".ogg" "" "Ogg Audio File"
WriteRegStr HKCR ".ogg\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".ogg\shell" "" "open"
WriteRegStr HKCR ".ogg\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".opus" "" "OPUS File"
WriteRegStr HKCR ".opus\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".opus\shell" "" "open"
WriteRegStr HKCR ".opus\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".mp4" "" "AAC File"
WriteRegStr HKCR ".mp4\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".mp4\shell" "" "open"
WriteRegStr HKCR ".mp4\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".aac" "" "AAC File"
WriteRegStr HKCR ".aac\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".aac\shell" "" "open"
WriteRegStr HKCR ".aac\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".m4a" "" "AAC File"
WriteRegStr HKCR ".m4a\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".m4a\shell" "" "open"
WriteRegStr HKCR ".m4a\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".mpc" "" "Musepack Audio File"
WriteRegStr HKCR ".mpc\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".mpc\shell" "" "open"
WriteRegStr HKCR ".mpc\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".wma" "" "Windows Media Audio"
WriteRegStr HKCR ".wma\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".wma\shell" "" "open"
WriteRegStr HKCR ".wma\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".aiff" "" "AIFF File"
WriteRegStr HKCR ".aiff\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".aiff\shell" "" "open"
WriteRegStr HKCR ".aiff\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".aif" "" "AIFF File"
WriteRegStr HKCR ".aif\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".aif\shell" "" "open"
WriteRegStr HKCR ".aif\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".wv" "" "WavePack Audio File"
WriteRegStr HKCR ".wv\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".wv\shell" "" "open"
WriteRegStr HKCR ".wv\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
WriteRegStr HKCR ".flac" "" "FLAC Audio File"
WriteRegStr HKCR ".flac\DefaultIcon" "" $INSTDIR\tomahawk.exe,1
WriteRegStr HKCR ".flac\shell" "" "open"
WriteRegStr HKCR ".flac\shell\open\command" "" '"$INSTDIR\tomahawk.exe" "%1"'
SetDetailsPrint textonly
DetailPrint "Finsihed."
SectionEnd
@@ -626,15 +518,11 @@ Section Uninstall
DeleteRegValue HKLM "Software\Tomahawk" ""
DeleteRegKey HKLM "Software\Tomahawk"
;DeleteRegKey HKCR "Software\Tomahawk"
;DeleteRegKey HKCR "Software\TomahawkSpotify"
DeleteRegKey HKCR "tomahawk"
;Start menu shortcuts.
!ifdef OPTION_SECTION_SC_START_MENU
SetShellVarContext all
WinShell::UninstAppUserModelId "${AppUserModelId}"
WinShell::UninstShortcut "$SMPROGRAMS\Tomahawk\Tomahawk.lnk"
RMDir /r "$SMPROGRAMS\Tomahawk"
SetShellVarContext current
!endif

View File

@@ -1,86 +1,14 @@
Version 0.8.4:
* Fixed drag & drop issues on sidebar.
* Fixed starting Tomahawk with a filename as parameter.
* Update column view when collection changes.
* (Linux) Don't crash on environments with invalid locales.
Version 0.8.3:
* Performance improvements for collection browsing.
* Improved memory footprint.
* Show cloud collections above your friends in the sidebar.
* Keep looking for alternative sources even when we found a perfect match.
* Fixed crash in network code.
* Fixed repeat one/all icons.
* Be more lenient about accepting JSPF and M3U playlists.
* Improved support for compilation albums.
* (Windows) Fixed support for Windows XP.
* (OS X) Fixed settings dialog appearance on Yosemite.
* (OS X) Fixed SSL errors on Yosemite.
Version 0.8.2:
* Show error message if saving tags failed.
* Fixed painting issue on search page.
* (OS X & Windows) Fixed crash during collection scan.
Version 0.8.1:
* Disabled sorting for stations.
* Fixed drag & drop behavior in combination with certain resolvers.
* Fixed infinite scanning recursion.
* Prevented adding dupes to the collection when scanning.
* When playing an artist or album, don't give up when the first track
in list isn't playable.
* Fixed importing M3U playlists.
* Sort album grids by artist name.
* Fixed painting issue on 'More Albums' grid.
* Fixed crash when editing/saving track tags.
Version 0.8.0:
* Redesigned - Shiny new interface. Simplified. New icons.
* Added Friend Feed.
* Now Playing notifications (OS X & Windows) - support for OS-level
notification systems (e.g. Notification Center) with fallback to its own
native notification system.
* Many actions now available in context menu - including Favorite and Send
to a Friend.
* Drag and drop support for iTunes, Deezer, Beats Music, Rdio, Spotify,
SoundCloud links (into Tomahawk) for playlists/tracks/artists/album urls.
* Support for clicking source icon for currently playing track in audio
controls to take user to associated page on source's site.
* Added Hatchet plug-in.
* Added Google Play Music and Beats Music support.
* Add links to Support site, Bug Reports and Translations to Help menu.
* Add "What's New" page to display on first launch (or until dismissed).
Also available from Help menu.
* Changed label from "Resolvers" and "Services" to more generic "Plug-Ins".
* Clarified some labels, help text and status messages.
* Changed icon color a bit.
* Added "Acoustic" and "Electric" songtypes to Stations options.
* Removed some stale Chart sources.
* Playback Queue now saves its state across sessions.
* Queue now moved to sidebar.
* Added "Inbox" feature, showing incoming song recommendations. Dropping
a track on a user in the sidebar sends a recommendation to them.
* You will now be asked whether you want to trust invalid SSL certificates.
* Improved connecting between Tomahawk peers and support multiple IPs
(including IPv6).
* Removed Top Loved from sidebar.
* Removed Spotify playlist syncing (will return in future versions).
* HTTP(S) streaming is now done by Tomahawk instead of the Phonon backend
(fixed HTTPS streaming on MacOS).
* Improved connecting between Tomahawk peers and support having multiple IPs
(including IPv6)
* Added Network Activity showing you the most played tracks of your friends.
Version 0.7.1:
* Heavily reduced memory footprint during and after indexing the database.
* Retina display and DPI scaling fixes.
* New Collection views. Re-added support for tracklist view of Collection.
* Added Telepathy support.
* Plugin refactoring (and .AXE resolver binaries).
* Removed Twitter due to change in Twitter's API.
* Removed auto-playlists.
* Improved error messages.
* Added basic remote control API.
* Add support for Opus codec (requires TagLib 1.9).
* Support rtmp:// streams.
* Support custom headers in CustomUrlHandler.
* Fuzzy search indices for JS Resolvers.
* Add metadata retrieval of HTTP(S) streams in JavaScript resolvers.
Version 0.7.0:
* JavaScript Resolvers can now expose collections.

View File

@@ -1,73 +0,0 @@
# Packaging Tomahawk
General distribution agnostic packaging documentation for Linux.
## Stay up to date!
We will try to keep this document up to date, but we also let our packagers know if our dependencies get important updates - especially if they fix crashes or add new features - or if we add completely new ones. Last but not least, of course we want to let you know about new releases of Tomahawk!
If you want to be notified too subscribe to our [Google Group](https://groups.google.com/forum/#!forum/tomahawk-packagers).
## CMake build options
CMake build options are prefixed with ```-D``` and get their value passed after an ```=```.
You could for example specify the build type like this ```-DCMAKE_BUILD_TYPE=RelWithDebInfo```.
This document contains only options relevant to packaging, to have a complete overview you should check our CMake scripts yourself. Looking at it the other way round, this also means that you should read everything in here really carefully.
##### ```CMAKE_BUILD_TYPE```
Make sure to specify the build type as ```Release``` or even better ```RelWithDebInfo``` if your distribution supports debug packages. If you do not do this, your users might see asserts (that look like crashes to them) which are only really useful to developers.
##### ```BUILD_RELEASE``` (boolean) (default: OFF)
If you're not using our tarballs you can turn this on to suppress putting Git revision hashes into the version string. This also disables building tools and tests by default (although you can do that manually) it's more future-proof to simply pass ```-DBUILD_RELEASE=ON``` because we might make use of it in later releases.
##### ```BUILD_TOOLS``` (boolean) (default: OFF, when BUILD_RELEASE=ON)
Tomahawk provides some tools that help highlight where crashes (of course we only crash in theory!) come from. To make them really useful, we need debug symbols to be available. If your distribution supports/allows it, you could put them into the -debug package.
##### ```BUILD_HATCHET``` (boolean) (default: ON)
Build the account plugin for Hatchet (http://hatchet.is). Requires [websocketpp](https://github.com/zaphoyd/websocketpp).
##### ```BUILD_WITH_QT4``` (boolean) (default: ON)
This enforces CMake to link against Qt4 regardless of whether Qt5 was found or not. Currently Qt4 is still our main development target, so this is still recommended. If you feel adventurous or are preparing Qt5 repositories for your distribution, feel free to give ```-DBUILD_WITH_QT4=OFF``` a shot.
##### ```WITH_CRASHREPORTER``` (boolean) (default: ON)
The crash reporter is built by default if libcrashreporter-qt is available in ```thirdparty/libcrashreporter-qt/``` (for example via git submodule). Usually distributions don't allow packagers to upload debug symbols to the Tomahawk HQ so to give crash reports more meaning for us, that's why we have no standardised submit process in place yet. If you can do that in your distribution, please get in touch with us!
##### ```WITH_KDE``` (boolean) (default: ON)
The KDE Telepathy plugin to configure Telepathy accounts from our Telepathy plugin can be disabled, if for some reason KDE is available in your build environment but you don't need this plugin.
##### ```WITH_UPOWER``` (boolean) (default on Linux: ON)
Build with support for UPower events.
##### ```WITH_GNOMESHORTCUTHANDLER``` (boolean) (default on Linux: ON)
Build with shortcut handler for GNOME.
#### Runtime dependencies
##### QSql
If your distribution splits the QSqlite plugin for QSql into a separate package, make it a requirement of Tomahawk - otherwise it might fail to start.
##### XMPP / jreen
Either jreen or (at least) Tomahawk's package should require the qca-ossl plugin, otherwise there will be no GTalk/Jabber support.
##### Audio / Phonon
Tomahawk requires phonon-vlc >= 0.4.1 or phonon-gstreamer >= 4.6.1 (esp. phonon-xine in any version will not work!).
### Icon caches
In openSUSE there are macros for updating icon caches in KDE and GNOME (```%desktop_database_post[un]``` ```%icon_theme_cache_post[un]```) after [un]installation, check if your distribution offers the same.
### Firewall
Tomahawk offers P2P functionality, if your distribution offers a default firewall, it's nice to support a default profile for the standard Tomahawk P2P-port (50210). (cf. [openSUSE integration](https://build.opensuse.org/package/view_file/KDE:Extra/tomahawk/tomahawk.SuSEfirewall2?expand=1))

179
README.md
View File

@@ -1,157 +1,68 @@
# TOMAHAWK
Tomahawk
========
## WHAT TOMAHAWK IS
Compiling and running Tomahawk
------------------------------
Tomahawk is a free multi-source and cross-platform music player. An application that can play not only your local files, but also stream from services like Spotify, Beats, SoundCloud, Google Music, YouTube and many others. You can even connect with your friends' Tomahawks, share your musical gems or listen along to them. Let the music play!
![Tomahawk Screenshot](/data/screenshots/tomahawk-screenshot.png?raw=true)
## HOW TOMAHAWK WORKS
Tomahawk is basically a **music metadata player**. At its core it decouples the metadata about a song from the source and reassembles it for each user based on their individual music accessibility and rights. In short, given the name of a song and artist Tomahawk will find the right source, for the right user at the right time. This fundamentally different approach to music enables a range of new music consumption and sharing experiences previously not possible.
## MUSIC SOURCES
* Local music library (MP3, Ogg, FLAC and many other formats)
* Networked music libraries (other connected computers)
### Subscription Music Services
* Spotify
* Beats Music
* Google Play Music (on-demand streaming and music locker)
* Grooveshark
* Rdio (Android only)
* Deezer (Android only)
### Free Streaming/Music Promotion Platforms
* Soundcloud
* Bandcamp
* Last.fm
* Jamendo
* Official.fm
### Network/Cloud storage
* Ampache
* Owncloud
* Subsonic
* Beets
Third party-developed resolvers have also been written for services like YouTube, Qobuz and others. We've also heard of digital music distributors writing their own for their internal CMSes to help them navigate and preview their content. That's cool.
Packaged binary resolvers (.axes) are available: [here](http://teom.org/axes).
Source code (and examples) can be found in our [Resolver repository](https://github.com/tomahawk-player/tomahawk-resolvers).
## DOWNLOAD TOMAHAWK
You can download one of our nightly or stable builds:
| *BUILD* | MAC / OSX | WINDOWS | LINUX |
|:-------:|:---------:|:-------:|:-----:|
|**NIGHTLY** | [**latest**](http://download.tomahawk-player.org/nightly/mac/Tomahawk-latest.dmg) | [**latest**](http://download.tomahawk-player.org/nightly/windows/tomahawk-latest.exe) | [**latest**] (https://launchpad.net/~tomahawk/+archive/ubuntu/nightly) (Ubuntu) |
|**STABLE** | [**0.8**](http://download.tomahawk-player.org/Tomahawk-0.8.0.dmg) | [**0.8**](http://download.tomahawk-player.org/tomahawk-0.8.0.exe) | [**0.8**](http://www.tomahawk-player.org/#page-about) (various distros) |
## BUILD TOMAHAWK
... or you can compile it yourself:
Compile:
$ mkdir build && cd build
$ cmake ..
$ make
### Detailed Build Instructions
Start the application on Linux:
**LINUX**
$ ./tomahawk
* [Arch](http://wiki.tomahawk-player.org/index.php/Building_ArchLinux_package)
* [Debian](http://wiki.tomahawk-player.org/index.php/Building_on_Debian)
* [Fedora](http://wiki.tomahawk-player.org/index.php/Building_on_Fedora)
* [openSUSE](http://wiki.tomahawk-player.org/index.php/Building_on_openSUSE)
* [Ubuntu](http://wiki.tomahawk-player.org/index.php/Building_on_Ubuntu)
Start the application on OS X:
**MAC**
$ open tomahawk.app
* [OS X](http://wiki.tomahawk-player.org/index.php/Building_OS_X_Application_Bundle)
**WINDOWS**
Detailed building instructions for Ubuntu
-----------------------------------------
See: http://wiki.tomahawk-player.org/index.php/Building_Binary_on_Ubuntu_Precise_(12.04)
* [Windows](http://wiki.tomahawk-player.org/index.php/Building_Windows_Binary)
Detailed building instructions for OS X
---------------------------------------
See: http://wiki.tomahawk-player.org/index.php/Building_OS_X_Application_Bundle
### Dependencies
Doxygen Documentation
---------------------
See: http://dev.tomahawk-player.org/api/classes.html
Dependencies
------------
Required dependencies:
* [CMake 2.8.6](http://www.cmake.org/)
* [Qt 4.7.0](http://qt-project.org/)
* [Phonon 4.6.0](http://phonon.kde.org/)
* [QJson 0.8.1](http://qjson.sourceforge.net/)
* [SQLite 3.6.22](http://www.sqlite.org/)
* [TagLib 1.8](http://developer.kde.org/~wheeler/taglib.html)
* [Boost 1.3](http://www.boost.org/)
* [Lucene++ 3.0.6](https://github.com/luceneplusplus/LucenePlusPlus/)
* [libechonest 2.2.0](http://projects.kde.org/projects/playground/libs/libechonest/)
* [Attica 0.4.0](http://ftp.kde.org/stable/attica/)
* [QuaZip 0.4.3](http://quazip.sourceforge.net/)
* [liblastfm 1.0.1](https://github.com/lastfm/liblastfm/)
* [QtKeychain 0.1](https://github.com/frankosterfeld/qtkeychain/)
* [Sparsehash](https://code.google.com/p/sparsehash/)
* [GnuTLS](http://gnutls.org/)
* CMake 2.8.6 - http://www.cmake.org/
* Qt 4.7.0 - http://qt-project.org/
* Phonon 4.6.0 - http://phonon.kde.org/
* QJson 0.7.1 - http://qjson.sourceforge.net/
* SQLite 3.6.22 - http://www.sqlite.org/
* TagLib 1.6.2 - http://developer.kde.org/~wheeler/taglib.html
* Boost 1.3 - http://www.boost.org/
* CLucene 0.9.23 (0.9.21 will fail) - http://clucene.sourceforge.net/download.shtml
* libechonest 2.0.3 - http://projects.kde.org/projects/playground/libs/libechonest/
* Attica 0.4.0 - ftp://ftp.kde.org/pub/kde/stable/attica/
* QuaZip 0.4.3 - http://quazip.sourceforge.net/
* liblastfm 1.0.1 - https://github.com/lastfm/liblastfm/
* QtKeychain 0.1 - https://github.com/frankosterfeld/qtkeychain/
The following dependencies are optional (but *recommended*):
The following dependencies are optional, but recommended:
* [Jreen 1.0.5](http://qutim.org/jreen/) (1.1.0 will fail, 1.1.1 is fine)
* [Snorenotify](https://github.com/Snorenotify/Snorenotify/)
* Jreen 1.0.5 (1.1.0 will fail, 1.1.1 is fine) - http://qutim.org/jreen/
* QTweetLib 0.5.0 - https://github.com/minimoog/QTweetLib/
Third party libraries that we ship with our source:
* [MiniUPnP 1.6](http://miniupnp.free.fr/)
* [Qocoa](https://github.com/mikemcquaid/Qocoa/)
* [libqnetwm](https://code.google.com/p/libqnetwm/)
* [libqxt](http://libqxt.org/) (QxtWeb module)
* [SPMediaKeyTap](https://github.com/nevyn/SPMediaKeyTap/)
* [kdSingleApplicationGuard](http://www.kdab.com/)
* MiniUPnP 1.6 - http://miniupnp.free.fr/
* Breakpad - http://code.google.com/p/google-breakpad/
* Qocoa - https://github.com/mikemcquaid/Qocoa/
* libqnetwm - http://code.google.com/p/libqnetwm/
* libqxt (QxtWeb module) - http://libqxt.org/
* SPMediaKeyTap - https://github.com/nevyn/SPMediaKeyTap/
* kdSingleApplicationGuard - http://www.kdab.com/
## SUPPORT TOMAHAWK
* [Bug Tracker & Issues](https://bugs.tomahawk-player.org/secure/Dashboard.jspa)
* [Translations](https://www.transifex.com/projects/p/tomahawk/)
* [Donate](https://flattr.com/thing/169312/Tomahawk)
## GET HELP
* [Support & Feedback](https://tomahawk.uservoice.com)
* Chat with Us (IRC): #tomahawk (on Freenode)
* [Twitter](https://twitter.com/tomahawk)
* [Facebook](https://facebook.com/tomahawkplayer)
* [Developer API documentation](http://dev.tomahawk-player.org/api/classes.html)
## SCREENSHOTS
BROWSE FRIENDS' MUSIC & LISTEN ALONG
![Browse](https://dchtm6r471mui.cloudfront.net/hackpad.com_ZRZMJDdxrVe_p.242147_1410998050088_listen-along.jpg)
INBOX - RECEIVED & FORWARDING
![Inbox](https://dchtm6r471mui.cloudfront.net/hackpad.com_ZRZMJDdxrVe_p.242147_1410997751044_inbox.jpg)
CHARTS - BILLBOARD'S TASTEMAKER ALBUMS
![Charts](https://dchtm6r471mui.cloudfront.net/hackpad.com_ZRZMJDdxrVe_p.242147_1410997901969_charts.jpg)
FRIEND FEED
![Feed](https://dchtm6r471mui.cloudfront.net/hackpad.com_ZRZMJDdxrVe_p.242147_1410971283885_heroshot.png)
DYNAMIC (AUTO-UPDATING) PLAYLIST
![Xspf](https://dchtm6r471mui.cloudfront.net/hackpad.com_ZRZMJDdxrVe_p.242147_1410998362549_dynamic-playlist-1.jpg)
PLUG-INS / RESOLVER SETTINGS
![Settings](https://dchtm6r471mui.cloudfront.net/hackpad.com_ZRZMJDdxrVe_p.242147_1410998587408_prefs.jpg)
**Enjoy!**
Enjoy!

View File

@@ -1,116 +0,0 @@
include( CMakeParseArguments )
function(tomahawk_add_library)
# parse arguments (name needs to be saved before passing ARGN into the macro)
set(NAME ${ARGV0})
set(options NO_INSTALL NO_VERSION)
set(oneValueArgs NAME TYPE EXPORT_MACRO TARGET TARGET_TYPE EXPORT VERSION SOVERSION INSTALL_BINDIR)
set(multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS QT5_MODULES)
cmake_parse_arguments(LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(LIBRARY_NAME ${NAME})
# message("*** Arguments for ${LIBRARY_NAME}")
# message("Sources: ${LIBRARY_SOURCES}")
# message("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
# message("UI: ${LIBRARY_UI}")
# message("TARGET_TYPE: ${LIBRARY_TARGET_TYPE}")
# message("EXPORT_MACRO: ${LIBRARY_EXPORT_MACRO}")
# message("NO_INSTALL: ${LIBRARY_NO_INSTALL}")
set(target ${LIBRARY_NAME})
# qt stuff
include_directories(${CMAKE_CURRENT_LIST_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(LIBRARY_UI)
qt_wrap_ui(LIBRARY_UI_SOURCES ${LIBRARY_UI})
list(APPEND LIBRARY_SOURCES ${LIBRARY_UI_SOURCES})
endif()
# add resources from current dir
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/resources.qrc")
qt_add_resources(LIBRARY_RC_SOURCES "resources.qrc")
list(APPEND LIBRARY_SOURCES ${LIBRARY_RC_SOURCES})
unset(LIBRARY_RC_SOURCES)
endif()
# add target
if(LIBRARY_TARGET_TYPE STREQUAL "STATIC")
add_library(${target} STATIC ${LIBRARY_SOURCES})
elseif(LIBRARY_TARGET_TYPE STREQUAL "MODULE")
add_library(${target} MODULE ${LIBRARY_SOURCES})
else() # default
add_library(${target} SHARED ${LIBRARY_SOURCES})
endif()
# HACK: add qt modules - every lib should define its own set of modules
qt5_use_modules(${target} Core Network Widgets Sql Xml DBus ${LIBRARY_QT5_MODULES})
# definitions - can this be moved into set_target_properties below?
add_definitions(${QT_DEFINITIONS})
set_target_properties(${target} PROPERTIES AUTOMOC TRUE)
add_definitions(${TOMAHAWK_DEFINITIONS})
if(LIBRARY_EXPORT_MACRO)
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_EXPORT_MACRO})
endif()
if(LIBRARY_COMPILE_DEFINITIONS)
# Dear CMake, i hate you! Sincerely, domme
# At least in CMake 2.8.8, you CANNOT set more than one COMPILE_DEFINITIONS value
# only takes the first one if called multiple times or bails out with wrong number of arguments
# when passing in a list, thus i redefine the export macro here in hope it won't mess up other targets
# Dear domme,
# "The COMPILE_DEFINITIONS property may be set to a semicolon-separated list"
# Sincerely, CMake Documentation
add_definitions( "-D${LIBRARY_EXPORT_MACRO}" )
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${LIBRARY_COMPILE_DEFINITIONS})
endif()
# add link targets
target_link_libraries(${target} ${TOMAHAWK_LIBRARIES})
if(LIBRARY_LINK_LIBRARIES)
target_link_libraries(${target} ${LIBRARY_LINK_LIBRARIES})
endif()
if(LIBRARY_LINK_PRIVATE_LIBRARIES)
target_link_libraries(${target} LINK_PRIVATE ${LIBRARY_LINK_PRIVATE_LIBRARIES})
endif()
# add soversion
if(NOT LIBRARY_NO_VERSION)
set_target_properties(${target} PROPERTIES VERSION ${LIBRARY_VERSION})
if(NOT LIBRARY_SOVERSION)
set(LIBRARY_SOVERSION ${LIBRARY_VERSION})
endif()
set_target_properties(${target} PROPERTIES SOVERSION ${LIBRARY_SOVERSION})
endif()
if(NOT LIBRARY_INSTALL_BINDIR)
set(LIBRARY_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}")
endif()
# make installation optional, maybe useful for dummy plugins one day
if(NOT LIBRARY_NO_INSTALL)
include(GNUInstallDirs)
if(NOT LIBRARY_EXPORT)
install( TARGETS ${target}
RUNTIME DESTINATION ${LIBRARY_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
else()
install( TARGETS ${target}
EXPORT ${LIBRARY_EXPORT}
RUNTIME DESTINATION ${LIBRARY_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()
endif()
endfunction()

View File

@@ -1,14 +1,50 @@
include( CMakeParseArguments )
include( ${TOMAHAWK_CMAKE_DIR}/TomahawkAddLibrary.cmake )
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
SET(DEFAULT_ARGS)
FOREACH(arg_name ${arg_names})
SET(${prefix}_${arg_name})
ENDFOREACH(arg_name)
FOREACH(option ${option_names})
SET(${prefix}_${option} FALSE)
ENDFOREACH(option)
function(tomahawk_add_plugin)
# parse arguments (name needs to be saved before passing ARGN into the macro)
set(NAME ${ARGV0})
set(options NO_INSTALL SHARED_LIB)
set(oneValueArgs NAME TYPE EXPORT_MACRO)
set(multiValueArgs SOURCES UI LINK_LIBRARIES COMPILE_DEFINITIONS)
cmake_parse_arguments(PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(PLUGIN_NAME ${NAME})
SET(current_arg_name DEFAULT_ARGS)
SET(current_arg_list)
FOREACH(arg ${ARGN})
SET(larg_names ${arg_names})
LIST(FIND larg_names "${arg}" is_arg_name)
IF (is_arg_name GREATER -1)
SET(${prefix}_${current_arg_name} ${current_arg_list})
SET(current_arg_name ${arg})
SET(current_arg_list)
ELSE (is_arg_name GREATER -1)
SET(loption_names ${option_names})
LIST(FIND loption_names "${arg}" is_option)
IF (is_option GREATER -1)
SET(${prefix}_${arg} TRUE)
ELSE (is_option GREATER -1)
SET(current_arg_list ${current_arg_list} ${arg})
ENDIF (is_option GREATER -1)
ENDIF (is_arg_name GREATER -1)
ENDFOREACH(arg)
SET(${prefix}_${current_arg_name} ${current_arg_list})
ENDMACRO(PARSE_ARGUMENTS)
MACRO(CAR var)
SET(${var} ${ARGV1})
ENDMACRO(CAR)
MACRO(CDR var junk)
SET(${var} ${ARGN})
ENDMACRO(CDR)
macro(tomahawk_add_plugin)
parse_arguments(PLUGIN
"SOURCES;UI;LINK_LIBRARIES;TYPE;EXPORT_MACRO;COMPILE_DEFINITIONS"
"NO_INSTALL;SHARED_LIB"
${ARGN}
)
car(PLUGIN_NAME ${PLUGIN_DEFAULT_ARGS})
# message("*** Arguments for ${PLUGIN_NAME}")
# message("Sources: ${PLUGIN_SOURCES}")
@@ -16,40 +52,55 @@ function(tomahawk_add_plugin)
# message("UI: ${PLUGIN_UI}")
# message("TYPE: ${PLUGIN_TYPE}")
# message("EXPORT_MACRO: ${PLUGIN_EXPORT_MACRO}")
# message("NO_INSTALL: ${PLUGIN_NO_INSTALL}")
# create target name once for convenience
set(target "tomahawk_${PLUGIN_TYPE}_${PLUGIN_NAME}")
# determine target type
if(NOT ${PLUGIN_SHARED_LIB})
set(target_type "MODULE")
else()
set(target_type "SHARED")
endif()
list(APPEND tomahawk_add_library_args
"${target}"
"EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}"
"TARGET_TYPE" "${target_type}"
"SOURCES" "${PLUGIN_SOURCES}"
)
# qt stuff
include_directories(${CMAKE_CURRENT_BINARY_DIR})
if(PLUGIN_UI)
list(APPEND tomahawk_add_library_args "UI" "${PLUGIN_UI}")
qt_wrap_ui(PLUGIN_UI_SOURCES ${PLUGIN_UI})
list(APPEND PLUGIN_SOURCES ${PLUGIN_UI_SOURCES})
endif()
if(PLUGIN_LINK_LIBRARIES)
list(APPEND tomahawk_add_library_args "LINK_LIBRARIES" "${PLUGIN_LINK_LIBRARIES}")
if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/resources.qrc")
qt_add_resources(PLUGIN_RC_SOURCES "resources.qrc")
list(APPEND PLUGIN_SOURCES ${PLUGIN_RC_SOURCES})
unset(PLUGIN_RC_SOURCES)
endif()
# add target
if(NOT ${PLUGIN_SHARED_LIB})
add_library(${target} MODULE ${PLUGIN_SOURCES})
else()
add_library(${target} SHARED ${PLUGIN_SOURCES})
endif()
# add qt modules
qt5_use_modules(${target} Core Network Widgets Sql Xml DBus)
# definitions - can this be moved into set_target_properties below?
add_definitions(${QT_DEFINITIONS})
set_target_properties(${target} PROPERTIES AUTOMOC TRUE COMPILE_DEFINITIONS ${PLUGIN_EXPORT_MACRO})
if(PLUGIN_COMPILE_DEFINITIONS)
list(APPEND tomahawk_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS})
# Dear CMake, i hate you! Sincerely, domme
# At least in CMake 2.8.8, you CANNOT set more than one COMPILE_DEFINITIONS value
# only takes the first one if called multiple times or bails out with wrong number of arguments
# when passing in a list, thus i redefine the export macro here in hope it won't mess up other targets
add_definitions( "-D${PLUGIN_EXPORT_MACRO}" )
set_target_properties(${target} PROPERTIES COMPILE_DEFINITIONS ${PLUGIN_COMPILE_DEFINITIONS})
endif()
list(APPEND tomahawk_add_library_args "NO_VERSION")
# add link targets
target_link_libraries(${target} ${TOMAHAWK_LIBRARIES})
if(PLUGIN_LINK_LIBRARIES)
target_link_libraries(${target} ${PLUGIN_LINK_LIBRARIES})
endif()
list(APPEND tomahawk_add_library_args "INSTALL_BINDIR" "${CMAKE_INSTALL_LIBDIR}")
tomahawk_add_library(${tomahawk_add_library_args})
endfunction()
# make installation optional, maybe useful for dummy plugins one day
if(NOT PLUGIN_NO_INSTALL)
include(GNUInstallDirs)
install(TARGETS ${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endmacro()

34
TomahawkUse.cmake Normal file
View File

@@ -0,0 +1,34 @@
#FIXME: this only handles qt4 and duplicates top level cmakelists: how can we reduce code duplication?
find_package(Qt4 COMPONENTS QtNetwork QtCore QtGui QtSql QtDeclarative REQUIRED)
include( ${QT_USE_FILE} )
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
if(BUILD_GUI OR NOT DEFINED BUILD_GUI)
list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg" "QtDeclarative")
endif()
find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS})
include( ${QT_USE_FILE} )
macro(qt5_use_modules)
endmacro()
macro(qt_wrap_ui)
qt4_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt4_add_resources(${ARGN})
endmacro()
macro(qt_add_translation)
qt4_add_translation(${ARGN})
endmacro()
if(NOT TOMAHAWK_CMAKE_DIR)
set(TOMAHAWK_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR})
endif()
include( "${TOMAHAWK_CMAKE_DIR}/TomahawkAddPlugin.cmake" )

View File

@@ -1,63 +0,0 @@
#FIXME: this duplicates top level cmakelists: how can we reduce code duplication?
set( TOMAHAWK_QT5 @TOMAHAWK_QT5@ )
if(TOMAHAWK_QT5)
find_package(Qt5Core)
find_package(Qt5Network)
find_package(Qt5Gui)
find_package(Qt5Sql)
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
if(BUILD_GUI OR NOT DEFINED BUILD_GUI)
find_package(Qt5Widgets)
find_package(Qt5Svg)
endif()
macro(qt_wrap_ui)
qt5_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt5_add_resources(${ARGN})
endmacro()
find_package(Qt5LinguistTools REQUIRED)
macro(qt_add_translation)
qt5_add_translation(${ARGN})
endmacro()
else(TOMAHAWK_QT5)
find_package(Qt4 COMPONENTS QtNetwork QtCore QtGui QtSql REQUIRED)
include( ${QT_USE_FILE} )
set(NEEDED_QT4_COMPONENTS "QtCore" "QtXml" "QtNetwork")
if(BUILD_GUI OR NOT DEFINED BUILD_GUI)
list(APPEND NEEDED_QT4_COMPONENTS "QtGui" "QtWebkit" "QtUiTools" "QtSvg")
endif()
find_package(Qt4 4.7.0 COMPONENTS ${NEEDED_QT4_COMPONENTS})
include( ${QT_USE_FILE} )
macro(qt5_use_modules)
endmacro()
macro(qt_wrap_ui)
qt4_wrap_ui(${ARGN})
endmacro()
macro(qt_add_resources)
qt4_add_resources(${ARGN})
endmacro()
macro(qt_add_translation)
qt4_add_translation(${ARGN})
endmacro()
endif(TOMAHAWK_QT5)
if(NOT TOMAHAWK_CMAKE_DIR)
set(TOMAHAWK_CMAKE_DIR ${CMAKE_CURRENT_LIST_DIR})
endif()
include( "${TOMAHAWK_CMAKE_DIR}/TomahawkAddLibrary.cmake" )
include( "${TOMAHAWK_CMAKE_DIR}/TomahawkAddPlugin.cmake" )

View File

@@ -23,7 +23,7 @@
<key>CFBundleName</key>
<string>Tomahawk</string>
<key>LSMinimumSystemVersion</key>
<string>10.7.0</string>
<string>10.5.0</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
@@ -63,174 +63,6 @@
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>jspf</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>Generic.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/jspf</string>
</array>
<key>CFBundleTypeName</key>
<string>JSPF Playlist</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>mp3</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>mp3.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/mpeg</string>
</array>
<key>CFBundleTypeName</key>
<string>MPEG Audio Layer 3</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>oga</string>
<string>ogg</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>ogg.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/ogg</string>
</array>
<key>CFBundleTypeName</key>
<string>Ogg Audio File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>opus</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>ogg.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/opus</string>
<string>application/opus</string>
<string>audio/ogg; codecs=opus</string>
</array>
<key>CFBundleTypeName</key>
<string>OPUS file</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>aac</string>
<string>mp4</string>
<string>m4a</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>audio.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/aac</string>
<string>audio/mp4</string>
</array>
<key>CFBundleTypeName</key>
<string>AAC file</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>mpc</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>audio.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/x-musepack</string>
<string>audio/mpc</string>
</array>
<key>CFBundleTypeName</key>
<string>Musepack Audio File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>wma</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>audio.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/x-ms-wma</string>
</array>
<key>CFBundleTypeName</key>
<string>Windows Media Audio</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>flac</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>audio.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/flac</string>
</array>
<key>CFBundleTypeName</key>
<string>FLAC Audio File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>aiff</string>
<string>aif</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>audio.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/aiff</string>
</array>
<key>CFBundleTypeName</key>
<string>AIFF File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>wv</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>audio.icns</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>audio/x-wavpack</string>
</array>
<key>CFBundleTypeName</key>
<string>WavePack Audio File</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
</dict>
</array>
</dict>
</plist>

View File

@@ -1,11 +1,9 @@
#!/bin/bash
#
# Usage: ./admin/mac/build-release-osx.sh VERSION CERT_SIGNER [--no-clean]
# Usage: ./admin/mac/build-release-osx.sh [--no-clean]
#
################################################################################
set -e
function header {
echo -e "\033[0;34m==>\033[0;0;1m $1 \033[0;0m"
@@ -18,44 +16,43 @@ function die {
}
################################################################################
if [ -z "$2" ]
if [ -z $1 ]
then
echo This script expects the version number and cert-signer as parameters, e.g. "1.0.0 John Doe"
echo This script expects the version number as a parameter, e.g. 1.0.0
exit 1
fi
ROOT=`pwd`
VERSION=$1
CERT_SIGNER=$2
################################################################################
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
cp $ROOT/../admin/mac/qt.conf Contents/Resources/qt.conf
header "Copying Sparkle framework"
rm -rf Contents/Frameworks/Sparkle.framework
cp -R /Library/Frameworks/Sparkle.framework Contents/Frameworks/
cp -R /Library/Frameworks/Sparkle.framework Contents/Frameworks
header "Creating DMG"
cd ..
header "Signing bundle"
codesign -s "Developer ID Application: $CERT_SIGNER" -f -v ./Tomahawk.app
if [ -f ~/sign_step.sh ];
then
~/sign_step.sh "$CERT_SIGNER" "Tomahawk.app"
fi
codesign -s "Developer ID Application: Leonardo Franchi" -f -v ./Tomahawk.app
$ROOT/../admin/mac/create-dmg.sh Tomahawk.app
mv Tomahawk.dmg Tomahawk-$VERSION.dmg
header "Creating signed Sparkle update"
$ROOT/../admin/mac/sign_bundle.rb $VERSION ~/tomahawk_sparkle_privkey.pem
mv Tomahawk.app tomahawk.app
header "Done!"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -1,5 +1,5 @@
#!/usr/bin/python
# This file is part of Tomahawk.
# This file is part of Tomahawk.
# It was inspired in large part by the macdeploy script in Clementine.
#
# Clementine is free software: you can redistribute it and/or modify
@@ -26,162 +26,162 @@ FRAMEWORK_SEARCH_PATH=[
os.path.join(os.environ['HOME'], 'Library/Frameworks')
]
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Cellar/gettext/0.19.2/lib', '.']
LIBRARY_SEARCH_PATH=['/usr/local/lib', '/usr/local/Cellar/gettext/0.18.1.1/lib', '.']
VLC_PLUGINS=[
'access/libattachment_plugin.dylib',
#'access/libaccess_avio_plugin.dylib',
#'access/libaccess_fake_plugin.dylib',
'access/libftp_plugin.dylib',
'access/libhttp_plugin.dylib',
'access/libimem_plugin.dylib',
#'access/libaccess_mmap_plugin.dylib',
'access/libaccess_mms_plugin.dylib',
'access/libaccess_realrtsp_plugin.dylib',
'access/libtcp_plugin.dylib',
'access/libudp_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',
#'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/libfloat_mixer_plugin.dylib',
'libaccess_attachment_plugin.dylib',
#'libaccess_avio_plugin.dylib',
#'libaccess_fake_plugin.dylib',
'libaccess_ftp_plugin.dylib',
'libaccess_http_plugin.dylib',
'libaccess_imem_plugin.dylib',
#'libaccess_mmap_plugin.dylib',
'libaccess_mms_plugin.dylib',
'libaccess_realrtsp_plugin.dylib',
'libaccess_tcp_plugin.dylib',
'libaccess_udp_plugin.dylib',
'libcdda_plugin.dylib',
'libfilesystem_plugin.dylib',
'libqtcapture_plugin.dylib',
'librtp_plugin.dylib',
'libzip_plugin.dylib',
'libaccess_output_dummy_plugin.dylib',
'libaccess_output_file_plugin.dylib',
'libaccess_output_http_plugin.dylib',
'libaccess_output_shout_plugin.dylib',
'libaccess_output_udp_plugin.dylib',
'liba52tofloat32_plugin.dylib',
'liba52tospdif_plugin.dylib',
'libaudio_format_plugin.dylib',
'libaudiobargraph_a_plugin.dylib',
'libchorus_flanger_plugin.dylib',
'libconverter_fixed_plugin.dylib',
'libdolby_surround_decoder_plugin.dylib',
'libdtstofloat32_plugin.dylib',
'libdtstospdif_plugin.dylib',
'libequalizer_plugin.dylib',
'libheadphone_channel_mixer_plugin.dylib',
'libmono_plugin.dylib',
'libmpgatofixed32_plugin.dylib',
'libnormvol_plugin.dylib',
'libparam_eq_plugin.dylib',
'libscaletempo_plugin.dylib',
'libsimple_channel_mixer_plugin.dylib',
'libspatializer_plugin.dylib',
'libtrivial_channel_mixer_plugin.dylib',
'libugly_resampler_plugin.dylib',
'libfloat32_mixer_plugin.dylib',
#'libspdif_mixer_plugin.dylib',
#'libtrivial_mixer_plugin.dylib',
#'libaout_file_plugin.dylib',
'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',
'libaout_file_plugin.dylib',
'libauhal_plugin.dylib',
'liba52_plugin.dylib',
'libadpcm_plugin.dylib',
'libaes3_plugin.dylib',
'libaraw_plugin.dylib',
'libavcodec_plugin.dylib',
'libcc_plugin.dylib',
'libcdg_plugin.dylib',
'libdts_plugin.dylib',
'libfaad_plugin.dylib',
#'libfake_plugin.dylib',
'codec/libflac_plugin.dylib',
#'libfluidsynth_plugin.dylib',
'libflac_plugin.dylib',
'libfluidsynth_plugin.dylib',
#'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',
#'libhotkeys_plugin.dylib',
#'libmotion_plugin.dylib',
#'libnetsync_plugin.dylib',
'liblpcm_plugin.dylib',
'libmpeg_audio_plugin.dylib',
'libpng_plugin.dylib',
'librawvideo_plugin.dylib',
'libspeex_plugin.dylib',
'libspudec_plugin.dylib',
'libtheora_plugin.dylib',
'libtwolame_plugin.dylib',
'libvorbis_plugin.dylib',
'libgestures_plugin.dylib',
'libhotkeys_plugin.dylib',
'libmotion_plugin.dylib',
'libnetsync_plugin.dylib',
#'libsignals_plugin.dylib',
'demux/libaiff_plugin.dylib',
'demux/libasf_plugin.dylib',
'demux/libau_plugin.dylib',
'libaiff_plugin.dylib',
'libasf_plugin.dylib',
'libau_plugin.dylib',
#'libavformat_plugin.dylib',
'demux/libavi_plugin.dylib',
'demux/libdemux_cdg_plugin.dylib',
'demux/libdemuxdump_plugin.dylib',
'demux/libdiracsys_plugin.dylib',
'demux/libes_plugin.dylib',
'demux/libflacsys_plugin.dylib',
'access/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',
#'libaudioscrobbler_plugin.dylib',
'control/libdummy_plugin.dylib',
'misc/libexport_plugin.dylib',
#'libfreetype_plugin.dylib',
#'libgnutls_plugin.dylib',
'misc/liblogger_plugin.dylib',
'lua/liblua_plugin.dylib',
#'libosd_parser_plugin.dylib',
#'libquartztext_plugin.dylib',
#'libstats_plugin.dylib',
'misc/libvod_rtsp_plugin.dylib',
'misc/libxml_plugin.dylib',
'libavi_plugin.dylib',
'libdemux_cdg_plugin.dylib',
'libdemuxdump_plugin.dylib',
'libdirac_plugin.dylib',
'libes_plugin.dylib',
'libflacsys_plugin.dylib',
'liblive555_plugin.dylib',
'libmkv_plugin.dylib',
'libmod_plugin.dylib',
'libmp4_plugin.dylib',
'libmpc_plugin.dylib',
'libmpgv_plugin.dylib',
'libnsc_plugin.dylib',
'libnsv_plugin.dylib',
'libnuv_plugin.dylib',
'libogg_plugin.dylib',
'libplaylist_plugin.dylib',
'libps_plugin.dylib',
'libpva_plugin.dylib',
'librawaud_plugin.dylib',
'librawdv_plugin.dylib',
'librawvid_plugin.dylib',
'libreal_plugin.dylib',
'libsmf_plugin.dylib',
'libts_plugin.dylib',
'libtta_plugin.dylib',
'libty_plugin.dylib',
'libvc1_plugin.dylib',
'libvoc_plugin.dylib',
'libwav_plugin.dylib',
'libxa_plugin.dylib',
'libfolder_plugin.dylib',
'libtaglib_plugin.dylib',
'libaudioscrobbler_plugin.dylib',
'libdummy_plugin.dylib',
'libexport_plugin.dylib',
'libfreetype_plugin.dylib',
'libgnutls_plugin.dylib',
'liblogger_plugin.dylib',
'liblua_plugin.dylib',
'libosd_parser_plugin.dylib',
'libquartztext_plugin.dylib',
'libstats_plugin.dylib',
'libvod_rtsp_plugin.dylib',
'libxml_plugin.dylib',
#'libxtag_plugin.dylib',
'video_chroma/libi420_rgb_mmx_plugin.dylib',
'video_chroma/libi420_yuy2_mmx_plugin.dylib',
'video_chroma/libi422_yuy2_mmx_plugin.dylib',
#'libmemcpymmx_plugin.dylib',
#'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',
'video_chroma/libi420_rgb_sse2_plugin.dylib',
'video_chroma/libi420_yuy2_sse2_plugin.dylib',
'video_chroma/libi422_yuy2_sse2_plugin.dylib',
'stream_filter/libdecomp_plugin.dylib',
#'access/libstream_filter_rar_plugin.dylib',
'stream_filter/librecord_plugin.dylib',
#'libvisual_plugin.dylib',
'libi420_rgb_mmx_plugin.dylib',
'libi420_yuy2_mmx_plugin.dylib',
'libi422_yuy2_mmx_plugin.dylib',
'libmemcpymmx_plugin.dylib',
'libmemcpymmxext_plugin.dylib',
'libmux_asf_plugin.dylib',
'libmux_avi_plugin.dylib',
'libmux_dummy_plugin.dylib',
'libmux_mp4_plugin.dylib',
'libmux_mpjpeg_plugin.dylib',
'libmux_ogg_plugin.dylib',
'libmux_ps_plugin.dylib',
'libmux_ts_plugin.dylib',
'libmux_wav_plugin.dylib',
'libpacketizer_copy_plugin.dylib',
'libpacketizer_dirac_plugin.dylib',
'libpacketizer_flac_plugin.dylib',
'libpacketizer_h264_plugin.dylib',
'libpacketizer_mlp_plugin.dylib',
'libpacketizer_mpeg4audio_plugin.dylib',
'libpacketizer_mpeg4video_plugin.dylib',
'libpacketizer_mpegvideo_plugin.dylib',
'libpacketizer_vc1_plugin.dylib',
'libi420_rgb_sse2_plugin.dylib',
'libi420_yuy2_sse2_plugin.dylib',
'libi422_yuy2_sse2_plugin.dylib',
'libdecomp_plugin.dylib',
'libstream_filter_rar_plugin.dylib',
'libstream_filter_record_plugin.dylib',
'libvisual_plugin.dylib',
]
VLC_SEARCH_PATH=[
@@ -199,16 +199,11 @@ QT_PLUGINS = [
'imageformats/libqmng.dylib',
]
SNORE_PLUGINS = [
'libsnore_backend_growl.so',
'libsnore_backend_osxnotificationcenter.so',
]
TOMAHAWK_PLUGINS = [
'libtomahawk_account_xmpp.dylib',
'libtomahawk_account_xmpp.so',
'libtomahawk_account_google.so',
'libtomahawk_account_twitter.so',
'libtomahawk_account_zeroconf.so',
'libtomahawk_account_hatchet.so',
'libtomahawk_infoplugin_adium.so',
'libtomahawk_infoplugin_charts.so',
'libtomahawk_infoplugin_discogs.so',
@@ -218,22 +213,13 @@ TOMAHAWK_PLUGINS = [
'libtomahawk_infoplugin_musixmatch.so',
'libtomahawk_infoplugin_newreleases.so',
'libtomahawk_infoplugin_rovi.so',
'libtomahawk_infoplugin_snorenotify.so',
'libtomahawk_infoplugin_spotify.so',
'libtomahawk_viewpage_dashboard.so',
# 'libtomahawk_viewpage_networkactivity.so',
'libtomahawk_viewpage_charts.so',
'libtomahawk_viewpage_newreleases.so',
'libtomahawk_viewpage_whatsnew_0_8.so',
]
QT_PLUGINS_SEARCH_PATH=[
'/usr/local/Cellar/qt/HEAD/plugins',
'/usr/local/Cellar/qt/4.8.4/plugins',
]
SNORE_PLUGINS_SEARCH_PATH=[
'/usr/local/Cellar/snorenotify/0.5.2/lib/libsnore',
]
class Error(Exception):
pass
@@ -251,10 +237,6 @@ class CouldNotFindQtPluginError(Error):
pass
class CouldNotFindSnorePluginError(Error):
pass
class CouldNotFindVLCPluginError(Error):
pass
@@ -263,10 +245,12 @@ 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 = []
@@ -274,10 +258,6 @@ 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])
vlcplugins_dir = os.path.join(frameworks_dir, 'vlc', 'plugins')
commands.append(['mkdir', '-p', vlcplugins_dir])
snoreplugins_dir = os.path.join(binary_dir, 'libsnore')
commands.append(['mkdir', '-p', snoreplugins_dir])
resources_dir = os.path.join(bundle_dir, 'Contents', 'Resources')
commands.append(['mkdir', '-p', resources_dir])
plugins_dir = os.path.join(bundle_dir, 'Contents', 'qt-plugins')
@@ -389,12 +369,12 @@ def FixLibrary(path):
for library in broken_libs['libs']:
FixLibraryInstallPath(library, new_path)
def FixVLCPlugin(abs_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:]))
new_path = os.path.join(vlcplugins_dir, os.path.basename(abs_path))
new_path = os.path.join(plugins_dir, subdir, os.path.basename(abs_path))
args = ['mkdir', '-p', os.path.dirname(new_path)]
commands.append(args)
args = ['ditto', '--arch=i386', '--arch=x86_64', abs_path, new_path]
@@ -444,10 +424,8 @@ def CopyPlugin(path, subdir):
def CopyFramework(path):
parts = path.split(os.sep)
name = ''
for i, part in enumerate(parts):
if re.match(r'\w+\.framework', part):
name = part[:-10]
full_path = os.path.join(frameworks_dir, *parts[i:-1])
break
args = ['mkdir', '-p', full_path]
@@ -459,47 +437,9 @@ def CopyFramework(path):
menu_nib = os.path.join(os.path.split(path)[0], 'Resources', 'qt_menu.nib')
if os.path.exists(menu_nib):
args = ['cp', '-rf', menu_nib, resources_dir]
args = ['cp', '-r', menu_nib, resources_dir]
commands.append(args)
framework_versions_dir = os.path.join(full_path, '..', '..', 'Versions')
framework_resources_current_dir = os.path.join(full_path, 'Resources')
framework_resources_main_dir = os.path.join(full_path, '..', '..', 'Resources')
framework_current_version = full_path.split(os.sep)[-1]
# link /Versions/Current to /Versions/$currentVersion
args = ['ln', '-Fs', framework_current_version, os.path.join(framework_versions_dir, 'Current')]
commands.append(args)
# Copy Contents/Info.plist to Resources/Info.plist if Resources/Info.plist does not exist
# If Contents/Info.plist doesn't exist either, error out. If we actually see this, we can copy QtCore's Info.plist
info_plist_in_resources = os.path.join(os.path.split(path)[0], '..', '..', 'Resources', 'Info.plist')
if not os.path.exists(info_plist_in_resources):
info_plist_in_contents = os.path.join(os.path.split(path)[0], '..', '..', 'Contents', 'Info.plist')
args = ['mkdir', '-p', framework_resources_current_dir]
commands.append(args)
if os.path.exists(info_plist_in_contents):
args = ['cp', '-rf', info_plist_in_contents, framework_resources_current_dir]
commands.append(args)
else:
print "%s: Framework does not contain an Info.plist file in Contents/ or Resources/ folder." % (path)
sys.exit(-1)
# link /Resources to /Versions/Current/Resources
args = ['ln', '-Fs', 'Versions/Current/Resources', framework_resources_main_dir]
commands.append(args)
# link /$name to /Versions/Current/$name
args = ['ln', '-Fs', os.path.join('Versions/Current/', name), os.path.join(full_path, '..', '..', name)]
commands.append(args)
# HACK: CopyFramework is called repeatedly for the same frameworks, but we can't check for the existence of the link from python
# as the commands are only executed in the end, that's why we remove wrong symlinks afterwards
args = ['rm', '-rf', os.path.join(framework_resources_main_dir, 'Resources')]
commands.append(args)
args = ['rm', '-rf', os.path.join(framework_versions_dir, 'Current', framework_current_version)]
commands.append(args)
return os.path.join(full_path, parts[-1])
def FixId(path, library_name):
@@ -549,12 +489,6 @@ def FindQtPlugin(name):
return os.path.join(path, name)
raise CouldNotFindQtPluginError(name)
def FindSnorePlugin(name):
for path in SNORE_PLUGINS_SEARCH_PATH:
if os.path.exists(path):
if os.path.exists(os.path.join(path, name)):
return os.path.join(path, name)
raise CouldNotFindSnorePluginError(name)
def FindVLCPlugin(name):
for path in VLC_SEARCH_PATH:
@@ -566,14 +500,11 @@ def FindVLCPlugin(name):
FixBinary(binary)
for plugin in VLC_PLUGINS:
FixVLCPlugin(FindVLCPlugin(plugin))
FixVLCPlugin(FindVLCPlugin(plugin), '../plugins')
for plugin in TOMAHAWK_PLUGINS:
FixPlugin(plugin, '../MacOS')
for plugin in SNORE_PLUGINS:
FixPlugin(FindSnorePlugin(plugin), '../MacOS/libsnore')
try:
FixPlugin('tomahawk_crash_reporter', '../MacOS')
except:

View File

@@ -6,16 +6,14 @@ GenericName=Music Player
GenericName[de]=Musik Player
GenericName[fi]=Musiikkisoitin
GenericName[pl]=Odtwarzacz Muzyki
GenericName[ro]=Redare muzică
GenericName[se]=Musikspelare
TryExec=tomahawk
Exec=tomahawk %u
Comment=Tomahawk — Multi Source Music Player
Comment=Tomahawk — Social Music Player
Comment[fi]=Tomahawk sosiaalinen musiikkisoitin
Comment[pl]=Tomahawk Społecznościowy Odtwarzacz Muzyki
Comment[ro]=Tomahawk Redare muzică în mod social
Comment[se]=Tomahawk — Den Sociala Musikspelaren
Icon=tomahawk
Terminal=false
Categories=Qt;AudioVideo;Audio;Player;
MimeType=x-scheme-handler/tomahawk;x-scheme-handler/spotify;audio/aac;audio/mp4;audio/mpeg;audio/mpegurl;audio/vorbis;audio/x-flac;audio/x-mp3;audio/x-mpegurl;audio/x-ms-wma;audio/x-musepack;audio/x-oggflac;audio/opus;application/opus;audio/x-vorbis;application/x-ogm-audio;audio/x-vorbis+ogg;audio/ogg;application/xspf+xml;application/jspf;
MimeType=x-scheme-handler/tomahawk;x-scheme-handler/spotify;

View File

@@ -7,9 +7,7 @@ SET(CMAKE_SYSTEM_NAME Windows)
# specify the cross compiler
SET(CMAKE_C_COMPILER ${MINGW_PREFIX}-gcc)
SET(CMAKE_CXX_COMPILER ${MINGW_PREFIX}-g++)
SET(CMAKE_RC_COMPILER /usr/bin/${MINGW_PREFIX}-windres CACHE FILEPATH "windres")
SET(CMAKE_AR /usr/bin/${MINGW_PREFIX}-ar CACHE FILEPATH "ar")
SET(CMAKE_RC_COMPILER ${MINGW_PREFIX}-windres)
# where is the target environment containing libraries
SET(CMAKE_FIND_ROOT_PATH /usr/${MINGW_PREFIX}/sys-root/mingw)
@@ -28,11 +26,9 @@ SET(QT_PLUGINS_DIR ${CMAKE_FIND_ROOT_PATH}/lib/qt4/plugins)
SET(QT_MKSPECS_DIR ${CMAKE_FIND_ROOT_PATH}/share/qt4/mkspecs)
SET(QT_QT_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/include)
SET(QT_QMAKE_EXECUTABLE /usr/bin/${MINGW_PREFIX}-qmake CACHE FILEPATH "qmake" )
SET(QT_MOC_EXECUTABLE /usr/bin/${MINGW_PREFIX}-moc CACHE FILEPATH "moc")
SET(QT_RCC_EXECUTABLE /usr/bin/${MINGW_PREFIX}-rcc CACHE FILEPATH "rcc")
SET(QT_UIC_EXECUTABLE /usr/bin/${MINGW_PREFIX}-uic CACHE FILEPATH "uic")
SET(QT_LRELEASE_EXECUTABLE /usr/bin/${MINGW_PREFIX}-lrelease CACHE FILEPATH "lrelease")
# phonon -_-
SET(Automoc4_DIR "/usr/lib64/automoc4/")
# qt tools
SET(QT_QMAKE_EXECUTABLE ${MINGW_PREFIX}-qmake )
SET(QT_MOC_EXECUTABLE ${MINGW_PREFIX}-moc)
SET(QT_RCC_EXECUTABLE ${MINGW_PREFIX}-rcc)
SET(QT_UIC_EXECUTABLE ${MINGW_PREFIX}-uic)
SET(QT_LRELEASE_EXECUTABLE ${MINGW_PREFIX}-lrelease)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

@@ -50,7 +50,6 @@ tar xvjf pvlc.tar.bz2
# this is for vlc-2.x
cd vlc/plugins
rm -rvf \
video_*/ \
gui/ \
@@ -69,6 +68,7 @@ rm -rvf \
services_discovery/ \
visualization/ \
control/ \
misc/ \
**/libi420* \
**/libi422* \
mux/ \
@@ -77,8 +77,8 @@ rm -rvf \
**/liblibbluray_plugin* \
**/libdtv_plugin* \
**/*.dll.a \
**/*.la \
misc/liblogger_plugin*
**/*.la
echo "Downloaded and stripped VLC"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -1,14 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>tomahawk-icon-512x512</title>
<svg width="3100px" height="3100px" viewBox="0 0 3100 3100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>tomahawk-icon</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="Oval-1-+-Shape" sketch:type="MSLayerGroup" transform="translate(18.000000, 19.000000)">
<g id="Oval-1" transform="translate(0.927734, 0.927734)" fill-opacity="0.9" fill="#FFFFFF" sketch:type="MSShapeGroup">
<path d="M236.572266,473.144531 C367.227527,473.144531 473.144531,367.227527 473.144531,236.572266 C473.144531,105.917005 367.227527,0 236.572266,0 C105.917005,0 0,105.917005 0,236.572266 C0,367.227527 105.917005,473.144531 236.572266,473.144531 Z"></path>
</g>
<path d="M237.385542,0 C106.48012,0 -1.70530257e-13,106.48012 -1.70530257e-13,237.356928 C-1.70530257e-13,368.239458 106.48012,474.713855 237.385542,474.713855 C368.262349,474.713855 474.748193,368.239458 474.748193,237.356928 C474.74247,106.48012 368.262349,0 237.385542,0 L237.385542,0 Z M336.706325,394.261446 L336.706325,123.946386 L285.51506,123.946386 L280.07259,123.946386 L280.07259,215.672892 L152.234639,125.211145 C150.191566,123.774699 147.50753,123.58012 145.241265,124.684639 C142.975,125.875 141.567169,128.221386 141.567169,130.710843 L141.567169,342.761145 C141.567169,345.250602 142.975,347.574096 145.241265,348.73012 C146.208434,349.285241 147.284337,349.508434 148.337349,349.508434 C149.687952,349.508434 151.095783,349.062048 152.234639,348.289458 L280.07259,257.833434 L280.07259,418.137349 C266.343373,421.393675 252.081928,423.219277 237.385542,423.219277 C134.882831,423.219277 51.5231928,339.836747 51.5231928,237.362651 C51.5231928,134.888554 134.877108,51.5289157 237.385542,51.5289157 C339.859639,51.5289157 423.247892,134.882831 423.247892,237.362651 C423.242169,303.336145 388.647289,361.274699 336.706325,394.261446 L336.706325,394.261446 Z" id="Shape" fill="#FF004C" sketch:type="MSShapeGroup"></path>
<defs>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-1">
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="SourceGraphic"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<circle d="M1546,3051 C2374.42717,3051 3046,2379.42717 3046,1551 C3046,722.572834 2374.42717,51 1546,51 C717.572834,51 46,722.572834 46,1551 C46,2379.42717 717.572834,3051 1546,3051 Z M1546,3051" id="Oval 1" stroke="#979797" fill="#FFFFFF" sketch:type="MSShapeGroup" cx="1546" cy="1551" r="1500"></circle>
<g id="Group" sketch:type="MSLayerGroup" transform="translate(46.000000, 48.000000)">
<path d="M1500.00026,326.562245 C852.333832,326.562245 325.623384,853.409757 325.623384,1501.14467 C325.623384,2148.84339 852.297589,2675.87184 1500.00026,2675.87184 C1592.85982,2675.87184 1682.97119,2664.36909 1769.71967,2643.75096 L1769.71967,1630.53256 L961.97175,2202.26973 C954.812018,2207.15297 945.916593,2209.9744 937.346612,2209.9744 C930.693123,2209.9744 923.894994,2208.56369 917.783909,2205.05499 C903.464446,2197.74821 894.56902,2183.06231 894.56902,2167.32742 L894.56902,827.040286 C894.56902,811.305396 903.464445,796.474809 917.783909,788.951001 C932.103373,781.969774 949.026377,783.199628 961.97175,792.27884 L1769.71967,1364.0522 L1769.71967,784.284802 L1804.10807,784.284802 L2127.56161,784.284802 L2127.56161,2492.84071 C2455.75216,2284.34437 2674.34095,1918.13743 2674.34095,1501.10857 C2674.34087,853.446289 2147.48558,326.562245 1500.00026,326.562245 L1500.00026,326.562245 L1500.00026,326.562245" id="Shape" sketch:type="MSShapeGroup"></path>
<path d="M1500.00026,0.904613118 C672.870406,0.904613118 0.0726019231,673.923876 0.0726019231,1501.14494 C0.0726019231,2328.4023 672.870475,3001.38527 1500.00026,3001.38527 C2326.94928,3001.38527 2999.78337,2328.40223 2999.78337,1501.14494 C2999.74681,673.923394 2326.94887,0.904613118 1500.00026,0.904613118 L1500.00026,0.904613118 L1500.00026,0.904613118 M2127.56146,2492.87708 L2127.56146,784.321176 L1804.10793,784.321176 L1769.71952,784.321176 L1769.71952,1364.08857 L961.971604,792.315213 C949.06239,783.236001 932.103228,782.006148 917.783763,788.987375 C903.464299,796.511184 894.568874,811.341769 894.568874,827.076659 L894.568874,2167.3638 C894.568874,2183.09869 903.464299,2197.78459 917.783763,2205.09136 C923.894847,2208.60006 930.692976,2210.01078 937.346465,2210.01078 C945.880287,2210.01078 954.775711,2207.18935 961.971604,2202.30611 L1769.71952,1630.56893 L1769.71952,2643.78733 C1682.97105,2664.36929 1592.85968,2675.90821 1500.00012,2675.90821 C852.333686,2675.90821 325.623237,2148.87983 325.623237,1501.18104 C325.623237,853.482317 852.297442,326.598618 1500.00012,326.598618 C2147.48578,326.598618 2674.377,853.44613 2674.377,1501.18104 C2674.34087,1918.17376 2455.75215,2284.38047 2127.56146,2492.87708 L2072.56159,399.051282" id="Shape" fill="#E63E30" filter="url(#filter-1)" sketch:type="MSShapeGroup"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1,15 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="63px" height="63px" viewBox="0 0 63 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<svg width="55px" height="55px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>account-none</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50%" cy="0%" fx="50%" fy="0%" r="50%" id="radialGradient-1">
<stop stop-color="#000000" offset="0%"></stop>
<stop stop-color="#FFFFFF" offset="100%"></stop>
<radialGradient cx="50%" cy="42.571189%" fx="50%" fy="42.571189%" r="57.428813%" id="radialGradient-1">
<stop stop-color="rgb(113,114,112)" offset="0%"></stop>
<stop stop-color="rgb(60,60,60)" offset="100%"></stop>
</radialGradient>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<path d="M39.4882425,50.1164605 L31,62 L22.2995024,49.8193034 C9.95141137,46.556924 1,36.9024496 1,25.5 C1,11.4167382 14.6553143,0 31.5,0 C48.3446857,0 62,11.4167382 62,25.5 C62,37.2723466 52.4583986,47.1814694 39.4882425,50.1164605 Z" id="Triangle-1" fill="#000000" sketch:type="MSShapeGroup"></path>
<path d="M4.5,62 L56.5,62" id="Line" stroke="url(#radialGradient-1)" stroke-width="2" stroke-linecap="square" sketch:type="MSShapeGroup"></path>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="g430" fill="rgb(0,0,0)">
<path d="M6.25636752,11.5187741 C4.20816486,14.5775092 3,18.3321999 3,22.3856982 C3,31.7567891 9.30999994,39.4618424 17.6929998,40.778919 L17.6929998,49.303531 C17.6929998,50.1410367 18.2039998,50.8957889 18.9839998,51.2088565 C19.2339998,51.3085596 19.4939998,51.356417 19.7519999,51.356417 C20.3029999,51.356417 20.8429998,51.1360733 21.2399999,50.7242996 L22.9542104,48.9393602 L30.5949994,40.98331 L35.5949994,40.98331 C45.0989991,40.98331 52.8309995,32.6411552 52.8309995,22.385698 C52.8319998,12.131227 45.0989981,3.78908268 35.5950003,3.78908268 L20.2360001,3.78908268 C14.488848,3.78908268 9.3896678,6.83958098 6.25636752,11.5187741 Z M6.25636752,11.5187741" id="path432" fill="url(#radialGradient-1)"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,15 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="63px" height="63px" viewBox="0 0 63 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<svg width="55px" height="55px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>account-offline</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50%" cy="0%" fx="50%" fy="0%" r="50%" id="radialGradient-1">
<stop stop-color="#000000" offset="0%"></stop>
<stop stop-color="#FFFFFF" offset="100%"></stop>
<radialGradient cx="50%" cy="40.9965298%" fx="50%" fy="40.9965298%" r="132.924116%" id="radialGradient-1">
<stop stop-color="rgb(254,255,254)" offset="0%"></stop>
<stop stop-color="rgb(178,177,177)" offset="100%"></stop>
</radialGradient>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<path d="M39.4882425,50.1164605 L31,62 L22.2995024,49.8193034 C9.95141137,46.556924 1,36.9024496 1,25.5 C1,11.4167382 14.6553143,0 31.5,0 C48.3446857,0 62,11.4167382 62,25.5 C62,37.2723466 52.4583986,47.1814694 39.4882425,50.1164605 Z" id="Triangle-1" fill="#D6D6D6" sketch:type="MSShapeGroup"></path>
<path d="M4.5,62 L56.5,62" id="Line" stroke="url(#radialGradient-1)" stroke-width="2" stroke-linecap="square" sketch:type="MSShapeGroup"></path>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="g430" fill="rgb(0,0,0)">
<path d="M6.25636752,11.5187741 C4.20816486,14.5775092 3,18.3321999 3,22.3856982 C3,31.7567891 9.30999994,39.4618424 17.6929998,40.778919 L17.6929998,49.303531 C17.6929998,50.1410367 18.2039998,50.8957889 18.9839998,51.2088565 C19.2339998,51.3085596 19.4939998,51.356417 19.7519999,51.356417 C20.3029999,51.356417 20.8429998,51.1360733 21.2399999,50.7242996 L22.9542104,48.9393602 L30.5949994,40.98331 L35.5949994,40.98331 C45.0989991,40.98331 52.8309995,32.6411552 52.8309995,22.385698 C52.8319998,12.131227 45.0989981,3.78908268 35.5950003,3.78908268 L20.2360001,3.78908268 C14.488848,3.78908268 9.3896678,6.83958098 6.25636752,11.5187741 Z M6.25636752,11.5187741" id="path432" stroke="rgb(0,0,0)" stroke-width="0.25" fill="url(#radialGradient-1)"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,15 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="63px" height="63px" viewBox="0 0 63 63" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<svg width="55px" height="55px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>account-online</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<radialGradient cx="50%" cy="0%" fx="50%" fy="0%" r="50%" id="radialGradient-1">
<stop stop-color="#000000" offset="0%"></stop>
<stop stop-color="#FFFFFF" offset="100%"></stop>
</radialGradient>
</defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<path d="M39.4882425,50.1164605 L31,62 L22.2995024,49.8193034 C9.95141137,46.556924 1,36.9024496 1,25.5 C1,11.4167382 14.6553143,0 31.5,0 C48.3446857,0 62,11.4167382 62,25.5 C62,37.2723466 52.4583986,47.1814694 39.4882425,50.1164605 Z" id="Triangle-1" fill="#198DE7" sketch:type="MSShapeGroup"></path>
<path d="M4.5,62 L56.5,62" id="Line" stroke="url(#radialGradient-1)" stroke-width="2" stroke-linecap="square" sketch:type="MSShapeGroup"></path>
<defs></defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="g430" fill="rgb(113,175,250)">
<path d="M5.25636752,11.5187741 C3.20816486,14.5775092 2,18.3321999 2,22.3856982 C2,31.7567891 8.30999994,39.4618424 16.6929998,40.778919 L16.6929998,49.303531 C16.6929998,50.1410367 17.2039998,50.8957889 17.9839998,51.2088565 C18.2339998,51.3085596 18.4939998,51.356417 18.7519999,51.356417 C19.3029999,51.356417 19.8429998,51.1360733 20.2399999,50.7242996 L21.9542104,48.9393602 L29.5949994,40.98331 L34.5949994,40.98331 C44.0989991,40.98331 51.8309995,32.6411552 51.8309995,22.385698 C51.8319998,12.131227 44.0989981,3.78908268 34.5950003,3.78908268 L19.2360001,3.78908268 C13.488848,3.78908268 8.3896678,6.83958098 5.25636752,11.5187741 Z M5.25636752,11.5187741" id="path432"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="51px" height="51px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>account-settings</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="173.920641%" id="linearGradient-1">
<stop stop-color="rgb(123,125,121)" offset="0%"></stop>
<stop stop-color="rgb(0,0,0)" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<path d="M42.6990051,13.3120117 L34.1450043,21.8679199 L31.2910004,19.3811035 L40.029007,10.6398926 L41.1909943,7.73510742 L44.7319946,5.10107422 L48.2409973,8.60595703 L45.6109924,12.1420898 Z M47.8320007,37.1010742 C50.8619995,40.1311035 50.8609924,45.0620117 47.830001,48.094075 C46.3610006,49.5630749 44.4080008,50.3710749 42.3320008,50.3710749 C40.2560008,50.3710749 38.3050009,49.563075 36.8050009,48.061075 L18.6350008,27.2010744 C16.945001,27.5510744 15.2170009,27.7350744 13.6140009,27.7350744 L13.6130009,27.7350744 C9.79200126,27.7350744 6.73800124,26.7000743 4.77900125,24.7420743 C1.4870012,21.4480747 0.0610011965,16.7530745 0.967001215,12.1790746 C1.01600121,11.9290746 1.19800121,11.7300746 1.4380012,11.6580746 C1.67900117,11.5850746 1.94000117,11.6500746 2.12000118,11.8290746 L8.08200108,17.7890746 L13.8480009,18.9820746 L18.7180008,14.1140746 L17.5240007,8.34707436 L11.5620009,2.38407454 C11.3840009,2.20707455 11.3190009,1.94407453 11.3920009,1.70407453 C11.4660009,1.46207453 11.6650009,1.28207453 11.9130009,1.23207453 C12.8040009,1.05607454 13.7180009,0.965074539 14.629001,0.965074539 C18.3490008,0.965074539 21.8470007,2.41407442 24.4750007,5.04507446 C28.4720007,9.04007435 27.4830007,16.2210746 26.9350007,18.8990746 L31.4470008,22.8290746 L32.0090008,23.3190746 Z M43.7059937,43.9680176 C42.9479936,44.7270176 41.7209936,44.7270176 40.9629936,43.9690176 L40.9619936,43.9680176 C40.2049936,43.2100176 40.2049936,41.9810176 40.9619936,41.2240176 C41.7199936,40.4680176 42.9479936,40.4680176 43.7059936,41.2260176 L43.7069936,41.2260176 C44.4629974,41.9829102 44.4629974,43.2099609 43.7059937,43.9680176 Z M17.6609955,30.9750977 L21.8529949,35.8560972 C22.5449949,36.5490971 22.5449949,37.6720971 21.8529949,38.3640971 L10.574995,49.6410975 C9.88099515,50.3320975 8.75899512,50.3320975 8.06699514,49.6410975 L3.53299522,45.1050978 C2.84099525,44.4110978 2.84099525,43.2890978 3.53299522,42.5980978 L15.1539955,30.9750977 C15.8469955,30.2830977 16.9689955,30.2830977 17.6609955,30.9750977 Z M17.6609955,30.9750977" id="Shape" fill="url(#linearGradient-1)"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
data/images/add-contact.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,77 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<title>add-contact</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="icon_Connect1" sketch:type="MSLayerGroup">
<g id="Layer_2"></g>
<g id="Layer_3"></g>
<g id="Layer_4"></g>
<g id="Layer_5"></g>
<g id="Layer_6"></g>
<g id="Layer_8"></g>
<g id="Layer_9"></g>
<g id="Layer_10"></g>
<g id="Layer_11"></g>
<g id="Layer_12"></g>
<g id="Layer_13"></g>
<g id="Layer_14"></g>
<g id="Layer_15"></g>
<g id="Layer_16"></g>
<g id="Layer_17"></g>
<g id="Layer_18"></g>
<g id="Layer_19"></g>
<g id="Layer_20"></g>
<g id="Layer_21"></g>
<g id="Layer_24"></g>
<g id="Layer_25"></g>
<g id="Layer_26"></g>
<g id="Layer_27"></g>
<g id="Layer_28"></g>
<g id="Layer_29"></g>
<g id="Layer_47"></g>
<g id="Layer_30"></g>
<g id="Layer_31"></g>
<g id="Layer_32"></g>
<g id="Layer_33"></g>
<g id="Layer_34"></g>
<g id="Layer_35"></g>
<g id="Layer_36"></g>
<g id="Layer_37"></g>
<g id="Layer_38"></g>
<g id="Layer_39"></g>
<g id="Layer_40"></g>
<g id="Layer_41"></g>
<g id="Layer_42"></g>
<g id="Layer_43"></g>
<g id="Layer_44"></g>
<g id="Layer_45"></g>
<g id="Layer_46"></g>
<g id="Layer_48"></g>
<g id="Layer_49"></g>
<g id="Layer_51"></g>
<g id="Layer_52"></g>
<g id="Layer_53"></g>
<g id="Layer_54" fill="#000000" sketch:type="MSShapeGroup">
<g id="Group">
<path d="M36,32.25 C35.25,33 34.5,33.375 34.125,34.125 C31.875,36 30,38.25 28.125,40.125 C25.125,37.5 22.5,34.5 19.875,31.875 L21.375,30.375 L27.75,24 C28.5,23.25 28.5,22.125 27.75,21.375 C27.375,20.625 26.25,20.625 25.5,21.375 C25.125,21.75 24.75,22.125 24.375,22.125 L16.875,29.625 C16.125,28.5 15.375,27.75 14.25,26.625 C12,29.25 9.375,31.5 7.5,34.125 C5.625,36.375 5.25,39 5.625,42 C5.625,44.25 6.75,46.5 7.875,48.375 L0.375,55.875 L4.125,59.625 L11.625,52.125 C16.125,54.75 20.625,55.125 25.5,52.5 C28.875,50.625 30.75,47.625 33.75,45 C32.625,44.25 31.875,43.125 30.75,42.375 L34.125,39 C35.625,37.5 37.125,36 39,34.5 C39.75,33.75 40.125,32.625 39.375,31.875 C37.875,31.5 36.75,31.5 36,32.25 L36,32.25 Z" id="Shape"></path>
<path d="M60,3.75 L56.25,0 L48.75,7.5 C48.375,7.5 48.375,7.125 48,7.125 C43.5,4.875 38.625,4.5 34.125,7.5 C31.5,9.375 29.25,12 27,14.25 L45.75,33 C47.625,31.125 49.5,29.625 51.375,27.375 C53.625,24.75 54.75,21.375 54.375,18 C54.375,15.75 53.625,13.5 52.125,11.625 L60,3.75 L60,3.75 Z" id="Shape"></path>
</g>
</g>
<g id="Layer_55"></g>
<g id="Layer_56"></g>
<g id="Layer_57"></g>
<g id="Layer_58"></g>
<g id="Layer_59"></g>
<g id="Layer_60"></g>
<g id="Layer_61"></g>
<g id="Layer_62"></g>
<g id="Layer_63"></g>
<g id="Layer_64"></g>
<g id="Layer_65"></g>
<g id="Layer_66"></g>
<g id="Layer_50"></g>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
<stop stop-color="rgb(95,88,88)" offset="0%"></stop>
<stop stop-color="rgb(34,31,31)" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="173.920641%" id="linearGradient-2">
<stop stop-color="rgb(123,125,121)" offset="0%"></stop>
<stop stop-color="rgb(0,0,0)" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="Group" stroke="rgb(150,150,150)" stroke-width="1" fill="url(#linearGradient-1)">
<path d="M41.7720032,33.5539551 C35.769989,34.1109619 31.052002,39.1710205 31.0530045,45.3179558 C31.0530045,47.0919557 31.4560045,48.7689556 32.1580045,50.2799557 L24.0980041,50.2799557 C24.0580041,50.2919557 24.0180041,50.2979557 23.9740041,50.2979557 L9.86000377,50.2979557 C9.73200378,50.2979557 9.60800378,50.2459557 9.51900378,50.1529557 C9.42900378,50.0609557 9.37900378,49.9379557 9.38200378,49.8099557 C9.5860033,40.1639548 13.6520033,32.344955 20.2560034,28.897955 C20.4300034,28.808955 20.6390034,28.832955 20.7870034,28.958955 C22.2620035,30.2229551 24.0390035,31.1019551 25.9240035,31.4979551 C25.9260033,31.4979551 26.8810034,31.680955 28.2380034,31.680955 C29.0350033,31.680955 29.8120033,31.618955 30.5480033,31.496955 C32.4120032,31.1009549 34.1890031,30.221955 35.6620032,28.9589549 C35.8100032,28.8329549 36.0190032,28.8079549 36.1930032,28.8979549 C38.3370032,30.0169551 40.2090032,31.6009551 41.7720032,33.5539551 Z M28.2260132,28.9150391 C22.1520081,28.9150391 17.2109985,23.8580322 17.211013,17.643039 C17.211013,15.2640388 17.9400131,13.0580389 19.1740131,11.2380388 C19.2140131,11.1140388 19.2780131,10.9950388 19.3690131,10.8910388 C19.4080131,10.8460388 19.4590131,10.8220388 19.5040131,10.7870388 C21.5200133,8.10803878 24.6740131,6.37203884 28.2260132,6.37203884 C34.3000126,6.37203884 39.2390127,11.4290385 39.2390127,17.6430387 C39.2390127,23.8580389 34.2990131,28.9150391 28.2260132,28.9150391 Z M44.8389893,36.3830566 C50.303009,36.3830566 54.7520142,40.8299561 54.7519894,46.2940569 C54.7519894,51.7610569 50.3029895,56.207057 44.8389893,56.207057 C39.3719893,56.207057 34.9259892,51.7610569 34.9259892,46.2940569 C34.9259892,40.8300567 39.3719893,36.3830566 44.8389893,36.3830566 Z M44.8389893,54.6779785 C40.2149892,54.6779785 36.453989,50.9169786 36.453989,46.2939787 C36.453989,41.6719785 40.2149889,37.9119787 44.8389893,37.9119787 C49.4609895,37.9119787 53.2209892,41.6719787 53.2209892,46.2939787 C53.2210083,50.9169922 49.4609985,54.6779785 44.8389893,54.6779785 Z M46.1209874,45.1409912 L46.1209874,41.3059912 C46.1209874,40.9709912 45.8499874,40.6989912 45.5169874,40.6989912 L44.3059875,40.6989912 C43.9749875,40.6989912 43.7019875,40.9709912 43.7019875,41.3059912 L43.7019875,45.1409912 L40.0379875,45.1409912 C39.7019875,45.1409912 39.4319875,45.4119912 39.4319875,45.7469912 L39.4319875,46.8789912 C39.4319875,47.2139912 39.7029875,47.4849912 40.0379875,47.4849912 L43.7019875,47.4849912 L43.7019875,51.3579911 C43.7019875,51.6919911 43.9749875,51.9629911 44.3059875,51.9629911 L45.5169874,51.9629911 C45.8509874,51.9629911 46.1209874,51.6919911 46.1209874,51.3579911 L46.1209874,47.4849912 L49.7869873,47.4849912 C50.1209873,47.4849912 50.3919873,47.2139912 50.3919873,46.8789912 L50.3919873,45.7469912 C50.3930054,45.4110107 50.1210022,45.1409912 49.7869873,45.1409912 Z M46.1209874,45.1409912" id="Shape" fill="url(#linearGradient-2)"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
data/images/add.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -1,82 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="68px" height="68px" viewBox="0 0 68 68" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<svg width="82px" height="82px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>add</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="list-remove" sketch:type="MSLayerGroup" transform="translate(34.500000, 33.500000) rotate(-45.000000) translate(-34.500000, -33.500000) translate(6.000000, 5.000000)">
<g id="Page-1">
<g id="list-remove">
<g id="Page-1">
<g id="icon_Cross">
<g id="Layer_2"></g>
<g id="Layer_3"></g>
<g id="Layer_4"></g>
<g id="Layer_5"></g>
<g id="Layer_6"></g>
<g id="Layer_8"></g>
<g id="Layer_9"></g>
<g id="Layer_10"></g>
<g id="Layer_11"></g>
<g id="Layer_12"></g>
<g id="Layer_13"></g>
<g id="Layer_14"></g>
<g id="Layer_15"></g>
<g id="Layer_16"></g>
<g id="Layer_17"></g>
<g id="Layer_18"></g>
<g id="Layer_19"></g>
<g id="Layer_20"></g>
<g id="Layer_21"></g>
<g id="Layer_24"></g>
<g id="Layer_25"></g>
<g id="Layer_26"></g>
<g id="Layer_27"></g>
<g id="Layer_28"></g>
<g id="Layer_29"></g>
<g id="Layer_47"></g>
<g id="Layer_30"></g>
<g id="Layer_31"></g>
<g id="Layer_32"></g>
<g id="Layer_33"></g>
<g id="Layer_34"></g>
<g id="Layer_35"></g>
<g id="Layer_36"></g>
<g id="Layer_37"></g>
<g id="Layer_38"></g>
<g id="Layer_39"></g>
<g id="Layer_40"></g>
<g id="Layer_41"></g>
<g id="Layer_42"></g>
<g id="Layer_43"></g>
<g id="Layer_44" fill="#000000" sketch:type="MSShapeGroup">
<path d="M56.6666667,9.33333333 L47.3333333,0 L28,18.6666667 L9.33333333,0 L0,9.33333333 L18.6666667,28 L0,47.3333333 L9.33333333,56.6666667 L28,38 L47.3333333,56.6666667 L56.6666667,47.3333333 L38,28 L56.6666667,9.33333333 L56.6666667,9.33333333 Z" id="Shape"></path>
</g>
<g id="Layer_45"></g>
<g id="Layer_46"></g>
<g id="Layer_48"></g>
<g id="Layer_49"></g>
<g id="Layer_51"></g>
<g id="Layer_52"></g>
<g id="Layer_53"></g>
<g id="Layer_54"></g>
<g id="Layer_55"></g>
<g id="Layer_56"></g>
<g id="Layer_57"></g>
<g id="Layer_58"></g>
<g id="Layer_59"></g>
<g id="Layer_60"></g>
<g id="Layer_61"></g>
<g id="Layer_62"></g>
<g id="Layer_63"></g>
<g id="Layer_64"></g>
<g id="Layer_65"></g>
<g id="Layer_66"></g>
<g id="Layer_50"></g>
</g>
</g>
</g>
</g>
</g>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<path d="M41,71 C57.5685433,71 71,57.5685433 71,41 C71,24.4314567 57.5685433,11 41,11 C24.4314567,11 11,24.4314567 11,41 C11,57.5685433 24.4314567,71 41,71 Z M41,71" id="Oval 1" fill="rgb(154,170,198)"></path>
<path d="M45.1402321,37.4080257 L45.1402321,25.8322088 C45.1402321,24.8210227 44.3242652,24 43.3216195,24 L39.6753614,24 C38.6787375,24 37.8567488,24.8210228 37.8567488,25.8322088 L37.8567488,37.4080257 L26.8246346,37.4080257 C25.812956,37.4080257 25,38.22603 25,39.2372161 L25,42.6541194 C25,43.6653056 25.8159669,44.4833098 26.8246346,44.4833098 L37.8567488,44.4833098 L37.8567488,56.1738281 C37.8567488,57.1819957 38.6787376,58 39.6753614,58 L43.3216195,58 C44.3272762,58 45.1402321,57.1819957 45.1402321,56.1738281 L45.1402321,44.4833098 L56.1783677,44.4833098 C57.1840244,44.4833098 57.9999914,43.6653056 57.9999914,42.6541194 L57.9999914,39.2372161 C58.0030567,38.2230705 57.1840693,37.4080257 56.1783677,37.4080257 L45.1402321,37.4080257 Z M45.1402321,37.4080257" id="Shape" fill="rgb(254,255,254)"></path>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -1,74 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<svg width="79px" height="79px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>advanced-settings</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="icon_Settings" sketch:type="MSLayerGroup">
<g id="Layer_2"></g>
<g id="Layer_3"></g>
<g id="Layer_4"></g>
<g id="Layer_5"></g>
<g id="Layer_6"></g>
<g id="Layer_8"></g>
<g id="Layer_9"></g>
<g id="Layer_10"></g>
<g id="Layer_11"></g>
<g id="Layer_12"></g>
<g id="Layer_13"></g>
<g id="Layer_14"></g>
<g id="Layer_15"></g>
<g id="Layer_16"></g>
<g id="Layer_17"></g>
<g id="Layer_18"></g>
<g id="Layer_19"></g>
<g id="Layer_20"></g>
<g id="Layer_21"></g>
<g id="Layer_24"></g>
<g id="Layer_25"></g>
<g id="Layer_26"></g>
<g id="Layer_27"></g>
<g id="Layer_28"></g>
<g id="Layer_29"></g>
<g id="Layer_47"></g>
<g id="Layer_30"></g>
<g id="Layer_31"></g>
<g id="Layer_32"></g>
<g id="Layer_33"></g>
<g id="Layer_34"></g>
<g id="Layer_35"></g>
<g id="Layer_36"></g>
<g id="Layer_37"></g>
<g id="Layer_38"></g>
<g id="Layer_39"></g>
<g id="Layer_40"></g>
<g id="Layer_41"></g>
<g id="Layer_42"></g>
<g id="Layer_43"></g>
<g id="Layer_44"></g>
<g id="Layer_45"></g>
<g id="Layer_46"></g>
<g id="Layer_48"></g>
<g id="Layer_49"></g>
<g id="Layer_51"></g>
<g id="Layer_52"></g>
<g id="Layer_53"></g>
<g id="Layer_54"></g>
<g id="Layer_55"></g>
<g id="Layer_56"></g>
<g id="Layer_57"></g>
<g id="Layer_58"></g>
<g id="Layer_59"></g>
<g id="Layer_60"></g>
<g id="Layer_61"></g>
<g id="Layer_62"></g>
<g id="Layer_63" fill="#000000" sketch:type="MSShapeGroup">
<path d="M39.5,9.5 C39,9.5 38.5,9 38,9 C37.5,9 37,8.5 36.5,8.5 L34.5,0.5 C31,1.38777878e-17 28,1.38777878e-17 24.5,0.5 L22.5,9 C21.5,9 20.5,9.5 19.5,10 L12,6 C9.5,8 7,10 5.5,13 L10,20.5 C10,21 9.5,21.5 9.5,22 C9.5,22.5 9,23 9,23.5 L0.5,25.5 C1.38777878e-17,29 1.38777878e-17,32 0.5,35.5 L9,37.5 C9,38.5 9.5,39.5 10,40.5 L6,48 C8,50.5 10.5,53 13,55 L20.5,50.5 C21,50.5 21.5,51 22,51 C22.5,51 23,51.5 23.5,51.5 L26,59.5 C29.5,60 32.5,60 35.5,59.5 L37.5,51 L40.5,49.5 L48,53.5 C50.5,51.5 53,49 55,46.5 L50.5,39 C50.5,38.5 51,38 51,37.5 C51,37 51.5,36.5 51.5,36 L59.5,33.5 C60,30 60,27 59.5,24 L51,22 L49.5,19 L53.5,11.5 C51.5,9 49,6.5 46.5,4.5 L39.5,9.5 L39.5,9.5 Z M40.5,34 C38,39.5 31.5,42.5 26,40.5 C20.5,38 17.5,31.5 19.5,26 C21.5,20.5 28,17.5 34,20 C39.5,22 42.5,28.5 40.5,34 L40.5,34 Z" id="Shape"></path>
</g>
<g id="Layer_64"></g>
<g id="Layer_65"></g>
<g id="Layer_66"></g>
<g id="Layer_50"></g>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="173.920641%" id="linearGradient-1">
<stop stop-color="rgb(123,125,121)" offset="0%"></stop>
<stop stop-color="rgb(0,0,0)" offset="100%"></stop>
</linearGradient>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="Group" stroke="rgb(150,150,150)" stroke-width="1">
<path d="M77.0386845,38.7883065 L71.392233,37.998629 C71.2219104,34.1354033 70.388362,30.4270161 68.9173943,26.9457258 L73.6038458,23.410242 C73.9057813,23.1779839 74.1070716,22.8321774 74.1612652,22.4579839 C74.2154588,22.0786291 74.112233,21.6915323 73.8825555,21.3844355 L67.3612653,12.7573389 C67.1315879,12.4528228 66.7883621,12.2541131 66.4090073,12.1973389 C66.0244912,12.1431454 65.6451363,12.2463712 65.3406202,12.4760486 L61.0154589,15.7457259 C58.1509427,13.1031452 54.8786847,11.0283067 51.2606203,9.56766127 L52.0322332,4.03217745 C52.0864267,3.65282261 51.9832009,3.26830647 51.7561041,2.96120973 C51.5264267,2.6566936 51.1832009,2.45798394 50.8064267,2.40120975 L40.1044916,0.914758202 C39.7070723,0.860564654 39.3380401,0.961209812 39.0335239,1.19346789 C38.7290078,1.42056466 38.5302981,1.76637112 38.4735239,2.14572592 L37.7638465,7.28120981 C33.7715883,7.44895174 29.9419113,8.32637111 26.3522338,9.89540339 L23.0877177,5.58314532 C22.6077177,4.94830659 21.7070725,4.82443564 21.0670725,5.301855 L12.4477179,11.8128227 C12.1432018,12.0450808 11.9419115,12.3883066 11.8877179,12.7650808 C11.8335244,13.1444356 11.9367502,13.5289518 12.1664276,13.8360485 L15.2528792,17.9263712 C12.5767503,20.8889518 10.5173952,24.233468 9.11094341,27.8954032 L3.70707218,27.1470161 C3.3251367,27.0928226 2.9457819,27.1960484 2.63868508,27.4231452 C2.3367496,27.6554033 2.13287864,27.9960484 2.08126571,28.3754032 L0.599975382,39.0747578 C0.489007636,39.8644352 1.03868506,40.5921772 1.82836251,40.7005643 L7.0541692,41.4283062 C7.28900791,45.3354031 8.21029827,49.1005644 9.80771767,52.6566929 L5.25804022,56.0941123 C4.6283628,56.5741123 4.49674994,57.4773381 4.98191119,58.1147574 L11.4954594,66.734112 C11.9754594,67.3715314 12.8786852,67.4902411 13.5109433,67.0128217 L17.9548143,63.6605636 C20.8193305,66.1870151 24.1328789,68.202499 27.6425561,69.5599185 L26.8322335,75.4592733 C26.7212657,76.2489507 27.2761045,76.9741121 28.0632012,77.0850798 L38.7625558,78.5715313 C38.827072,78.5818539 38.8967494,78.5870152 38.9638461,78.5870152 C39.6709429,78.5870152 40.2902978,78.0657248 40.3909429,77.3457249 L41.1961042,71.6089505 C44.9793299,71.3895957 48.6335234,70.5224989 52.0838457,69.0257246 L55.769007,73.9031439 C56.2541682,74.5405633 57.157394,74.6566923 57.7896521,74.1844342 L66.4167487,67.678628 C66.7238455,67.4489506 66.9225552,67.1005635 66.9767487,66.7237893 C67.0309422,66.3444345 66.9277164,65.9599183 66.7006197,65.6528216 L63.1728778,60.981854 C65.7122327,58.1766927 67.7070712,54.9947574 69.113523,51.5005636 L75.1522325,52.3392732 C75.9161035,52.4347571 76.6696519,51.8979829 76.7832003,51.1083055 L78.2722326,40.4063704 C78.3779927,39.6272051 77.82844,38.8966734 77.0386845,38.7883065 C77.0386845,38.7883065 77.82844,38.8966734 77.0386845,38.7883065 L77.0386845,38.7883065 M47.570281,50.5303679 C45.1444746,52.3652067 42.2541521,53.3355293 39.2218942,53.3355293 C34.8270556,53.3355293 30.785765,51.3303679 28.1406035,47.8284323 C23.5341519,41.730368 24.7496357,33.0206906 30.8554423,28.4064968 C33.2812487,26.571658 36.1715712,25.6039162 39.2012487,25.6039162 C43.5960872,25.6039162 47.6296358,27.6064969 50.2696358,31.1006907 C54.8812689,37.2012349 53.6734816,45.921308 47.570281,50.5303679 C47.570281,50.5303679 53.6734816,45.921308 47.570281,50.5303679 L47.570281,50.5303679" id="Shape" fill="url(#linearGradient-1)"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -1,78 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="60px" height="60px" viewBox="0 0 60 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<svg width="365px" height="365px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>album-icon</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="album-icon" sketch:type="MSLayerGroup">
<g id="Page-1">
<g id="icon_Playlist">
<g id="Layer_2"></g>
<g id="Layer_3"></g>
<g id="Layer_4"></g>
<g id="Layer_5"></g>
<g id="Layer_6"></g>
<g id="Layer_8"></g>
<g id="Layer_9"></g>
<g id="Layer_10"></g>
<g id="Layer_11"></g>
<g id="Layer_12"></g>
<g id="Layer_13"></g>
<g id="Layer_14"></g>
<g id="Layer_15"></g>
<g id="Layer_16"></g>
<g id="Layer_17"></g>
<g id="Layer_18"></g>
<g id="Layer_19"></g>
<g id="Layer_20"></g>
<g id="Layer_21"></g>
<g id="Layer_24"></g>
<g id="Layer_25"></g>
<g id="Layer_26"></g>
<g id="Layer_27"></g>
<g id="Layer_28"></g>
<g id="Layer_29"></g>
<g id="Layer_47"></g>
<g id="Layer_30"></g>
<g id="Layer_31"></g>
<g id="Layer_32"></g>
<g id="Layer_33"></g>
<g id="Layer_34"></g>
<g id="Layer_35"></g>
<g id="Layer_36"></g>
<g id="Layer_37"></g>
<g id="Layer_38"></g>
<g id="Layer_39"></g>
<g id="Layer_40" fill="#000000" sketch:type="MSShapeGroup">
<path d="M30,0 C13.5,0 0,13.5 0,30 C0,46.5 13.5,60 30,60 C46.5,60 60,46.5 60,30 C59.5,13.5 46.5,0 30,0 L30,0 L30,0 Z M30,40 C24.5,40 20,35.5 20,30 C20,24.5 24.5,20 30,20 C35.5,20 39.5,24.5 39.5,30 C39.5,35.5 35,40 30,40 L30,40 L30,40 Z" id="Shape"></path>
</g>
<g id="Layer_41"></g>
<g id="Layer_42"></g>
<g id="Layer_43"></g>
<g id="Layer_44"></g>
<g id="Layer_45"></g>
<g id="Layer_46"></g>
<g id="Layer_48"></g>
<g id="Layer_49"></g>
<g id="Layer_51"></g>
<g id="Layer_52"></g>
<g id="Layer_53"></g>
<g id="Layer_54"></g>
<g id="Layer_55"></g>
<g id="Layer_56"></g>
<g id="Layer_57"></g>
<g id="Layer_58"></g>
<g id="Layer_59"></g>
<g id="Layer_60"></g>
<g id="Layer_61"></g>
<g id="Layer_62"></g>
<g id="Layer_63"></g>
<g id="Layer_64"></g>
<g id="Layer_65"></g>
<g id="Layer_66"></g>
<g id="Layer_50"></g>
</g>
</g>
<defs>
<radialGradient cx="50%" cy="50%" fx="50%" fy="50%" r="70.6690133%" id="radialGradient-1">
<stop stop-color="rgb(187,190,185)" offset="0%"></stop>
<stop stop-color="rgb(213,211,209)" offset="0.923389476%"></stop>
<stop stop-color="rgb(241,240,240)" offset="100%"></stop>
</radialGradient>
<path d="M183,243 C216.137087,243 243,216.137087 243,183 C243,149.862913 216.137087,123 183,123 C149.862913,123 123,149.862913 123,183 C123,216.137087 149.862913,243 183,243 Z M182.5,360 C84.4694521,360 5,280.530548 5,182.5 C5,84.4694521 84.4694521,5 182.5,5 C280.530548,5 360,84.4694521 360,182.5 C360,280.530548 280.530548,360 182.5,360 Z M182.5,360" id="path-2"></path>
</defs>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="Group">
<use id="Oval 1" stroke="rgb(49,54,58)" stroke-width="5" fill="url(#radialGradient-1)" xlink:href="#path-2"></use>
<use id="Oval 1-1" stroke="none" fill="none" xlink:href="#path-2"></use>
<path d="M183,243 C149.862913,243 123,216.137087 123,183 C123,149.862913 149.862913,123 183,123 C216.137087,123 243,149.862913 243,183 C243,216.137087 216.137087,243 183,243 Z M183.5,209 C198.135547,209 210,197.359404 210,183 C210,168.640596 198.135547,157 183.5,157 C168.864453,157 157,168.640596 157,183 C157,197.359404 168.864453,209 183.5,209 Z M183.5,209" id="Oval 2" stroke="rgb(150,150,150)" stroke-width="1" fill="rgb(137,137,137)"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

View File

@@ -1,13 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="200px" height="200px" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<svg width="355px" height="355px" viewBox="0 0 355 355" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>album-placeholder-grid</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<rect id="Rectangle-1" fill="#D8D8D8" sketch:type="MSShapeGroup" x="0" y="0" width="200" height="200"></rect>
<g id="icon_Playlist" sketch:type="MSLayerGroup" transform="translate(70.000000, 70.000000)">
<path id="Shape" stroke="#449FDB" opacity="0" fill="#000000" sketch:type="MSShapeGroup"></path>
<path d="M30,0 C13.5,0 0,13.5 0,30 C0,46.5 13.5,60 30,60 C46.5,60 60,46.5 60,30 C59.499375,13.5 46.5,0 30,0 L30,0 Z M30,39.999375 C24.500625,39.999375 20.000625,35.499375 20.000625,30 C20.000625,24.500625 24.500625,20.000625 30,20.000625 C35.499375,20.000625 39.500625,24.500625 39.500625,30 C39.500625,35.499375 35.000625,39.999375 30,39.999375 L30,39.999375 Z" id="Shape" fill="#606060" sketch:type="MSShapeGroup"></path>
<defs>
<path d="M177.5,219 C200.419818,219 219,200.419818 219,177.5 C219,154.580182 200.419818,136 177.5,136 C154.580182,136 136,154.580182 136,177.5 C136,200.419818 154.580182,219 177.5,219 Z M177.5,355 C79.4694521,355 0,275.530548 0,177.5 C0,79.4694521 79.4694521,0 177.5,0 C275.530548,0 355,79.4694521 355,177.5 C355,275.530548 275.530548,355 177.5,355 Z M177.5,355" id="path-1"></path>
<filter x="-20%" y="-20%" width="140%" height="140%" filterUnits="objectBoundingBox" id="filter-2">
<feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
<feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
<feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
<feMerge>
<feMergeNode in="SourceGraphic"></feMergeNode>
<feMergeNode in="shadowMatrixInner1"></feMergeNode>
</feMerge>
</filter>
</defs>
<g id="Page 1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<rect d="M-23,-22 L-23,378 L377,378 L377,-22 L-23,-22 Z M-23,-22" id="Rectangle 1" sketch:type="MSShapeGroup" x="-23" y="-22" width="400" height="400"></rect>
<g id="Oval 1">
<use fill="#0B0A0A" fill-rule="evenodd" sketch:type="MSShapeGroup" xlink:href="#path-1"></use>
<use fill="none" xlink:href="#path-1"></use>
</g>
<circle d="M177.5,191 C184.40356,191 190,185.40356 190,178.5 C190,171.59644 184.40356,166 177.5,166 C170.59644,166 165,171.59644 165,178.5 C165,185.40356 170.59644,191 177.5,191 Z M177.5,191" id="Oval 2" stroke="#979797" fill-opacity="0.496897978" fill="#898989" filter="url(#filter-2)" sketch:type="MSShapeGroup" cx="177.5" cy="178.5" r="12.5"></circle>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
data/images/apply-check.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -1,20 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="51px" height="50px" viewBox="0 0 51 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>apply-check</title>
<svg width="51px" height="50px" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="apply-check" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)">
<g id="Page-1" sketch:type="MSShapeGroup">
<g id="apply-check">
<g id="Page-1">
<g id="Group">
<path d="M4.24000168,-0.24597168 C1.78800178,-0.24597168 -0.208998203,1.74902833 -0.208998203,4.2030282 L-0.208998203,43.8820291 C-0.208998203,46.3350291 1.78800178,48.3320289 4.24000168,48.3320289 L45,48.3320289 C47.4519999,48.3320289 49.4489999,46.3350289 49.4489999,43.8820291 L49.4489999,4.2030282 C49.4489746,1.74902344 47.4520264,-0.24597168 45,-0.24597168 L4.24000168,-0.24597168 Z" id="Shape" fill="#000000"></path>
<path d="M38.992981,10.0159912 C38.112981,9.3459912 36.857981,9.5139912 36.1889811,10.3919912 L19.0559816,32.827992 L12.6759815,25.2839919 C11.9629815,24.4409919 10.6999816,24.3349919 9.8579814,25.0479919 C9.0139815,25.7619919 8.90898144,27.0239918 9.6219814,27.865992 L17.6079815,37.3099922 C17.9889815,37.7599922 18.5469815,38.0189922 19.1349815,38.0189922 C19.1519815,38.0189922 19.1679815,38.0189922 19.1849815,38.0179922 C19.7899815,38.0029922 20.3569815,37.7139922 20.7249814,37.2329922 L39.3689805,12.8199921 C40.0390015,11.94104 39.8709717,10.6870117 38.992981,10.0159912 C38.992981,10.0159912 39.8709717,10.6870117 38.992981,10.0159912 L38.992981,10.0159912" id="Shape" fill="#FFFFFF"></path>
</g>
</g>
</g>
</g>
<g id="Page 1" fill="rgb(223,223,223)" fill-rule="evenodd">
<g id="Group" fill="rgb(0,0,0)">
<path d="M46,0.75402832 L5.24000168,0.75402832 C2.78800178,0.75402832 0.791001797,2.74902833 0.791001797,5.2030282 L0.791001797,44.8820291 C0.791001797,47.3350291 2.78800178,49.3320289 5.24000168,49.3320289 L46,49.3320289 C48.4519999,49.3320289 50.4489999,47.3350289 50.4489999,44.8820291 L50.4489999,5.2030282 C50.4489746,2.74902344 48.4520264,0.75402832 46,0.75402832 L46,0.75402832 L46,0.75402832 M46.5689697,44.881958 C46.5689697,45.197958 46.3149697,45.451958 45.9999697,45.451958 L5.2399714,45.451958 C4.9249714,45.451958 4.67097139,45.197958 4.67097139,44.881958 L4.67097139,5.20295715 C4.67097139,4.88895714 4.9249714,4.63095713 5.2399714,4.63095713 L46,4.63095713 C46.315,4.63095713 46.569,4.88895711 46.569,5.20295715 L46.569,44.881958 L46.569,44.881958 L46.5689697,44.881958" id="Shape" fill="rgb(62,115,0)"></path>
<path d="M39.992981,11.0159912 C39.112981,10.3459912 37.857981,10.5139912 37.1889811,11.3919912 L20.0559816,33.827992 L13.6759815,26.2839919 C12.9629815,25.4409919 11.6999816,25.3349919 10.8579814,26.0479919 C10.0139815,26.7619919 9.90898144,28.0239918 10.6219814,28.865992 L18.6079815,38.3099922 C18.9889815,38.7599922 19.5469815,39.0189922 20.1349815,39.0189922 C20.1519815,39.0189922 20.1679815,39.0189922 20.1849815,39.0179922 C20.7899815,39.0029922 21.3569815,38.7139922 21.7249814,38.2329922 L40.3689805,13.8199921 C41.0390015,12.94104 40.8709717,11.6870117 39.992981,11.0159912 C39.992981,11.0159912 40.8709717,11.6870117 39.992981,11.0159912 L39.992981,11.0159912" id="Shape" fill="rgb(62,115,0)"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -1,74 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="9px" height="9px" viewBox="0 0 9 9" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>Slice 1</title>
<svg width="45px" height="45px" viewBox="0 0 45 45" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>arrow-down-double</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="icon_chev_up" sketch:type="MSLayerGroup" transform="translate(4.500000, 4.500000) scale(1, -1) translate(-4.500000, -4.500000) translate(0.000000, 2.000000)">
<g id="Layer_2"></g>
<g id="Layer_3"></g>
<g id="Layer_4"></g>
<g id="Layer_5"></g>
<g id="Layer_6"></g>
<g id="Layer_8"></g>
<g id="Layer_9"></g>
<g id="Layer_10"></g>
<g id="Layer_11"></g>
<g id="Layer_12"></g>
<g id="Layer_13"></g>
<g id="Layer_14"></g>
<g id="Layer_15"></g>
<g id="Layer_16"></g>
<g id="Layer_17"></g>
<g id="Layer_18"></g>
<g id="Layer_19"></g>
<g id="Layer_20"></g>
<g id="Layer_21"></g>
<g id="Layer_24"></g>
<g id="Layer_25"></g>
<g id="Layer_26"></g>
<g id="Layer_27"></g>
<g id="Layer_28"></g>
<g id="Layer_29"></g>
<g id="Layer_47"></g>
<g id="Layer_30"></g>
<g id="Layer_31"></g>
<g id="Layer_32"></g>
<g id="Layer_33"></g>
<g id="Layer_34"></g>
<g id="Layer_35"></g>
<g id="Layer_36"></g>
<g id="Layer_37"></g>
<g id="Layer_38"></g>
<g id="Layer_39" fill="#000000" sketch:type="MSShapeGroup">
<path d="M0.724137931,5 L0,4.33962264 L4.55172414,0 L9,4.33962264 L8.27586207,5 L4.55172414,1.41509434 L0.724137931,5 Z" id="Shape"></path>
<g id="Page 1" fill="rgb(215,215,215)" fill-rule="evenodd">
<g id="arrow-up-double" fill="rgb(0,0,0)" transform="translate(22.000000, 23.500000) rotate(-180.000000) translate(-22.000000, -23.500000)">
<g id="Page 1" fill="rgb(222,223,222)">
<g id="Group" fill="rgb(0,0,0)">
<path d="M3.48530778,39.7090464 L40.6463071,39.7090464 C41.8023053,39.7090464 42.8623067,39.0600481 43.3873082,38.0280466 C43.6143056,37.5890474 43.7243062,37.1090479 43.7243062,36.6310472 C43.7243062,35.9940462 43.5243054,35.3570452 43.1353055,34.8230448 L24.5533067,9.24104548 C23.9743062,8.44204569 23.0483056,7.9720459 22.0633069,7.9720459 C21.0783063,7.9720459 20.1523057,8.44404554 19.5743066,9.24104548 L0.993306841,34.8230448 C0.313306834,35.7580462 0.218306865,37.0010462 0.742306854,38.0280466 C1.2672902,39.0601206 2.32832536,39.7090464 3.48530778,39.7090464 C3.48530778,39.7090464 2.32832536,39.7090464 3.48530778,39.7090464 L3.48530778,39.7090464" id="Shape" fill="rgb(99,100,99)"></path>
</g>
</g>
<g id="Layer_40"></g>
<g id="Layer_41"></g>
<g id="Layer_42"></g>
<g id="Layer_43"></g>
<g id="Layer_44"></g>
<g id="Layer_45"></g>
<g id="Layer_46"></g>
<g id="Layer_48"></g>
<g id="Layer_49"></g>
<g id="Layer_51"></g>
<g id="Layer_52"></g>
<g id="Layer_53"></g>
<g id="Layer_54"></g>
<g id="Layer_55"></g>
<g id="Layer_56"></g>
<g id="Layer_57"></g>
<g id="Layer_58"></g>
<g id="Layer_59"></g>
<g id="Layer_60"></g>
<g id="Layer_61"></g>
<g id="Layer_62"></g>
<g id="Layer_63"></g>
<g id="Layer_64"></g>
<g id="Layer_65"></g>
<g id="Layer_66"></g>
<g id="Layer_50"></g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

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