diff --git a/CMakeLists.txt b/CMakeLists.txt
index f21fd37f5..a9cb28650 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,8 +26,21 @@ add_definitions( "-fvisibility=hidden" )
 # build options
 option(BUILD_GUI "Build Tomahawk with GUI" ON)
 option(BUILD_RELEASE "Generate TOMAHAWK_VERSION without GIT info" OFF)
+option(WITH_BREAKPAD "Build with breakpad integration" ON)
+option(WITH_CRASHREPORTER "Build with CrashReporter" ON)
 option(LEGACY_KDE_INTEGRATION "Install tomahawk.protocol file, deprecated since 4.6.0" OFF)
 
+IF( CMAKE_SYSTEM_PROCESSOR MATCHES "arm" )
+    message(STATUS "Build of breakpad library disabled on this platform.")
+    SET(WITH_BREAKPAD OFF)
+    SET(WITH_CRASHREPORTER OFF)
+ENDIF()
+
+# add definitions based on build options
+IF(WITH_BREAKPAD)
+    message(STATUS "Build with support for breakpad.")
+ENDIF()
+
 # generate version string
 
 # base string used in release and unstable builds
@@ -200,9 +213,3 @@ ADD_SUBDIRECTORY( src/libtomahawk )
 SET( TOMAHAWK_LIBRARIES tomahawklib )
 ADD_SUBDIRECTORY( src )
 ADD_SUBDIRECTORY( admin )
-
-IF( BUILD_GUI )
-    IF( NOT DISABLE_CRASHREPORTER )
-        ADD_SUBDIRECTORY( src/breakpad/CrashReporter )
-    ENDIF()
-ENDIF()
diff --git a/lang/tomahawk_bg.ts b/lang/tomahawk_bg.ts
new file mode 100644
index 000000000..1555549f8
--- /dev/null
+++ b/lang/tomahawk_bg.ts
@@ -0,0 +1,3505 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="bg_BG" sourcelanguage="en_GB">
+<context>
+    <name>ACLRegistry</name>
+    <message>
+        <location filename="../src/libtomahawk/aclregistry.cpp" line="140"/>
+        <source>Connect to Peer?</source>
+        <translation>Свързване към друг потребител?</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/aclregistry.cpp" line="141"/>
+        <source>Another Tomahawk instance that claims to be owned by %1 is attempting to connect to you. Select whether to allow or deny this connection.
+
+Remember: Only allow peers to connect if you trust who they are and if you have the legal right for them to stream music from you.</source>
+        <translation>Tomahawk, стартиран от %1 се опитва да се свърже с теб. Избери дали да приемеш или откажеш свързването.
+Внимание! Позволявайте връзки само от потребители, които познавате и на които имате доверие и ако имате право да разпространявате музиката, която съхранявате.</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/aclregistry.cpp" line="142"/>
+        <source>Deny</source>
+        <translation>Откажи</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/aclregistry.cpp" line="143"/>
+        <source>Allow</source>
+        <translation>Позволи</translation>
+    </message>
+</context>
+<context>
+    <name>AccountFactoryWrapper</name>
+    <message>
+        <location filename="../src/AccountFactoryWrapper.ui" line="14"/>
+        <source>Dialog</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/AccountFactoryWrapper.ui" line="30"/>
+        <source>Description goes here</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/AccountFactoryWrapper.cpp" line="41"/>
+        <source>Add Account</source>
+        <translation>Добави регистрация</translation>
+    </message>
+</context>
+<context>
+    <name>AccountFactoryWrapperDelegate</name>
+    <message>
+        <location filename="../src/AccountFactoryWrapperDelegate.cpp" line="105"/>
+        <source>Online</source>
+        <translation>На линия</translation>
+    </message>
+    <message>
+        <location filename="../src/AccountFactoryWrapperDelegate.cpp" line="110"/>
+        <source>Connecting...</source>
+        <translation>Свързване...</translation>
+    </message>
+    <message>
+        <location filename="../src/AccountFactoryWrapperDelegate.cpp" line="115"/>
+        <source>Offline</source>
+        <translation>Извън линия</translation>
+    </message>
+</context>
+<context>
+    <name>ActionCollection</name>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="43"/>
+        <source>&amp;Listen Along</source>
+        <translation>&amp;Слушай заедно</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="46"/>
+        <source>Stop &amp;Listening Along</source>
+        <translation>Спри &amp; да слушаш заедно</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="50"/>
+        <source>&amp;Follow in real-time</source>
+        <translation>&amp;Последвай </translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="55"/>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="105"/>
+        <source>&amp;Listen Privately</source>
+        <translation>&amp;Слушай самостоятелно</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="55"/>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="105"/>
+        <source>&amp;Listen Publicly</source>
+        <translation>&amp;Слушай публично</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="61"/>
+        <source>&amp;Load Playlist</source>
+        <translation>&amp;Зареди списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="62"/>
+        <source>&amp;Rename Playlist</source>
+        <translation>&amp;Преименувай списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="63"/>
+        <source>&amp;Copy Playlist Link</source>
+        <translation>&amp;Копирай връзка към списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="64"/>
+        <source>&amp;Play</source>
+        <translation>&amp;Изпълни</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="65"/>
+        <source>&amp;Stop</source>
+        <translation>&amp;Спри</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="66"/>
+        <source>&amp;Previous Track</source>
+        <translation>&amp;Предходна песен</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="67"/>
+        <source>&amp;Next Track</source>
+        <translation>&amp;Следваща песен</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/actioncollection.cpp" line="68"/>
+        <source>&amp;Quit</source>
+        <translation>&amp;Изключи приложението</translation>
+    </message>
+</context>
+<context>
+    <name>AlbumInfoWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.ui" line="31"/>
+        <source>Other Albums by Artist</source>
+        <translation>Други албуми на този артист</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="71"/>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="117"/>
+        <source>Click to show SuperCollection Tracks</source>
+        <translation>Покажи песните от супер колекцията</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="73"/>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="119"/>
+        <source>Click to show Official Tracks</source>
+        <translation>Покажи само официалните песни</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="78"/>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="135"/>
+        <source>Click to show SuperCollection Albums</source>
+        <translation>Покажи албумите от супер колекцията</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="137"/>
+        <source>Click to show Official Albums</source>
+        <translation>Покажи само официалните албуми</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp" line="204"/>
+        <source>Other Albums by %1</source>
+        <translation>Други албуми от %1</translation>
+    </message>
+</context>
+<context>
+    <name>AlbumModel</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/albummodel.cpp" line="145"/>
+        <source>Album</source>
+        <translation>Албум</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/albummodel.cpp" line="260"/>
+        <location filename="../src/libtomahawk/playlist/albummodel.cpp" line="302"/>
+        <source>All albums from %1</source>
+        <translation>Всички албуми на %1</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/albummodel.cpp" line="304"/>
+        <source>All albums</source>
+        <translation>Всички албуми</translation>
+    </message>
+</context>
+<context>
+    <name>AlbumView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/albumview.cpp" line="155"/>
+        <source>After you have scanned your music collection you will find your latest album additions right here.</source>
+        <translation>След като сканирате музикалната ви колекция, ще откриете най-скоро добавените албуми тук.</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/albumview.cpp" line="157"/>
+        <source>This collection doesn&apos;t have any recent albums.</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ArtistInfoWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui" line="37"/>
+        <source>Top Hits</source>
+        <translation>Най-големи хитове</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui" line="55"/>
+        <source>Related Artists</source>
+        <translation>Свързани артисти</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.ui" line="77"/>
+        <source>Albums</source>
+        <translation>Албуми</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp" line="86"/>
+        <location filename="../src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp" line="125"/>
+        <source>Click to show SuperCollection Albums</source>
+        <translation>Покажи албумите от супер колекцията</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/ArtistInfoWidget.cpp" line="127"/>
+        <source>Click to show Official Albums</source>
+        <translation>Покажи само официалните албуми</translation>
+    </message>
+</context>
+<context>
+    <name>ArtistView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/artistview.cpp" line="272"/>
+        <source>After you have scanned your music collection you will find your tracks right here.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/artistview.cpp" line="274"/>
+        <source>This collection is currently empty.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/artistview.cpp" line="291"/>
+        <source>Sorry, your filter &apos;%1&apos; did not match any results.</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>AudioControls</name>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="75"/>
+        <source>Prev</source>
+        <translation>Предходна</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="87"/>
+        <source>Play</source>
+        <translation>Изпълни</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="94"/>
+        <source>Pause</source>
+        <translation>Пауза</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="103"/>
+        <source>Next</source>
+        <translation>Следваща</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="214"/>
+        <source>Artist</source>
+        <translation>Артист</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="236"/>
+        <source>Album</source>
+        <translation>Албум</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="265"/>
+        <source>Owner</source>
+        <translation>Притежател</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="302"/>
+        <source>love</source>
+        <translation>Харесай</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="346"/>
+        <source>Time</source>
+        <translation>Продължителност</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="375"/>
+        <source>Time Left</source>
+        <translation>Оставащо време</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="453"/>
+        <source>Shuffle</source>
+        <translation>Разбъркано</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="466"/>
+        <source>Repeat</source>
+        <translation>Повтори</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="504"/>
+        <source>Low</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <location filename="../src/audiocontrols.ui" line="536"/>
+        <source>High</source>
+        <translation>100%</translation>
+    </message>
+</context>
+<context>
+    <name>AudioEngine</name>
+    <message>
+        <location filename="../src/libtomahawk/audio/audioengine.cpp" line="190"/>
+        <source>Tomahawk is stopped.</source>
+        <translation>Tomahawk е спрян</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/audio/audioengine.cpp" line="358"/>
+        <source>Tomahawk is playing &quot;%1&quot; by %2%3.</source>
+        <translation>Tomahawk изпълнява &quot;%1&quot; от %2%3.</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/audio/audioengine.cpp" line="361"/>
+        <source>on album %1</source>
+        <translation>от албум %1</translation>
+    </message>
+</context>
+<context>
+    <name>CategoryAddItem</name>
+    <message>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="61"/>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="100"/>
+        <source>New Playlist</source>
+        <translation>Нов списък</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="63"/>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="207"/>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="316"/>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="318"/>
+        <source>New Station</source>
+        <translation>Нова станция</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="207"/>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="316"/>
+        <location filename="../src/sourcetree/items/categoryitems.cpp" line="318"/>
+        <source>%1 Station</source>
+        <translation>%1 Станция</translation>
+    </message>
+</context>
+<context>
+    <name>CategoryItem</name>
+    <message>
+        <location filename="../src/sourcetree/items/categoryitems.h" line="63"/>
+        <source>Playlists</source>
+        <translation>Списъци</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/items/categoryitems.h" line="65"/>
+        <source>Stations</source>
+        <translation>Станции</translation>
+    </message>
+</context>
+<context>
+    <name>ClearButton</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/clearbutton.cpp" line="38"/>
+        <source>Clear</source>
+        <translation>Изчисти</translation>
+    </message>
+</context>
+<context>
+    <name>CollectionFlatModel</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/collectionflatmodel.cpp" line="72"/>
+        <source>My Collection</source>
+        <translation>Моята колекция</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/collectionflatmodel.cpp" line="74"/>
+        <source>Collection of %1</source>
+        <translation>Колекцията на %1</translation>
+    </message>
+</context>
+<context>
+    <name>CollectionView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/collectionview.cpp" line="85"/>
+        <source>This collection is empty.</source>
+        <translation>Тази колекция е празна.</translation>
+    </message>
+</context>
+<context>
+    <name>ContextWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/context/ContextWidget.ui" line="26"/>
+        <source>InfoBar</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/context/ContextWidget.ui" line="38"/>
+        <location filename="../src/libtomahawk/context/ContextWidget.cpp" line="344"/>
+        <source>Show Footnotes</source>
+        <translation>Покажи подробности</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/context/ContextWidget.cpp" line="338"/>
+        <source>Hide Footnotes</source>
+        <translation>Скрий подробности</translation>
+    </message>
+</context>
+<context>
+    <name>CrashReporter</name>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.ui" line="23"/>
+        <source>Tomahawk Crash Reporter</source>
+        <translation>Автоматично докладване на грешки на Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.ui" line="80"/>
+        <source>&lt;p&gt;&lt;b&gt;Sorry!&lt;/b&gt;&amp;nbsp;Tomahawk crashed. Information about the crash is now being sent to Tomahawk HQ so that we can fix the bug.&lt;/p&gt;</source>
+        <translation>&lt;p&gt;&lt;b&gt;Извинявай&lt;/b&gt;!
+ Tomahawk спря да работи. Информация относно проблемът се изпраща към нашата централа, за да можем да го отстраним.</translation>
+    </message>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.ui" line="172"/>
+        <source>Abort</source>
+        <translation>Откажи</translation>
+    </message>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.ui" line="192"/>
+        <source>You can disable sending crash reports in the configuration dialog.</source>
+        <translation>Можете да спрете изпращането на информация относно проблеми в панелът с настройки.</translation>
+    </message>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.cpp" line="153"/>
+        <source>Uploaded %L1 of %L2 KB.</source>
+        <translation>Качени %L1 от %В2 КБ</translation>
+    </message>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.cpp" line="167"/>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.cpp" line="183"/>
+        <source>Close</source>
+        <translation>Затвори</translation>
+    </message>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.cpp" line="176"/>
+        <source>Sent! &lt;b&gt;Many thanks&lt;/b&gt;.</source>
+        <translation>Изпращането приключи. Благодарим ви за отзивчивостта! :)</translation>
+    </message>
+    <message>
+        <location filename="../src/breakpad/CrashReporter/CrashReporter.cpp" line="184"/>
+        <source>Failed to send crash info.</source>
+        <translation>Изпращането на краш-данни е неуспешно.</translation>
+    </message>
+</context>
+<context>
+    <name>DatabaseCommand_AllAlbums</name>
+    <message>
+        <location filename="../src/libtomahawk/database/databasecommand_allalbums.cpp" line="109"/>
+        <source>Unknown</source>
+        <translation>Неизвестно</translation>
+    </message>
+</context>
+<context>
+    <name>DelegateConfigWrapper</name>
+    <message>
+        <location filename="../src/delegateconfigwrapper.cpp" line="61"/>
+        <source>Delete Account</source>
+        <translation>Изтрий регистрация</translation>
+    </message>
+</context>
+<context>
+    <name>DiagnosticsDialog</name>
+    <message>
+        <location filename="../src/diagnosticsdialog.ui" line="20"/>
+        <source>Tomahawk Diagnostics</source>
+        <translation>Диагностична информация относно Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/diagnosticsdialog.ui" line="38"/>
+        <source>Update</source>
+        <translation>Обнови</translation>
+    </message>
+    <message>
+        <location filename="../src/diagnosticsdialog.ui" line="45"/>
+        <source>Copy to Clipboard</source>
+        <translation>Копирай в буферът</translation>
+    </message>
+</context>
+<context>
+    <name>DropJob</name>
+    <message>
+        <location filename="../src/libtomahawk/dropjob.cpp" line="832"/>
+        <source>No tracks found for given %1</source>
+        <translation>Няма открити изпълнения на %1</translation>
+    </message>
+</context>
+<context>
+    <name>GlobalSearchWidget</name>
+    <message>
+        <location filename="../src/searchbox.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IndexingJobItem</name>
+    <message>
+        <location filename="../src/libtomahawk/jobview/IndexingJobItem.cpp" line="31"/>
+        <source>Indexing database</source>
+        <translation>Индексиране на БД</translation>
+    </message>
+</context>
+<context>
+    <name>InfoBar</name>
+    <message>
+        <location filename="../src/libtomahawk/infobar/infobar.ui" line="26"/>
+        <source>InfoBar</source>
+        <translation>Информационно поле</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/infobar/infobar.cpp" line="85"/>
+        <source>Automatically update</source>
+        <translation>Автоматично обновление</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/infobar/infobar.cpp" line="93"/>
+        <source>Filter...</source>
+        <translation>Филтър...</translation>
+    </message>
+</context>
+<context>
+    <name>JobStatusView</name>
+    <message>
+        <location filename="../src/PipelineStatusView.cpp" line="44"/>
+        <source>Searching For</source>
+        <translation>Търсене за</translation>
+    </message>
+    <message>
+        <location filename="../src/PipelineStatusView.cpp" line="44"/>
+        <source>Pending</source>
+        <translation>Изчакващо</translation>
+    </message>
+    <message>
+        <location filename="../src/PipelineStatusView.cpp" line="94"/>
+        <source>Idle</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>LastFmConfig</name>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.ui" line="41"/>
+        <source>Scrobble tracks to Last.fm</source>
+        <translation>Изпращане на изпълнени песни към Last.fm</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.ui" line="50"/>
+        <source>Username:</source>
+        <translation>Потребителско име:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.ui" line="60"/>
+        <source>Password:</source>
+        <translation>Парола:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.ui" line="76"/>
+        <source>Test Login</source>
+        <translation>Пробна връзка</translation>
+    </message>
+</context>
+<context>
+    <name>LastfmContext</name>
+    <message>
+        <location filename="../src/libtomahawk/context/pages/WikipediaContext.h" line="67"/>
+        <source>Last.fm</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>LatchedStatusItem</name>
+    <message>
+        <location filename="../src/libtomahawk/jobview/LatchedStatusItem.cpp" line="33"/>
+        <source>%1 is listening along to you!</source>
+        <translation>%1 слуша заедно с теб!</translation>
+    </message>
+</context>
+<context>
+    <name>LoadXSPF</name>
+    <message>
+        <location filename="../src/LoadXSPFDialog.ui" line="14"/>
+        <source>Load XSPF</source>
+        <translation>Зареди XSPF</translation>
+    </message>
+    <message>
+        <location filename="../src/LoadXSPFDialog.ui" line="22"/>
+        <source>Playlist URL</source>
+        <translation>Адрес на списък</translation>
+    </message>
+    <message>
+        <location filename="../src/LoadXSPFDialog.ui" line="29"/>
+        <source>Enter URL...</source>
+        <translation>Въведи адрес...</translation>
+    </message>
+    <message>
+        <location filename="../src/LoadXSPFDialog.ui" line="42"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/LoadXSPFDialog.ui" line="51"/>
+        <source>Automatically update</source>
+        <translation>Автоматично обновяване</translation>
+    </message>
+</context>
+<context>
+    <name>LoadXSPFDialog</name>
+    <message>
+        <location filename="../src/LoadXSPFDialog.cpp" line="47"/>
+        <source>Load XSPF File</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/LoadXSPFDialog.cpp" line="47"/>
+        <source>XSPF Files (*.xspf)</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>LocalCollection</name>
+    <message>
+        <location filename="../src/libtomahawk/database/localcollection.cpp" line="54"/>
+        <source>Bookmarks</source>
+        <translation>Отметки</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/database/localcollection.cpp" line="54"/>
+        <source>Saved tracks</source>
+        <translation>Запаметени изпълнения</translation>
+    </message>
+</context>
+<context>
+    <name>NewPlaylistWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/newplaylistwidget.ui" line="20"/>
+        <source>Enter a title for the new playlist:</source>
+        <translation>Въведи име за новият списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/newplaylistwidget.ui" line="37"/>
+        <source>Tomahawk offers a variety of ways to help you create playlists and find music you enjoy!</source>
+        <translation>Tomahawk предлага множесто начини за създаване на списъци за изпълнение и откриване на любимата ти музика!</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/newplaylistwidget.ui" line="47"/>
+        <source>Just enter a genre or tag name and Tomahawk will suggest a few songs to get you started with your new playlist:</source>
+        <translation>Просто въведи стил или име и Tomahawk ще ти предложи няколко песни с които да стартира новият ти списък:</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/newplaylistwidget.cpp" line="43"/>
+        <source>&amp;Create Playlist</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/newplaylistwidget.h" line="50"/>
+        <source>Create a new playlist</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>PlaylistItemDelegate</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/playlistitemdelegate.cpp" line="182"/>
+        <source>played %1 by you</source>
+        <translation>изпълнен %1 от теб</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/playlistitemdelegate.cpp" line="184"/>
+        <source>played %1 by %2</source>
+        <translation>изпълнен %1 от %2</translation>
+    </message>
+</context>
+<context>
+    <name>PlaylistLargeItemDelegate</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp" line="179"/>
+        <source>played %1 by you</source>
+        <translation>изпълнен %1 от теб</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp" line="181"/>
+        <source>played %1 by %2</source>
+        <translation>изпълнен %1 от %2</translation>
+    </message>
+</context>
+<context>
+    <name>PlaylistModel</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/playlistmodel.cpp" line="77"/>
+        <source>A playlist by %1, created %2</source>
+        <translation>Списък  с изпълниния на %1, създаден  %2</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/playlistmodel.cpp" line="78"/>
+        <source>you</source>
+        <translation>ти</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/playlistmodel.cpp" line="132"/>
+        <source>All tracks by %1 on album %2</source>
+        <translation>Всички изпълнения от %1 от албум %2</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/playlistmodel.cpp" line="152"/>
+        <source>All tracks by %1</source>
+        <translation>Всички изпълнения от %1</translation>
+    </message>
+</context>
+<context>
+    <name>PlaylistTypeSelectorDlg</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/playlisttypeselectordlg.ui" line="32"/>
+        <source>New Playlist</source>
+        <translation>Нов списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/playlisttypeselectordlg.ui" line="49"/>
+        <source>Just a regular old playlist... Give it a name, drag in some tracks, and go!</source>
+        <translation>Обикновен стар списък... Наименовай го, довлачи няколко изпълнения и  давай напред!</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/playlisttypeselectordlg.ui" line="75"/>
+        <source>Don&apos;t know exactly what you want? Give Tomahawk a few pointers and let it build a playlist for you!</source>
+        <translation>Не знаеш точно какво искаш? Дай на Tomahawk няколко начални идеи и му позволи да създаде списък с песни за теб!</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/playlisttypeselectordlg.ui" line="92"/>
+        <source>Name:</source>
+        <translation>Име:</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/playlisttypeselectordlg.ui" line="102"/>
+        <source>New Playlist...</source>
+        <translation>Нов списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/playlisttypeselectordlg.ui" line="113"/>
+        <source>Create Manual Playlist</source>
+        <translation>Създай ръчно създаден списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/playlisttypeselectordlg.ui" line="123"/>
+        <source>Create Automatic Playlist</source>
+        <translation>Създай автоматично генериран списък</translation>
+    </message>
+</context>
+<context>
+    <name>PlaylistView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/playlistview.cpp" line="145"/>
+        <source>This playlist is currently empty. Add some tracks to it and enjoy the music!</source>
+        <translation>Този списък в момента е празен. Добави няколко изпълнения и се наслади на музиката!</translation>
+    </message>
+</context>
+<context>
+    <name>ProxyDialog</name>
+    <message>
+        <location filename="../src/proxydialog.ui" line="17"/>
+        <source>Proxy Settings</source>
+        <translation>Proxy настройки</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="70"/>
+        <source>Hostname of proxy server</source>
+        <translation>Адрес на proxy сървър</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="77"/>
+        <source>Host</source>
+        <translation>Адрес</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="84"/>
+        <source>Port</source>
+        <translation>Порт</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="104"/>
+        <source>Proxy login</source>
+        <translation>Настройка на влизане</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="111"/>
+        <source>User</source>
+        <translation>Потребител</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="118"/>
+        <source>Password</source>
+        <translation>Парола</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="128"/>
+        <source>Proxy password</source>
+        <translation>Парола за proxy</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="135"/>
+        <source>Type</source>
+        <translation>Тип</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="142"/>
+        <source>No Proxy Hosts:
+(Overrides system proxy)</source>
+        <translation>Без адреси за Proxy  (Отменя системните настройки)</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="150"/>
+        <source>localhost *.example.com (space separated)</source>
+        <translation>localhost *.example.com (отделени с интервал)</translation>
+    </message>
+    <message>
+        <location filename="../src/proxydialog.ui" line="167"/>
+        <source>Use proxy for DNS lookups?</source>
+        <translation>Използване на Proxy за DNS заявки?</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <location filename="../src/libtomahawk/accounts/Account.cpp" line="34"/>
+        <source>Friend Finders</source>
+        <translation>Търсене на приятели</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/accounts/Account.cpp" line="36"/>
+        <source>Music Finders</source>
+        <translation>Търсене на музика</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/accounts/Account.cpp" line="39"/>
+        <source>Status Updaters</source>
+        <translation>Обновяване на статус</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="214"/>
+        <source>%n year(s) ago</source>
+        <translation>
+            <numerusform>Преди %n години</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="216"/>
+        <source>%n year(s)</source>
+        <translation>
+            <numerusform>%n години</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="222"/>
+        <source>%n month(s) ago</source>
+        <translation>
+            <numerusform>Преди %n месеца</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="224"/>
+        <source>%n month(s)</source>
+        <translation>
+            <numerusform>%n месеца</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="230"/>
+        <source>%n week(s) ago</source>
+        <translation>
+            <numerusform>Преди %n седмици</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="232"/>
+        <source>%n week(s)</source>
+        <translation>
+            <numerusform>%n седмици</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="238"/>
+        <source>%n day(s) ago</source>
+        <translation>
+            <numerusform>Преди %n дена</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="240"/>
+        <source>%n day(s)</source>
+        <translation>
+            <numerusform>%n дни</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="246"/>
+        <source>%n hour(s) ago</source>
+        <translation>
+            <numerusform>Преди %n часа</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="248"/>
+        <source>%n hour(s)</source>
+        <translation>
+            <numerusform> %n часа</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="254"/>
+        <source>%1 minutes ago</source>
+        <translation>Преди %1 минути</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="256"/>
+        <source>%1 minutes</source>
+        <translation>%1 минути</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/tomahawkutils.cpp" line="260"/>
+        <source>just now</source>
+        <translation>Сега</translation>
+    </message>
+</context>
+<context>
+    <name>QuaZipFilePrivate</name>
+    <message>
+        <location filename="../src/libtomahawk/thirdparty/quazip/quazip/quazipfile.cpp" line="172"/>
+        <source>ZIP/UNZIP API error %1</source>
+        <translation>ZIP/UNZIP API грешка %1</translation>
+    </message>
+</context>
+<context>
+    <name>QueueView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/queueview.ui" line="26"/>
+        <source>InfoBar</source>
+        <translation>Информационно поле</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/queueview.ui" line="41"/>
+        <location filename="../src/libtomahawk/playlist/queueview.cpp" line="120"/>
+        <source>Show Queue</source>
+        <translation>Покажи опашката</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/queueview.cpp" line="130"/>
+        <source>Hide Queue</source>
+        <translation>Скрий опашката</translation>
+    </message>
+</context>
+<context>
+    <name>RelatedArtistsContext</name>
+    <message>
+        <location filename="../src/libtomahawk/context/pages/RelatedArtistsContext.h" line="48"/>
+        <source>Related Artists</source>
+        <translation>Подобни артисти</translation>
+    </message>
+</context>
+<context>
+    <name>ResolverConfigDelegate</name>
+    <message>
+        <location filename="../src/resolverconfigdelegate.cpp" line="110"/>
+        <source>Not found: %1</source>
+        <translation>Не откривам : %1</translation>
+    </message>
+    <message>
+        <location filename="../src/resolverconfigdelegate.cpp" line="113"/>
+        <source>Failed to load: %1</source>
+        <translation>Неуспех при зареждане на  %1</translation>
+    </message>
+</context>
+<context>
+    <name>SearchLineEdit</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/searchlineedit.cpp" line="58"/>
+        <source>Search</source>
+        <translation>Търси</translation>
+    </message>
+</context>
+<context>
+    <name>SearchWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/searchwidget.h" line="54"/>
+        <source>Search: %1</source>
+        <translation>Търси %1</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/searchwidget.h" line="55"/>
+        <source>Results for &apos;%1&apos;</source>
+        <translation>Резултати за &apos;%1&apos;</translation>
+    </message>
+</context>
+<context>
+    <name>SettingsDialog</name>
+    <message>
+        <location filename="../src/settingsdialog.cpp" line="124"/>
+        <source>All</source>
+        <translation>Всички</translation>
+    </message>
+    <message>
+        <location filename="../src/settingsdialog.cpp" line="238"/>
+        <source>Services</source>
+        <translation>Услуги</translation>
+    </message>
+    <message>
+        <location filename="../src/settingsdialog.cpp" line="245"/>
+        <source>Collection</source>
+        <translation>Колекция</translation>
+    </message>
+    <message>
+        <location filename="../src/settingsdialog.cpp" line="252"/>
+        <source>Advanced</source>
+        <translation>Разширени</translation>
+    </message>
+    <message>
+        <location filename="../src/settingsdialog.cpp" line="396"/>
+        <source>Install resolver from file</source>
+        <translation>Инсталирай услиги за търсене от файл</translation>
+    </message>
+    <message>
+        <location filename="../src/settingsdialog.cpp" line="423"/>
+        <source>Information</source>
+        <translation>Информация</translation>
+    </message>
+    <message>
+        <location filename="../src/settingsdialog.cpp" line="423"/>
+        <source>Changing this setting requires a restart of Tomahawk!</source>
+        <translation>Промяната на тази настройка(и) изисква рестартиране на програмата!</translation>
+    </message>
+</context>
+<context>
+    <name>SocialPlaylistWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/SocialPlaylistWidget.ui" line="34"/>
+        <source>Popular New Albums From Your Friends</source>
+        <translation>Популярни нови албуми от твоите приятели</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/SocialPlaylistWidget.ui" line="48"/>
+        <source>Most Played Playlists</source>
+        <translation>Най-изпълнявани списъци</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/SocialPlaylistWidget.ui" line="63"/>
+        <source>Most Played Tracks You Don&apos;t Have</source>
+        <translation>Най-изпълнявани песни, които нямаш в наличност</translation>
+    </message>
+</context>
+<context>
+    <name>SourceDelegate</name>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="54"/>
+        <source>Track</source>
+        <translation>Песен</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="55"/>
+        <source>Album</source>
+        <translation>Албум</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="56"/>
+        <source>Artist</source>
+        <translation>Артист</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="57"/>
+        <source>Local</source>
+        <translation>Локално</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="58"/>
+        <source>Top 10</source>
+        <translation>Първите 10</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="186"/>
+        <source>Offline</source>
+        <translation>Извън линия</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="188"/>
+        <source>All available tracks</source>
+        <translation>Всички налични изпълнения</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="195"/>
+        <source>Online</source>
+        <translation>На линия</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="288"/>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="329"/>
+        <source>Show</source>
+        <translation>Покажи</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="290"/>
+        <location filename="../src/sourcetree/sourcedelegate.cpp" line="331"/>
+        <source>Hide</source>
+        <translation>Скрий</translation>
+    </message>
+</context>
+<context>
+    <name>SourceInfoWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/sourceinfowidget.ui" line="30"/>
+        <source>Recent Albums</source>
+        <translation>Скорошни албуми</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/sourceinfowidget.ui" line="74"/>
+        <source>Latest Additions</source>
+        <translation>Последно добавени</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/sourceinfowidget.ui" line="88"/>
+        <source>Recently Played Tracks</source>
+        <translation>Наскоро изпълнени песни</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp" line="80"/>
+        <source>New Additions</source>
+        <translation>Нови попълнения</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp" line="83"/>
+        <source>My recent activity</source>
+        <translation>Скорошна активност</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/infowidgets/sourceinfowidget.cpp" line="87"/>
+        <source>Recent activity from %1</source>
+        <translation>Скорошна активност на %1</translation>
+    </message>
+</context>
+<context>
+    <name>SourceItem</name>
+    <message>
+        <location filename="../src/sourcetree/items/sourceitem.cpp" line="65"/>
+        <source>Collection</source>
+        <translation>Колекция</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/items/sourceitem.cpp" line="73"/>
+        <source>Latest Additions</source>
+        <translation>Последно добавен</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/items/sourceitem.cpp" line="77"/>
+        <source>Recently Played</source>
+        <translation>Наскоро изпълнени песни</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/items/sourceitem.cpp" line="81"/>
+        <source>Loved Tracks</source>
+        <translation>Харесани песни</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/items/sourceitem.cpp" line="146"/>
+        <source>SuperCollection</source>
+        <translation>Супер колекция</translation>
+    </message>
+</context>
+<context>
+    <name>SourceTreeView</name>
+    <message>
+        <location filename="../src/sourcetree/sourcetreeview.cpp" line="186"/>
+        <source>&amp;Copy Link</source>
+        <translation>&amp;Копирай адресът</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcetreeview.cpp" line="187"/>
+        <source>&amp;Delete %1</source>
+        <translation>&amp;Изтрий %1</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcetreeview.cpp" line="205"/>
+        <source>&amp;Export Playlist</source>
+        <translation>&amp;Изнеси списък</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcetreeview.cpp" line="328"/>
+        <source>Save XSPF</source>
+        <translation>Запази XSPF</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcetreeview.cpp" line="329"/>
+        <source>Playlists (*.xspf)</source>
+        <translation>Списъци (*.xspf)</translation>
+    </message>
+</context>
+<context>
+    <name>SourcesModel</name>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="78"/>
+        <source>Group</source>
+        <translation>Гпупирай</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="81"/>
+        <source>Collection</source>
+        <translation>Колекция</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="84"/>
+        <source>Playlist</source>
+        <translation>Списък за изпълнение</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="87"/>
+        <source>Automatic Playlist</source>
+        <translation>Автоматичен списък</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="90"/>
+        <source>Station</source>
+        <translation>Станция</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="268"/>
+        <source>Browse</source>
+        <translation>Разгледай</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="269"/>
+        <source>Search History</source>
+        <translation>Търси в историята</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="271"/>
+        <source>My Music</source>
+        <translation>Моята музика</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="274"/>
+        <source>SuperCollection</source>
+        <translation>Супер колекция</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="280"/>
+        <source>Top Loved Tracks</source>
+        <translation>Най-харесвани песни</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="285"/>
+        <source>Dashboard</source>
+        <translation>Табло</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="290"/>
+        <source>Charts</source>
+        <translation>Класации</translation>
+    </message>
+    <message>
+        <location filename="../src/sourcetree/sourcesmodel.cpp" line="295"/>
+        <source>Friends</source>
+        <translation>Приятели</translation>
+    </message>
+</context>
+<context>
+    <name>SpotifyConfig</name>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="48"/>
+        <source>Configure your Spotify credentials</source>
+        <translation>Настрой твоити Spotify настройки на регистрация</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="65"/>
+        <source>Username:</source>
+        <translation>Потребителско име</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="72"/>
+        <source>placeholderUsername</source>
+        <translation>потребителско име</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="79"/>
+        <source>Password:</source>
+        <translation>Парола:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="86"/>
+        <source>placeholderPw</source>
+        <translation>парола</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="116"/>
+        <source>High Quality Streaming</source>
+        <translation>Висококачествен поток</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccountConfig.ui" line="186"/>
+        <source>This product uses SPOTIFY(R) CORE but is not endorsed, certified or otherwise approved in any way by Spotify. Spotify is the registered trade mark of the Spotify Group.</source>
+        <translation>Този продукт ползва ядрото на  SPOTIFY(R), но не е поддържан, сертифицират или одобрен по какъвто и да е начин от Spotify. 
+Spotify e TM на Spotify Group.</translation>
+    </message>
+</context>
+<context>
+    <name>StackedSettingsDialog</name>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="14"/>
+        <source>Tomahawk Settings</source>
+        <translation>Настройки на Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="98"/>
+        <source>Internet Services</source>
+        <translation>Интернет услуги</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="109"/>
+        <source>Install from file...</source>
+        <translation>Инсталирай от файл...</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="129"/>
+        <source>Filter by capability:</source>
+        <translation>Филтрирай по възможности:</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="158"/>
+        <source>Local Music Information</source>
+        <translation>Информация за локалната музика</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="166"/>
+        <source>Path to scan for music files:</source>
+        <translation>Път за сканиране за музика:</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="180"/>
+        <source>The Echo Nest supports keeping track of your catalog metadata
+ and using it to craft personalized radios. Enabling this option
+ will allow you (and all your friends) to create automatic playlists
+ and stations based on your personal taste profile.</source>
+        <translation>The Echo Nest поддържа постоянно актуална информация за съдържанието на твоят  каталог и
+и я използва за създаването на персонализирани станции. Активирането на тази опция
+ще позволи ти (и твоите приятели) да създадавате персонализирани списъци за изпълнение, 
+базирани на вашият персонален вкус.</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="186"/>
+        <source>Upload collection list to The Echo Nest to enable user radio</source>
+        <translation>Качи списък на колекцията ти в The Echo Nest за да се създаде потребителско радио</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="199"/>
+        <source>Watch for changes</source>
+        <translation>Наблюдавай за промени</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="208"/>
+        <source>Time between scans, in seconds:</source>
+        <translation>Време между две сканирания, в секунди</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="245"/>
+        <source>Advanced Network Settings</source>
+        <translation>Разширени мрежови настройки</translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="265"/>
+        <source>If you&apos;re having difficulty connecting to peers, try setting this to your external IP address/host name and a port number (default 50210). Make sure to forward that port to this machine!</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="283"/>
+        <source>Static Host Name:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="299"/>
+        <source>Static Port:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="321"/>
+        <source>Always use static host name/port? (Overrides UPnP discovery/port forwarding)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="345"/>
+        <source>Proxy Settings...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="383"/>
+        <source>Send reports after Tomahawk crashed</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="396"/>
+        <source>Playdar HTTP API</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/stackedsettingsdialog.ui" line="409"/>
+        <source>Use UPnP to establish port forward</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::AccountDelegate</name>
+    <message>
+        <location filename="../src/AccountDelegate.cpp" line="200"/>
+        <source>Add Account</source>
+        <translation>Добави регистрация</translation>
+    </message>
+    <message>
+        <location filename="../src/AccountDelegate.cpp" line="250"/>
+        <source>Remove Account</source>
+        <translation>Премахни регистрация</translation>
+    </message>
+    <message>
+        <location filename="../src/AccountDelegate.cpp" line="360"/>
+        <source>%1 downloads</source>
+        <translation>%1 сваляния</translation>
+    </message>
+    <message>
+        <location filename="../src/AccountDelegate.cpp" line="585"/>
+        <source>Online</source>
+        <translation>На линия</translation>
+    </message>
+    <message>
+        <location filename="../src/AccountDelegate.cpp" line="590"/>
+        <source>Connecting...</source>
+        <translation>Свързване...</translation>
+    </message>
+    <message>
+        <location filename="../src/AccountDelegate.cpp" line="595"/>
+        <source>Offline</source>
+        <translation>Извън линия</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::GoogleWrapper</name>
+    <message>
+        <location filename="../src/accounts/xmpp/googlewrapper/googlewrapper.cpp" line="82"/>
+        <source>Configure this Google Account</source>
+        <translation>Настрой регистрацията в Google</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/googlewrapper/googlewrapper.cpp" line="83"/>
+        <source>Google Address</source>
+        <translation>Google адрес</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/googlewrapper/googlewrapper.cpp" line="84"/>
+        <source>Enter your Google login to connect with your friends using Tomahawk!</source>
+        <translation>Въведи твоята Google регистрация за да можеш да се свържеш с твоите приятели, ползващи Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/googlewrapper/googlewrapper.cpp" line="85"/>
+        <source>username@gmail.com</source>
+        <translation>потребителско_име@gmail.com</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::GoogleWrapperFactory</name>
+    <message>
+        <location filename="../src/accounts/xmpp/googlewrapper/googlewrapper.h" line="42"/>
+        <source>Connect to Google Talk to find your friends</source>
+        <translation>Свържи се с Google Talk да можеш да търсиш твоите приятели</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::GoogleWrapperSip</name>
+    <message>
+        <location filename="../src/accounts/xmpp/googlewrapper/googlewrapper.cpp" line="61"/>
+        <source>Add Friend</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/googlewrapper/googlewrapper.cpp" line="62"/>
+        <source>Enter Google Address:</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::LastFmAccountFactory</name>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmAccount.h" line="47"/>
+        <source>Scrobble your tracks to last.fm, and find freely downloadable tracks to play</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::LastFmConfig</name>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.cpp" line="108"/>
+        <location filename="../src/accounts/lastfm/LastFmConfig.cpp" line="123"/>
+        <source>Failed</source>
+        <translation>Неуспешно</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.cpp" line="113"/>
+        <source>Success</source>
+        <translation>Успех!</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/LastFmConfig.cpp" line="129"/>
+        <source>Could not contact server</source>
+        <translation>Не мога да се свържа със сървъра</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::SpotifyAccountFactory</name>
+    <message>
+        <location filename="../src/accounts/spotify/SpotifyAccount.h" line="44"/>
+        <source>Play music from and sync your playlists with Spotify Premium</source>
+        <translation>Слушай музика и синхронизирай твоите списъци със  Spotify Premium</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::TwitterAccountFactory</name>
+    <message>
+        <location filename="../src/accounts/twitter/twitteraccount.h" line="50"/>
+        <source>Connect to your Twitter followers.</source>
+        <translation>Свържи се с твоите приятели в Twitter</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::TwitterConfigWidget</name>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="58"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="141"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="189"/>
+        <source>Tweet!</source>
+        <translation>Чурулик!</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="66"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="167"/>
+        <source>Status: No saved credentials</source>
+        <translation>Няма запазени данни за вход</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="67"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="92"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="168"/>
+        <source>Authenticate</source>
+        <translation type="unfinished">Удостовери</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="74"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="136"/>
+        <source>Status: Credentials saved for %1</source>
+        <translation type="unfinished">Няма запазени данни за вход</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="75"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="137"/>
+        <source>De-authenticate</source>
+        <translation type="unfinished">Премахни удостоверяване</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="122"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="200"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="211"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="229"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="271"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="280"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="290"/>
+        <source>Tweetin&apos; Error</source>
+        <translation type="unfinished">Грешка при изпращане на съобщение</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="122"/>
+        <source>The credentials could not be verified.
+You may wish to try re-authenticating.</source>
+        <translation type="unfinished">Данните за вход не могат да бъдат потвърдени.
+Моля, опитай отново.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="152"/>
+        <source>Status: Error validating credentials</source>
+        <translation type="unfinished">Грешка при валидиране на данни за вход</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="179"/>
+        <source>Global Tweet</source>
+        <translation type="unfinished">Общо съобщение</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="184"/>
+        <source>Direct Message</source>
+        <translation type="unfinished">Лично съобщение</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="185"/>
+        <source>Send Message!</source>
+        <translation type="unfinished">Чурулик!</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="186"/>
+        <source>@Mention</source>
+        <translation type="unfinished">@Споменаване</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="187"/>
+        <source>Send Mention!</source>
+        <translation type="unfinished">Чурулик!</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="200"/>
+        <source>You must enter a user name for this type of tweet.</source>
+        <translation type="unfinished">Въведи име на потребител, за този вид съобщение.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="211"/>
+        <source>Your saved credentials could not be loaded.
+You may wish to try re-authenticating.</source>
+        <translation type="unfinished">Данните ти за вход не могат да бъдат заредени.
+Моля, оторизирай програмата отново.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="229"/>
+        <source>Your saved credentials could not be verified.
+You may wish to try re-authenticating.</source>
+        <translation type="unfinished">Запаметените данни за вход не могат да бъдат потвърдени.
+Моля, оторизирай програмата отново.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="271"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="290"/>
+        <source>There was an error posting your status -- sorry!</source>
+        <translation type="unfinished">Грешка при побликуване. Опитай отново.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="273"/>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="282"/>
+        <source>Tweeted!</source>
+        <translation type="unfinished">Изчуруликано!</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="273"/>
+        <source>Your tweet has been posted!</source>
+        <translation type="unfinished">Съобщението ти беше побликувано.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="280"/>
+        <source>There was an error posting your direct message -- sorry!</source>
+        <translation type="unfinished">Грешка при изпращане на лично съобщение.
+Опитай отново.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.cpp" line="282"/>
+        <source>Your message has been posted!</source>
+        <translation type="unfinished">Съобщението беще побликувано.</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::XmppAccountFactory</name>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppaccount.h" line="51"/>
+        <source>Log on to your Jabber/XMPP account to connect to your friends</source>
+        <translation>Свържи се с твоята Jabber/XMPP регистрация, за да откриеш твоите приятели</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Accounts::ZeroconfFactory</name>
+    <message>
+        <location filename="../src/accounts/zeroconf/zeroconfaccount.h" line="42"/>
+        <source>Automatically connect to Tomahawks on the local network</source>
+        <translation>Автоматично свързва Tomahawk с останалите копия на програмата,
+ работещи в локалната мрежа.</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::ContextMenu</name>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="78"/>
+        <source>&amp;Play</source>
+        <translation type="unfinished">&amp;Изпълни</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="81"/>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="134"/>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="173"/>
+        <source>Add to &amp;Queue</source>
+        <translation type="unfinished">Добави към &amp;опашката</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="87"/>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="262"/>
+        <source>&amp;Love</source>
+        <translation type="unfinished">&amp;Харесай</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="96"/>
+        <source>&amp;Copy Track Link</source>
+        <translation type="unfinished">&amp;Копирай адресът на изпълнението</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="101"/>
+        <source>&amp;Delete Items</source>
+        <translation type="unfinished">&amp;Изтрий позициите</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="101"/>
+        <source>&amp;Delete Item</source>
+        <translation type="unfinished">&amp;Изтрий позицията</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="131"/>
+        <source>Show &amp;Album page</source>
+        <translation type="unfinished">Покажи &amp;страницата на албума</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="170"/>
+        <source>Show &amp;Artist page</source>
+        <translation type="unfinished">Покажи страницата на &amp;артиста</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/contextmenu.cpp" line="257"/>
+        <source>Un-&amp;Love</source>
+        <translation type="unfinished">Не-&amp;харесай</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::CustomPlaylistView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/customplaylistview.cpp" line="123"/>
+        <source>Top Loved Tracks</source>
+        <translation type="unfinished">Най-харесвани изпълнения</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/customplaylistview.cpp" line="127"/>
+        <source>Your loved tracks</source>
+        <translation type="unfinished">Изпълненията, които харесваш ти</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/customplaylistview.cpp" line="129"/>
+        <source>%1&apos;s loved tracks</source>
+        <translation type="unfinished">Изпълненията, каресвани от %1</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/customplaylistview.cpp" line="138"/>
+        <source>The most loved tracks from all your friends</source>
+        <translation type="unfinished">Харесваните изпълнения от всички твои приятели</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/customplaylistview.cpp" line="142"/>
+        <source>All of your loved tracks</source>
+        <translation type="unfinished">Всички изпълнения, които харесваш</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/customplaylistview.cpp" line="144"/>
+        <source>All of %1&apos;s loved tracks</source>
+        <translation type="unfinished">Всички изпълнения , харесвани от %1</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::DropJobNotifier</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/dropjobnotifier.cpp" line="102"/>
+        <source>Fetching %1 from database</source>
+        <translation>Извличане на %1 от БД</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/dropjobnotifier.cpp" line="106"/>
+        <source>Parsing %1 %2</source>
+        <translation>Обединяване на %1 %2</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::DynamicControlList</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/widgets/DynamicControlList.cpp" line="82"/>
+        <source>Click to collapse</source>
+        <translation>Свий</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::DynamicModel</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/DynamicModel.cpp" line="172"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/DynamicModel.cpp" line="301"/>
+        <source>Could not find a playable track.
+
+Please change the filters or try again.</source>
+        <translation>Не откривам песни годни за изпълняване.
+Моля променете филтрите и опитайте отново.</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/DynamicModel.cpp" line="230"/>
+        <source>Failed to generate preview with the desired filters</source>
+        <translation>Неуспех при генериране на предварителен преглед на избраните филтри.</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::DynamicSetupWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/widgets/DynamicSetupWidget.cpp" line="53"/>
+        <source>Type:</source>
+        <translation>Тип:</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/widgets/DynamicSetupWidget.cpp" line="67"/>
+        <source>Generate</source>
+        <translation>Генерирай</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::DynamicView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/DynamicView.cpp" line="144"/>
+        <source>Add some filters above to seed this station!</source>
+        <translation>Добави няколко критерия, за да разпространиш тази станция</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/DynamicView.cpp" line="149"/>
+        <source>Press Generate to get started!</source>
+        <translation>Натисни &quot;Генерирай&quot; за да почне просвирване.</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/DynamicView.cpp" line="151"/>
+        <source>Add some filters above, and press Generate to get started!</source>
+        <translation>Добави няколко критерия и натисни &quot;Генерирай&quot; за да почне просвирване.</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::DynamicWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/widgets/DynamicWidget.cpp" line="472"/>
+        <source>Station ran out of tracks!
+
+Try tweaking the filters for a new set of songs to play.</source>
+        <translation>Станцията изчерпа изпълненията по зададените критерии.
+Опитай да добевиш/въведеш нови за да продължи изпълнението.</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::EchonestControl</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="188"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="255"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="276"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="341"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="360"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="425"/>
+        <source>is</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="207"/>
+        <source>from user</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="216"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="584"/>
+        <source>No users with Echo Nest Catalogs enabled. Try enabling option in Collection settings</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="235"/>
+        <source>similar to</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="256"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="277"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="311"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="315"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="319"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="323"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="327"/>
+        <source>Less</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="256"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="277"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="311"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="315"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="319"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="323"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="327"/>
+        <source>More</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="298"/>
+        <source>0 BPM</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="298"/>
+        <source>500 BPM</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="302"/>
+        <source>0 secs</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="302"/>
+        <source>3600 secs</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="306"/>
+        <source>-100 dB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="306"/>
+        <source>100 dB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="343"/>
+        <source>Major</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="344"/>
+        <source>Minor</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="362"/>
+        <source>C</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="363"/>
+        <source>C Sharp</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="364"/>
+        <source>D</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="365"/>
+        <source>E Flat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="366"/>
+        <source>E</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="367"/>
+        <source>F</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="368"/>
+        <source>F Sharp</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="369"/>
+        <source>G</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="370"/>
+        <source>A Flat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="371"/>
+        <source>A</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="372"/>
+        <source>B Flat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="373"/>
+        <source>B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="390"/>
+        <source>Ascending</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="391"/>
+        <source>Descending</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="394"/>
+        <source>Tempo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="395"/>
+        <source>Duration</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="396"/>
+        <source>Loudness</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="397"/>
+        <source>Artist Familiarity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="398"/>
+        <source>Artist Hotttnesss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="399"/>
+        <source>Song Hotttnesss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="400"/>
+        <source>Latitude</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="401"/>
+        <source>Longitude</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="402"/>
+        <source>Mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="403"/>
+        <source>Key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="404"/>
+        <source>Energy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="405"/>
+        <source>Danceability</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="744"/>
+        <source>only by ~%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="746"/>
+        <source>similar to ~%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="748"/>
+        <source>with genre ~%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="754"/>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="766"/>
+        <source>from no one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="758"/>
+        <source>My Collection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="762"/>
+        <source>from %1 radio</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="785"/>
+        <source>with %1 %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="787"/>
+        <source>about %1 BPM</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="789"/>
+        <source>about %n minute(s) long</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="791"/>
+        <source>about %1 dB</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="793"/>
+        <source>at around %1%2 %3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="798"/>
+        <source>in %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="803"/>
+        <source>in a %1 key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="813"/>
+        <source>sorted in %1 %2 order</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="818"/>
+        <source>with a %1 mood</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestControl.cpp" line="823"/>
+        <source>in a %1 style</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::EchonestSteerer</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="57"/>
+        <source>Steer this station:</source>
+        <translation type="unfinished">Задръж тази станция:</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="71"/>
+        <source>Much less</source>
+        <translation type="unfinished">Много по-малко</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="72"/>
+        <source>Less</source>
+        <translation type="unfinished">По-малко</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="73"/>
+        <source>A bit less</source>
+        <translation type="unfinished">Малко по-малко</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="74"/>
+        <source>Keep at current</source>
+        <translation type="unfinished">Задръж</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="75"/>
+        <source>A bit more</source>
+        <translation type="unfinished">Малко повече</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="76"/>
+        <source>More</source>
+        <translation type="unfinished">Повече</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="77"/>
+        <source>Much more</source>
+        <translation type="unfinished">Много повече</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="80"/>
+        <source>Tempo</source>
+        <translation type="unfinished">Темпо</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="81"/>
+        <source>Loudness</source>
+        <translation type="unfinished">Сила</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="82"/>
+        <source>Danceability</source>
+        <translation type="unfinished">Танцувалност</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="83"/>
+        <source>Energy</source>
+        <translation type="unfinished">Енергия</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="84"/>
+        <source>Song Hotttnesss</source>
+        <translation type="unfinished">Популярност на изпълненията</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="85"/>
+        <source>Artist Hotttnesss</source>
+        <translation type="unfinished">Популярност на изпълнителя</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="86"/>
+        <source>Artist Familiarity</source>
+        <translation type="unfinished">Близост на изпълнителите</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="87"/>
+        <source>By Description</source>
+        <translation type="unfinished">По описание</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="95"/>
+        <source>Enter a description</source>
+        <translation type="unfinished">Въведи описание</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="102"/>
+        <source>Apply steering command</source>
+        <translation type="unfinished">Приложи избраната команда</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/dynamic/echonest/EchonestSteerer.cpp" line="108"/>
+        <source>Reset all steering commands</source>
+        <translation type="unfinished">Нулирай всички предишни настройки</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::GroovesharkParser</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/groovesharkparser.cpp" line="255"/>
+        <source>Error fetching Grooveshark information from the network!</source>
+        <translation>Грешка при извличане на информацията от Grooveshark</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::InfoSystem::ChartsPlugin</name>
+    <message>
+        <location filename="../src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp" line="307"/>
+        <source>Top Overall</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp" line="396"/>
+        <source>Artists</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp" line="398"/>
+        <source>Albums</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/infosystem/infoplugins/generic/chartsplugin.cpp" line="400"/>
+        <source>Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::InfoSystem::LastFmPlugin</name>
+    <message>
+        <location filename="../src/accounts/lastfm/lastfmplugin.cpp" line="400"/>
+        <source>Top Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/lastfmplugin.cpp" line="403"/>
+        <source>Loved Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/lastfmplugin.cpp" line="406"/>
+        <source>Hyped Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/lastfmplugin.cpp" line="412"/>
+        <source>Top Artists</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/lastfm/lastfmplugin.cpp" line="415"/>
+        <source>Hyped Artists</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::ItunesParser</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/itunesparser.cpp" line="170"/>
+        <source>Error fetching iTunes information from the network!</source>
+        <translation>Грешка при извличане на информация от iTunes</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::JSPFLoader</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/jspfloader.cpp" line="137"/>
+        <source>New Playlist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/jspfloader.cpp" line="163"/>
+        <source>Failed to save tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/jspfloader.cpp" line="163"/>
+        <source>Some tracks in the playlist do not contain an artist and a title. They will be ignored.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/jspfloader.cpp" line="182"/>
+        <source>XSPF Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/jspfloader.cpp" line="182"/>
+        <source>This is not a valid XSPF playlist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::LatchManager</name>
+    <message>
+        <location filename="../src/libtomahawk/LatchManager.cpp" line="86"/>
+        <source>&amp;Catch Up</source>
+        <translation>&amp;Последвай</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/LatchManager.cpp" line="123"/>
+        <location filename="../src/libtomahawk/LatchManager.cpp" line="144"/>
+        <source>&amp;Listen Along</source>
+        <translation>&amp;Слушай заедно</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Query</name>
+    <message>
+        <location filename="../src/libtomahawk/query.cpp" line="622"/>
+        <source> and </source>
+        <translation type="unfinished">и</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/query.cpp" line="630"/>
+        <source>You</source>
+        <translation type="unfinished">Ти</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/query.cpp" line="632"/>
+        <source>you</source>
+        <translation type="unfinished">ти</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/query.cpp" line="641"/>
+        <source>and</source>
+        <translation type="unfinished">и</translation>
+    </message>
+    <message numerus="yes">
+        <location filename="../src/libtomahawk/query.cpp" line="641"/>
+        <source>%n other(s)</source>
+        <translation type="unfinished">
+            <numerusform>% други</numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/query.cpp" line="644"/>
+        <source>%1 people</source>
+        <translation type="unfinished">%1 хора</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/query.cpp" line="646"/>
+        <source>loved this track</source>
+        <translation type="unfinished">харесаха това изпълнение</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::RdioParser</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/rdioparser.cpp" line="193"/>
+        <source>Error fetching Rdio information from the network!</source>
+        <translation>Грешка при извличане на информация от Rdio</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::ShortenedLinkParser</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/shortenedlinkparser.cpp" line="96"/>
+        <source>Network error parsing shortened link!</source>
+        <translation>Мрежова грешка при извличане на съкратеният адрес.</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::Source</name>
+    <message>
+        <location filename="../src/libtomahawk/source.cpp" line="242"/>
+        <location filename="../src/libtomahawk/source.cpp" line="293"/>
+        <source>Scanning (%L1 tracks)</source>
+        <translation type="unfinished">Сканиране  (%L1 изпълнения)</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/source.cpp" line="244"/>
+        <source>Scanning</source>
+        <translation type="unfinished">Сканиране</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/source.cpp" line="278"/>
+        <source>Checking</source>
+        <translation type="unfinished">Проверка</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/source.cpp" line="283"/>
+        <source>Fetching</source>
+        <translation type="unfinished">Удължаване</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/source.cpp" line="288"/>
+        <source>Parsing</source>
+        <translation type="unfinished">Сортиране</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/source.cpp" line="417"/>
+        <source>Saving (%1%)</source>
+        <translation type="unfinished">Запазване (%1%)</translation>
+    </message>
+</context>
+<context>
+    <name>Tomahawk::SpotifyParser</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/spotifyparser.cpp" line="224"/>
+        <source>Error fetching Spotify information from the network!</source>
+        <translation>Грешка при извличане на информация от Spotify</translation>
+    </message>
+</context>
+<context>
+    <name>TomahawkApp</name>
+    <message>
+        <location filename="../src/tomahawkapp.cpp" line="498"/>
+        <source>My Collection</source>
+        <translation>Моята колекция</translation>
+    </message>
+</context>
+<context>
+    <name>TomahawkOAuthTwitter</name>
+    <message>
+        <location filename="../src/accounts/twitter/tomahawkoauthtwitter.cpp" line="39"/>
+        <source>Twitter PIN</source>
+        <translation>Twitter код</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/tomahawkoauthtwitter.cpp" line="39"/>
+        <source>After authenticating on Twitter&apos;s web site,
+enter the displayed PIN number here:</source>
+        <translation>След удостоверяване в Twitter,
+ въведете генерираният код тук:</translation>
+    </message>
+</context>
+<context>
+    <name>TomahawkTrayIcon</name>
+    <message>
+        <location filename="../src/tomahawktrayicon.cpp" line="59"/>
+        <location filename="../src/tomahawktrayicon.cpp" line="93"/>
+        <source>Hide Tomahawk Window</source>
+        <translation type="unfinished">Скрий прозорецът на Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawktrayicon.cpp" line="98"/>
+        <source>Show Tomahawk Window</source>
+        <translation type="unfinished">Покажи прозорецът на Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawktrayicon.cpp" line="158"/>
+        <source>Currently not playing.</source>
+        <translation type="unfinished">В момента не се изпълнява нищо.</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawktrayicon.cpp" line="219"/>
+        <source>Play</source>
+        <translation type="unfinished">Изпълни</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawktrayicon.cpp" line="226"/>
+        <source>Pause</source>
+        <translation type="unfinished">Пауза</translation>
+    </message>
+</context>
+<context>
+    <name>TomahawkWindow</name>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="14"/>
+        <source>Tomahawk</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="75"/>
+        <source>&amp;Settings</source>
+        <translation>&amp;Настройки</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="81"/>
+        <source>&amp;Controls</source>
+        <translation>&amp;Контроли</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="100"/>
+        <source>&amp;Network</source>
+        <translation>&amp;Мрежа</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="107"/>
+        <source>&amp;Window</source>
+        <translation>&amp;Прозорец</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="114"/>
+        <source>&amp;Help</source>
+        <translation>&amp;Помощ</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="128"/>
+        <source>&amp;Quit</source>
+        <translation>&amp;Изход</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="131"/>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="139"/>
+        <source>Go &amp;Online</source>
+        <translation>&amp;Свържи се</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="144"/>
+        <source>Add &amp;Friend...</source>
+        <translation>Добави &amp;приятел</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="149"/>
+        <source>U&amp;pdate Collection</source>
+        <translation>О&amp;бнови колекцията</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="152"/>
+        <source>Update Collection</source>
+        <translation>Обнови колекцията</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="157"/>
+        <source>&amp;Configure Tomahawk...</source>
+        <translation>&amp;Настройки на Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="165"/>
+        <source>Load &amp;XSPF...</source>
+        <translation>Зареди &amp;XSPF...</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="170"/>
+        <source>Create &amp;New Playlist...</source>
+        <translation>Зареди &amp;Нов списък</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="175"/>
+        <source>About &amp;Tomahawk...</source>
+        <translation>За &amp;Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="183"/>
+        <source>Create New &amp;Automatic Playlist</source>
+        <translation>Създай нов &amp;Автоматичен списък</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="188"/>
+        <source>Create New &amp;Station</source>
+        <translation>Създай нова станция</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="196"/>
+        <source>Show Offline Sources</source>
+        <translation>Покажи източници извън интернет</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="201"/>
+        <source>Hide Offline Sources</source>
+        <translation>Скрий източници извън интернет</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="206"/>
+        <source>Minimize</source>
+        <translation>Смали</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="209"/>
+        <source>Ctrl+M</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="214"/>
+        <source>Zoom</source>
+        <translation>Увеличи</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="217"/>
+        <source>Meta+Ctrl+Z</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="222"/>
+        <source>Diagnostics...</source>
+        <translation>Диагностика...</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="230"/>
+        <source>Fully &amp;Rescan Collection</source>
+        <translation>Пълно &amp;сканиране на колекцията</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="233"/>
+        <source>Fully Rescan Collection</source>
+        <translation>Пълно сканиране на колекцията</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="238"/>
+        <location filename="../src/tomahawkwindow.cpp" line="676"/>
+        <source>Play</source>
+        <translation>Изпълни</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="241"/>
+        <source>Space</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="246"/>
+        <source>Previous</source>
+        <translation>Предишна</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.ui" line="251"/>
+        <source>Next</source>
+        <translation>Следваща</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="219"/>
+        <source>Global Search...</source>
+        <translation>Глобално търсене...</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="270"/>
+        <location filename="../src/tomahawkwindow.cpp" line="287"/>
+        <source>Check For Updates...</source>
+        <translation>Провери за обновления...</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="449"/>
+        <location filename="../src/tomahawkwindow.cpp" line="456"/>
+        <location filename="../src/tomahawkwindow.cpp" line="464"/>
+        <source>Connect To Peer</source>
+        <translation>Свържи се с друг потребител</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="450"/>
+        <source>Enter peer address:</source>
+        <translation>Въведи адресът на отдалеченият потребител</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="457"/>
+        <source>Enter peer port:</source>
+        <translation>Въведи портът на отдалеченият потребител</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="465"/>
+        <source>Enter peer key:</source>
+        <translation>Въведи ключът на на отдалеченият потребител</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="561"/>
+        <source>XSPF Error</source>
+        <translation>XSPF Грешка</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="561"/>
+        <source>This is not a valid XSPF playlist.</source>
+        <translation>Това не е валиден XSPF списък</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="565"/>
+        <source>Failed to save tracks</source>
+        <translation>Неуспех при запазване на списък с изпълнения</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="565"/>
+        <source>Some tracks in the playlist do not contain an artist and a title. They will be ignored.</source>
+        <translation>Някои от изпълненията в списък, нямат артист и заглавие. Те ще бъдат игнорирани.</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="579"/>
+        <source>Sorry, there is a problem accessing your audio device or the desired track, current track will be skipped. Make sure you have a suitable Phonon backend and required plugins installed.</source>
+        <translation>Съжалявам. Има проблем с достъпа до твоето аудио-устройство или до избраното изпълнение - то ще бъде прескочено. Моля, увери се, че са инсталирани подходящ Phonon и приставки.</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="581"/>
+        <source>Sorry, there is a problem accessing your audio device or the desired track, current track will be skipped.</source>
+        <translation>Съжалявам. Има проблем с достъпа до твоето аудио устройство или избрано изпълнение. Текущото изпъление ще бъде пропуснато.</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="614"/>
+        <source>Create New Station</source>
+        <translation>Създай нова станция</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="614"/>
+        <source>Name:</source>
+        <translation>Име:</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="614"/>
+        <source>New Station</source>
+        <translation>Нова станция</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="650"/>
+        <source>New Playlist</source>
+        <translation>Нов списък</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="668"/>
+        <source>Pause</source>
+        <translation>Пауза</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="691"/>
+        <source>Go &amp;offline</source>
+        <translation>Излез &amp;извън линия</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="698"/>
+        <source>Go &amp;online</source>
+        <translation>Свържи &amp;се</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="720"/>
+        <source>Authentication Error</source>
+        <translation>Грешка при удостоверяване</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="735"/>
+        <source>%1 by %2</source>
+        <comment>track, artist name</comment>
+        <translation>%1 от %2</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="736"/>
+        <source>%1 - %2</source>
+        <comment>current track, some window title</comment>
+        <translation>%1 - %2</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="744"/>
+        <source>About Tomahawk</source>
+        <translation>За Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/tomahawkwindow.cpp" line="745"/>
+        <source>&lt;h2&gt;&lt;b&gt;Tomahawk %1&lt;br/&gt;(%2)&lt;/h2&gt;Copyright 2010 - 2012&lt;br/&gt;Christian Muehlhaeuser &amp;lt;muesli@tomahawk-player.org&amp;gt;&lt;br/&gt;&lt;br/&gt;Thanks to: Leo Franchi, Jeff Mitchell, Dominik Schmidt, Jason Herskowitz, Alejandro Wainzinger, Hugo Lindstr&amp;ouml;m, Michael Zanetti, Harald Sitter and Steve Robertson</source>
+        <translation>&lt;h2&gt;&lt;b&gt;Tomahawk %1&lt;br/&gt;(%2)&lt;/h2&gt;Всички права запазени 2010 - 2012&lt;br/&gt;Christian Muehlhaeuser &amp;lt;muesli@tomahawk-player.org&amp;gt;&lt;br/&gt;&lt;br/&gt;Благодарности на: Leo Franchi, Jeff Mitchell, Dominik Schmidt, Jason Herskowitz, Alejandro Wainzinger, Hugo Lindstr&amp;ouml;m, Michael Zanetti, Harald Sitter and Steve Robertson</translation>
+    </message>
+</context>
+<context>
+    <name>TopBar</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.ui" line="26"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.ui" line="66"/>
+        <source>0 Sources</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.ui" line="89"/>
+        <source>0 Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.ui" line="112"/>
+        <source>0 Artists</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.ui" line="135"/>
+        <source>0 Shown</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.cpp" line="49"/>
+        <source>Tracks</source>
+        <translation type="unfinished">Изпълнения</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.cpp" line="50"/>
+        <source>Artists</source>
+        <translation type="unfinished">Артиста</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.cpp" line="54"/>
+        <source>Filter</source>
+        <translation type="unfinished">Филтър</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.cpp" line="84"/>
+        <source>Artist View</source>
+        <translation type="unfinished">Преглед на артист</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.cpp" line="85"/>
+        <source>Flat View</source>
+        <translation type="unfinished">Плосък изглед</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.cpp" line="195"/>
+        <source>Sources</source>
+        <translation type="unfinished">Източници</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/topbar/topbar.cpp" line="247"/>
+        <source>Shown</source>
+        <translation>Показани</translation>
+    </message>
+</context>
+<context>
+    <name>TopTracksContext</name>
+    <message>
+        <location filename="../src/libtomahawk/context/pages/TopTracksContext.h" line="48"/>
+        <source>Top Hits</source>
+        <translation>Най-слушани</translation>
+    </message>
+</context>
+<context>
+    <name>TrackModel</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Artist</source>
+        <translation>Артист</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Title</source>
+        <translation>Заглавие</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Composer</source>
+        <translation>Композитор</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Album</source>
+        <translation>Албум</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Track</source>
+        <translation>Номер</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Duration</source>
+        <translation>Продължителност</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Bitrate</source>
+        <translation>Качество</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Age</source>
+        <translation>Възраст</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Year</source>
+        <translation>Година</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Size</source>
+        <translation>Размер</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Origin</source>
+        <translation>Произход</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackmodel.cpp" line="248"/>
+        <source>Score</source>
+        <translation>Популярност</translation>
+    </message>
+</context>
+<context>
+    <name>TrackView</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/trackview.cpp" line="424"/>
+        <source>Sorry, your filter &apos;%1&apos; did not match any results.</source>
+        <translation>Съжалявам, твоят филтър %1 не върна никакъв резултат.</translation>
+    </message>
+</context>
+<context>
+    <name>TransferStatusItem</name>
+    <message>
+        <location filename="../src/libtomahawk/jobview/TransferStatusItem.cpp" line="58"/>
+        <source>from</source>
+        <translation>от</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/jobview/TransferStatusItem.cpp" line="58"/>
+        <source>to</source>
+        <translation>до</translation>
+    </message>
+</context>
+<context>
+    <name>TreeItemDelegate</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treeitemdelegate.cpp" line="132"/>
+        <source>Unknown</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>TreeModel</name>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Name</source>
+        <translation>Име</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Composer</source>
+        <translation>Композитор</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Duration</source>
+        <translation>Продължителност</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Bitrate</source>
+        <translation>Качество</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Age</source>
+        <translation>Възраст</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Year</source>
+        <translation>Година</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Size</source>
+        <translation>Размер</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="368"/>
+        <source>Origin</source>
+        <translation>Произход</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="584"/>
+        <source>All Artists</source>
+        <translation>Всички артисти</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="698"/>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="723"/>
+        <source>My Collection</source>
+        <translation>Моята колекция</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="700"/>
+        <location filename="../src/libtomahawk/playlist/treemodel.cpp" line="725"/>
+        <source>Collection of %1</source>
+        <translation>Колекцията на %1</translation>
+    </message>
+</context>
+<context>
+    <name>TwitterConfigWidget</name>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="73"/>
+        <source>Configure this Twitter account</source>
+        <translation>Настрой Twitter профил</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="119"/>
+        <source>The Twitter plugin allows you to discover and play music from your Twitter friends running Tomahawk and post messages to your account.</source>
+        <translation>Тази приставка за Twitter ще ти позволи да откриваш и изпълняваш музика, от твоите приятели в Twitter ползващи Tomahawk и побликуващи съобщения в твоя профил.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="137"/>
+        <source>Status: No saved credentials</source>
+        <translation type="unfinished">Статус: Няма запаметени данни за вход</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="166"/>
+        <source>Authenticate with Twitter</source>
+        <translation type="unfinished">Удостовери в Twitter</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="196"/>
+        <source>Twitter Connections</source>
+        <translation type="unfinished">Twitter връзки</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="202"/>
+        <source>
+If you only want to post tweets, you&apos;re done.
+
+If you want to connect Tomahawk to your friends using Twitter, select the type of tweet and press the button below to send a sync message. You must both be following each other as Direct Messages are used. Then be (very) patient -- it can take several minutes!
+
+You can re-send a sync message at any time simply by sending another tweet using the button.</source>
+        <translation type="unfinished">
+Ако само желаете да побликуваш съобщения,  си готов.
+Ако желаеш да се свържеш с твои приятели, ползващи Twitter, избери тип на съобщението и натисни бутонът от долу, за изпращане. Трябва взаимно да се следвате, за да можете да ползвате функцията DM. 
+След изпращане, бъди търпелив. Може да изминат няколко минути преди побликуване.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="244"/>
+        <source>Select the kind of tweet you would like, then press the button to post it:</source>
+        <translation type="unfinished">Избери тип на съобщението и след това натисни бутонът, да го побликуваш.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="276"/>
+        <source>Global Tweet</source>
+        <translation type="unfinished">Общо съобщение</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="281"/>
+        <source>@Mention</source>
+        <translation type="unfinished">@Споменаване</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="286"/>
+        <source>Direct Message</source>
+        <translation type="unfinished">Лично съобщение</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="322"/>
+        <source>e.g. @tomahawk</source>
+        <translation type="unfinished">напр. @tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/twitter/twitterconfigwidget.ui" line="351"/>
+        <source>Send Message</source>
+        <translation type="unfinished">Изпрати съобщение</translation>
+    </message>
+</context>
+<context>
+    <name>ViewManager</name>
+    <message>
+        <location filename="../src/libtomahawk/viewmanager.cpp" line="380"/>
+        <source>SuperCollection</source>
+        <translation>Супер колекция</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/viewmanager.cpp" line="381"/>
+        <source>Combined libraries of all your online friends</source>
+        <translation>Комбинирани библиотеки от всичките ти приятели на линия</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/viewmanager.cpp" line="382"/>
+        <source>All available albums</source>
+        <translation>Всички налични албуми</translation>
+    </message>
+</context>
+<context>
+    <name>WelcomeWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/welcomewidget.ui" line="34"/>
+        <source>Recent Additions</source>
+        <translation>Нови попълнения</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/welcomewidget.ui" line="55"/>
+        <source>Newest Stations &amp; Playlists</source>
+        <translation>Най-нови станции и списъци</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/welcomewidget.ui" line="70"/>
+        <source>Recently Played Tracks</source>
+        <translation>Наскоро изпълнени</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/welcomewidget.cpp" line="152"/>
+        <source>No recently created playlists in your network.</source>
+        <translation>Няма наскоро създавани списъзи в твоята мрежа</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/widgets/welcomewidget.h" line="90"/>
+        <source>Welcome to Tomahawk</source>
+        <translation>Здравей!</translation>
+    </message>
+</context>
+<context>
+    <name>WhatsHotWidget</name>
+    <message>
+        <location filename="../src/libtomahawk/widgets/whatshotwidget.h" line="72"/>
+        <source>Charts</source>
+        <translation>Класации</translation>
+    </message>
+</context>
+<context>
+    <name>WikipediaContext</name>
+    <message>
+        <location filename="../src/libtomahawk/context/pages/WikipediaContext.h" line="42"/>
+        <source>Wikipedia</source>
+        <translation>Уикипедиа</translation>
+    </message>
+</context>
+<context>
+    <name>XMPPBot</name>
+    <message>
+        <location filename="../src/xmppbot/xmppbot.cpp" line="312"/>
+        <source>
+Terms for %1:
+</source>
+        <translation>Условия за %1</translation>
+    </message>
+    <message>
+        <location filename="../src/xmppbot/xmppbot.cpp" line="314"/>
+        <source>No terms found, sorry.</source>
+        <translation>Няма открити условия, съжалявам.</translation>
+    </message>
+    <message>
+        <location filename="../src/xmppbot/xmppbot.cpp" line="347"/>
+        <source>
+Hotttness for %1: %2
+</source>
+        <translation>Популарност на %1:%2</translation>
+    </message>
+    <message>
+        <location filename="../src/xmppbot/xmppbot.cpp" line="363"/>
+        <source>
+Familiarity for %1: %2
+</source>
+        <translation>Еднаквост за %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../src/xmppbot/xmppbot.cpp" line="381"/>
+        <source>
+Lyrics for &quot;%1&quot; by %2:
+
+%3
+</source>
+        <translation>Текст за &quot;%1&quot; by %2:
+
+%3
+</translation>
+    </message>
+</context>
+<context>
+    <name>XSPFLoader</name>
+    <message>
+        <location filename="../src/libtomahawk/utils/xspfloader.cpp" line="49"/>
+        <source>Failed to parse contents of XSPF playlist</source>
+        <translation>Неуспешно извличане на данни от XSPF списък</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/xspfloader.cpp" line="51"/>
+        <source>Some playlist entries were found without artist and track name, they will be omitted</source>
+        <translation>За някои от позициите не открих артист или име на на песента. Те ще бъдат пропуснати.</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/xspfloader.cpp" line="53"/>
+        <source>Failed to fetch the desired playlist from the network, or the desired file does not exist</source>
+        <translation type="unfinished">Неуспех при извличане на избраният списък през мрежата или избраният файл не съществува.</translation>
+    </message>
+    <message>
+        <location filename="../src/libtomahawk/utils/xspfloader.cpp" line="184"/>
+        <source>New Playlist</source>
+        <translation>Нов списък</translation>
+    </message>
+</context>
+<context>
+    <name>XmlConsole</name>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.ui" line="14"/>
+        <source>Xml stream console</source>
+        <translation>Конзола за Xml поток </translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.ui" line="33"/>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="60"/>
+        <source>Filter</source>
+        <translation>Филтър</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.ui" line="43"/>
+        <source>Save log</source>
+        <translation>Запази диагностичните съобщения</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="62"/>
+        <source>Disabled</source>
+        <translation>Деактивиран</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="65"/>
+        <source>By JID</source>
+        <translation>По  JID</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="68"/>
+        <source>By namespace uri</source>
+        <translation>По namespace uri</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="71"/>
+        <source>By all attributes</source>
+        <translation>По всички атрибути</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="76"/>
+        <source>Visible stanzas</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="79"/>
+        <source>Information query</source>
+        <translation>Извличане на информация</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="83"/>
+        <source>Message</source>
+        <translation>Съобщение</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="87"/>
+        <source>Presence</source>
+        <translation>Наличие</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="91"/>
+        <source>Custom</source>
+        <translation>Специфично създаден</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="107"/>
+        <source>Close</source>
+        <translation>Затвори</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="358"/>
+        <source>Save XMPP log to file</source>
+        <translation>Запази XMPP диагностичните съобщения във файл.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmlconsole.cpp" line="359"/>
+        <source>OpenDocument Format (*.odf);;HTML file (*.html);;Plain text (*.txt)</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>XmppConfigWidget</name>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="14"/>
+        <source>Xmpp Configuration</source>
+        <translation>Настройка на Xmpp</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="52"/>
+        <source>Configure this Xmpp account</source>
+        <translation>Настрой тази Xmpp регистрация</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="89"/>
+        <source>Enter your Xmpp login to connect with your friends using Tomahawk!</source>
+        <translation>Въведи Xmpp потребителско име и парола за да се свържеш с приятелите ти, ползващи Tomahawk</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="111"/>
+        <source>Login Information</source>
+        <translation>Информация за влизане</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="131"/>
+        <source>Xmpp ID:</source>
+        <translation>Xmpp потребителско име:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="147"/>
+        <source>e.g. user@example.com</source>
+        <translation>т.е. user@example.com</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="160"/>
+        <source>Password:</source>
+        <translation>Парола:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="188"/>
+        <source>An account with this name already exists!</source>
+        <translation>Вече съществува регистрация с такова име!</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="210"/>
+        <source>Advanced Xmpp Settings</source>
+        <translation>Разширени настройки:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="230"/>
+        <source>Server:</source>
+        <translation>Сървър:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/xmppconfigwidget.ui" line="253"/>
+        <source>Port:</source>
+        <translation>Порт:</translation>
+    </message>
+</context>
+<context>
+    <name>XmppSipPlugin</name>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="332"/>
+        <source>User Interaction</source>
+        <translation>Действие от потребителя</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="335"/>
+        <source>Host is unknown</source>
+        <translation>Непознат адрес</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="338"/>
+        <source>Item not found</source>
+        <translation>Обектът не е открит</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="341"/>
+        <source>Authorization Error</source>
+        <translation>Грешка при даване на достъп</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="344"/>
+        <source>Remote Stream Error</source>
+        <translation>Грешка в стриймът от отдалечената машина</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="347"/>
+        <source>Remote Connection failed</source>
+        <translation>Отдалечената връзка е неуспешна</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="350"/>
+        <source>Internal Server Error</source>
+        <translation>Вътрешна грешка на сървъра</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="353"/>
+        <source>System shutdown</source>
+        <translation>Изключване на системата</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="356"/>
+        <source>Conflict</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="360"/>
+        <source>Unknown</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="457"/>
+        <source>Add Friend</source>
+        <translation>Добави приятел</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="458"/>
+        <source>Enter Xmpp ID:</source>
+        <translation>Въведи  Xmpp ID:</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="574"/>
+        <source>Add Friend...</source>
+        <translation>Добави приятел...</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="579"/>
+        <source>XML Console...</source>
+        <translation>XML Конзола...</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="627"/>
+        <source>I&apos;m sorry -- I&apos;m just an automatic presence used by Tomahawk Player (http://gettomahawk.com). If you are getting this message, the person you are trying to reach is probably not signed on, so please try again later!</source>
+        <translation>Извинявай.. Аз съм режимът за автоматични отговори изпълзван от Tomahawk. (http://gettomahawk.com) Щом получаваш това съобщение, този с който се опитваш да се свържеш вероятно не е на линия. Моля, потай отново по-късно.</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="725"/>
+        <source>Authorize User</source>
+        <translation>Оправомощяване на потребител</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/xmpp/sip/xmppsip.cpp" line="726"/>
+        <source>Do you want to grant &lt;b&gt;%1&lt;/b&gt; access to your Collection?</source>
+        <translation>Искате ли да позволите на &lt;b&gt;%1&lt;/b&gt; достъп до вашата колекция?</translation>
+    </message>
+</context>
+<context>
+    <name>ZeroconfConfig</name>
+    <message>
+        <location filename="../src/accounts/zeroconf/configwidget.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/zeroconf/configwidget.ui" line="55"/>
+        <source>Local Network configuration</source>
+        <translation>Настройка на локалната мрежа</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/zeroconf/configwidget.ui" line="77"/>
+        <source>This plugin will automatically find other users running Tomahawk on your local network</source>
+        <translation type="unfinished">Тази приставка, автоматично ще открие другите потребители 
+ползващи Tomahawk в локалната мрежа</translation>
+    </message>
+    <message>
+        <location filename="../src/accounts/zeroconf/configwidget.ui" line="84"/>
+        <source>Connect automatically when Tomahawk starts</source>
+        <translation>Свържи се автоматично при стартиране</translation>
+    </message>
+</context>
+</TS>
diff --git a/lang/tomahawk_i18n.qrc b/lang/tomahawk_i18n.qrc
index 7dbc698e6..e38135fbc 100644
--- a/lang/tomahawk_i18n.qrc
+++ b/lang/tomahawk_i18n.qrc
@@ -4,6 +4,8 @@
 <file>tomahawk_de.qm</file>
 <file>tomahawk_sv.qm</file>
 <file>tomahawk_es.qm</file>
+<file>tomahawk_bg.qm</file>
+<file>tomahawk_pl.qm</file>
 <file>tomahawk_pt_BR.qm</file>
 </qresource>
 </RCC>
diff --git a/src/AccountFactoryWrapper.h b/src/AccountFactoryWrapper.h
index d96d89486..00e31e672 100644
--- a/src/AccountFactoryWrapper.h
+++ b/src/AccountFactoryWrapper.h
@@ -42,6 +42,7 @@ public:
     };
 
     explicit AccountFactoryWrapper( Tomahawk::Accounts::AccountFactory* factory, QWidget* parent = 0 );
+    virtual ~AccountFactoryWrapper() {}
 
 public slots:
     void openAccountConfig( Tomahawk::Accounts::Account* );
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 177127d02..f27fd0bf1 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -68,8 +68,6 @@ SET( tomahawkSourcesGui ${tomahawkSourcesGui}
      sourcetree/items/groupitem.cpp
      sourcetree/items/historyitem.cpp
 
-     breakpad/BreakPad.cpp
-
      utils/guihelpers.cpp
 
      accounts/lastfm/LastFmAccount.cpp
@@ -93,6 +91,10 @@ SET( tomahawkSourcesGui ${tomahawkSourcesGui}
      AccountFactoryWrapperDelegate.cpp
 )
 
+IF( WITH_BREAKPAD )
+    LIST(APPEND tomahawkSourcesGui breakpad/BreakPad.cpp)
+ENDIF()
+
 SET( tomahawkUI ${tomahawkUI}
      tomahawkwindow.ui
      diagnosticsdialog.ui
@@ -174,6 +176,10 @@ SET( final_src ${final_src} ${tomahawkMoc} ${tomahawkSources} ${trans_outfile})
 IF( BUILD_GUI )
     LIST(APPEND tomahawkSources ${tomahawkSourcesGui})
     qt4_wrap_ui( tomahawkUI_H ${tomahawkUI} )
+
+    IF( WITH_CRASHREPORTER )
+        ADD_SUBDIRECTORY( breakpad/CrashReporter )
+    ENDIF()
 ENDIF()
 
 kde4_add_app_icon( tomahawkSources "${CMAKE_SOURCE_DIR}/data/icons/tomahawk-icon-*.png" )
@@ -206,9 +212,11 @@ ENDIF(GLOOX_FOUND)
 IF(QCA2_FOUND)
     SET(LINK_LIBRARIES ${LINK_LIBRARIES} ${QCA2_LIBRARIES} )
 ENDIF(QCA2_FOUND)
+IF(WITH_BREAKPAD)
+    SET(LINK_LIBRARIES ${LINK_LIBRARIES} tomahawk_breakpad)
+ENDIF()
 
 TARGET_LINK_LIBRARIES( tomahawk
-    tomahawk_breakpad
     ${LINK_LIBRARIES}
     ${TOMAHAWK_LIBRARIES}
     ${PHONON_LIBS}
diff --git a/src/accounts/lastfm/LastFmAccount.cpp b/src/accounts/lastfm/LastFmAccount.cpp
index 9ceffdce1..7e4ac519f 100644
--- a/src/accounts/lastfm/LastFmAccount.cpp
+++ b/src/accounts/lastfm/LastFmAccount.cpp
@@ -270,6 +270,7 @@ LastFmAccount::hookupResolver()
     const Attica::Content res = AtticaManager::instance()->resolverForId( "lastfm" );
     const AtticaManager::ResolverState state = AtticaManager::instance()->resolverState( res );
     Q_ASSERT( state == AtticaManager::Installed );
+    Q_UNUSED( state );
 
     const AtticaManager::Resolver data = AtticaManager::instance()->resolverData( res.id() );
 
diff --git a/src/accounts/lastfm/lastfmplugin.cpp b/src/accounts/lastfm/lastfmplugin.cpp
index 2af69cf41..07f6895ab 100644
--- a/src/accounts/lastfm/lastfmplugin.cpp
+++ b/src/accounts/lastfm/lastfmplugin.cpp
@@ -585,6 +585,8 @@ LastFmPlugin::topTracksReturned()
     QNetworkReply* reply = qobject_cast<QNetworkReply*>( sender() );
 
     QStringList topTracks = lastfm::Artist::getTopTracks( reply );
+    topTracks.removeDuplicates();
+
     QVariantMap returnedData;
     returnedData["tracks"] = topTracks;
 
diff --git a/src/accounts/xmpp/CMakeLists.txt b/src/accounts/xmpp/CMakeLists.txt
index aaa6ce0ce..03313b8df 100644
--- a/src/accounts/xmpp/CMakeLists.txt
+++ b/src/accounts/xmpp/CMakeLists.txt
@@ -14,6 +14,7 @@ set( xmppAccountSources
     sip/tomahawkxmppmessagefactory.cpp
     sip/avatarmanager.cpp
     sip/xmlconsole.cpp
+    XmppInfoPlugin.cpp
 )
 
 set( xmppAccountHeaders
@@ -22,6 +23,7 @@ set( xmppAccountHeaders
     sip/xmppsip.h
     sip/avatarmanager.h
     sip/xmlconsole.h
+    XmppInfoPlugin.h
 )
 
 set( xmppAccountUI
diff --git a/src/accounts/xmpp/XmppInfoPlugin.cpp b/src/accounts/xmpp/XmppInfoPlugin.cpp
new file mode 100644
index 000000000..27166c829
--- /dev/null
+++ b/src/accounts/xmpp/XmppInfoPlugin.cpp
@@ -0,0 +1,143 @@
+/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
+ *
+ *   Copyright 2012, Dominik Schmidt <domme@tomahawk-player.org>
+ *
+ *   Tomahawk is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   Tomahawk is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#include "XmppInfoPlugin.h"
+
+#include "globalactionmanager.h"
+#include "sip/xmppsip.h"
+#include "utils/logger.h"
+
+#include <jreen/tune.h>
+#include <jreen/pubsubmanager.h>
+#include <jreen/jid.h>
+
+#include <jreen/client.h>
+
+// remove now playing status after PAUSE_TIMEOUT seconds
+static const int PAUSE_TIMEOUT = 60;
+
+Tomahawk::InfoSystem::XmppInfoPlugin::XmppInfoPlugin(XmppSipPlugin* sipPlugin)
+    : m_sipPlugin( sipPlugin )
+    , m_pubSubManager( 0 )
+    , m_pauseTimer( this )
+{
+    Q_ASSERT( sipPlugin->m_client );
+
+    m_supportedPushTypes << InfoNowPlaying << InfoNowPaused << InfoNowResumed << InfoNowStopped;
+
+    m_pubSubManager = new Jreen::PubSub::Manager( sipPlugin->m_client );
+    m_pubSubManager->addEntityType< Jreen::Tune >();
+
+    m_pauseTimer.setSingleShot( true );
+    connect( &m_pauseTimer, SIGNAL( timeout() ),
+             this, SLOT( audioStopped() ) );
+}
+
+
+Tomahawk::InfoSystem::XmppInfoPlugin::~XmppInfoPlugin()
+{
+    delete m_pubSubManager;
+}
+
+
+void
+Tomahawk::InfoSystem::XmppInfoPlugin::pushInfo(QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input)
+{
+    tDebug() << Q_FUNC_INFO << m_sipPlugin->m_client->jid().full();
+
+    if( m_sipPlugin->m_account->configuration().value("publishtracks").toBool() == false )
+    {
+        tDebug() << Q_FUNC_INFO <<  m_sipPlugin->m_client->jid().full() << "Not publishing now playing info (disabled in account config)";
+        return;
+    }
+
+    switch ( type )
+    {
+        case InfoNowPlaying:
+        case InfoNowResumed:
+            m_pauseTimer.stop();
+            if ( input.canConvert< Tomahawk::InfoSystem::InfoStringHash >() )
+                audioStarted( input.value< Tomahawk::InfoSystem::InfoStringHash >() );
+            break;
+        case InfoNowPaused:
+            m_pauseTimer.start( PAUSE_TIMEOUT * 1000 );
+            audioPaused();
+            break;
+        case InfoNowStopped:
+            m_pauseTimer.stop();
+            audioStopped();
+            break;
+
+        default:
+            return;
+    }
+}
+
+
+void
+Tomahawk::InfoSystem::XmppInfoPlugin::audioStarted(const Tomahawk::InfoSystem::InfoStringHash& info)
+{
+    tDebug() << Q_FUNC_INFO << m_sipPlugin->m_client->jid().full() << info;
+
+    Jreen::Tune::Ptr tune( new Jreen::Tune() );
+
+    tune->setTitle( info.value( "title" ) );
+    tune->setArtist( info.value( "artist" ) );
+    tune->setLength( info.value("duration").toInt() );
+    tune->setTrack( info.value("albumpos") );
+    tune->setUri( GlobalActionManager::instance()->openLink( info.value( "title" ), info.value( "artist" ), info.value( "album" ) ) );
+
+    //TODO: provide a rating once available in Tomahawk
+    tune->setRating( 10 );
+
+    //TODO: it would be nice to set Spotify, Dilandau etc here, but not the jabber ids of friends
+    tune->setSource( "Tomahawk" );
+
+    m_pubSubManager->publishItems( QList<Jreen::Payload::Ptr>() << tune, Jreen::JID() );
+}
+
+void
+Tomahawk::InfoSystem::XmppInfoPlugin::audioPaused()
+{
+    tDebug() << Q_FUNC_INFO << m_sipPlugin->m_client->jid().full();
+}
+
+void
+Tomahawk::InfoSystem::XmppInfoPlugin::audioStopped()
+{
+    tDebug() << Q_FUNC_INFO << m_sipPlugin->m_client->jid().full();
+
+    Jreen::Tune::Ptr tune( new Jreen::Tune() );
+    m_pubSubManager->publishItems(QList<Jreen::Payload::Ptr>() << tune, Jreen::JID());
+}
+
+
+void
+Tomahawk::InfoSystem::XmppInfoPlugin::getInfo(Tomahawk::InfoSystem::InfoRequestData requestData)
+{
+    Q_UNUSED( requestData );
+}
+
+
+void
+Tomahawk::InfoSystem::XmppInfoPlugin::notInCacheSlot(const Tomahawk::InfoSystem::InfoStringHash criteria, Tomahawk::InfoSystem::InfoRequestData requestData)
+{
+    Q_UNUSED( criteria );
+    Q_UNUSED( requestData );
+}
diff --git a/src/accounts/xmpp/XmppInfoPlugin.h b/src/accounts/xmpp/XmppInfoPlugin.h
new file mode 100644
index 000000000..f7d298de4
--- /dev/null
+++ b/src/accounts/xmpp/XmppInfoPlugin.h
@@ -0,0 +1,68 @@
+/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
+ *
+ *   Copyright 2012, Dominik Schmidt <domme@tomahawk-player.org>
+ *
+ *   Tomahawk is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   Tomahawk is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef XMPPINFOPLUGIN_H
+#define XMPPINFOPLUGIN_H
+
+#include "infosystem/infosystem.h"
+
+#include <QTimer>
+
+namespace Jreen {
+    namespace PubSub {
+        class Manager;
+    }
+}
+
+class XmppSipPlugin;
+
+namespace Tomahawk {
+
+    namespace InfoSystem {
+
+        class XmppInfoPlugin  : public InfoPlugin
+        {
+            Q_OBJECT
+
+        public:
+            XmppInfoPlugin(XmppSipPlugin* parent);
+            virtual ~XmppInfoPlugin();
+
+        public slots:
+            void notInCacheSlot( const Tomahawk::InfoSystem::InfoStringHash criteria, Tomahawk::InfoSystem::InfoRequestData requestData );
+
+        protected slots:
+            void pushInfo( QString caller, Tomahawk::InfoSystem::InfoType type, QVariant input );
+            void getInfo( Tomahawk::InfoSystem::InfoRequestData requestData );
+
+        private slots:
+            void audioStarted( const Tomahawk::InfoSystem::InfoStringHash& info );
+            void audioStopped();
+            void audioPaused();
+
+        private:
+            XmppSipPlugin* m_sipPlugin;
+            Jreen::PubSub::Manager* m_pubSubManager;
+            QTimer m_pauseTimer;
+        };
+
+    }
+
+}
+
+#endif // XMPPINFOPLUGIN_H
diff --git a/src/accounts/xmpp/googlewrapper/CMakeLists.txt b/src/accounts/xmpp/googlewrapper/CMakeLists.txt
index b7631e19b..a6c1a7ce3 100644
--- a/src/accounts/xmpp/googlewrapper/CMakeLists.txt
+++ b/src/accounts/xmpp/googlewrapper/CMakeLists.txt
@@ -7,6 +7,7 @@ set( googleHeaders
     ../sip/xmppsip.h
     ../sip/avatarmanager.h
     ../sip/xmlconsole.h
+    ../XmppInfoPlugin.h
     googlewrapper.h )
 
 set( googleSources
@@ -17,6 +18,7 @@ set( googleSources
     ../sip/tomahawkxmppmessagefactory.cpp
     ../sip/avatarmanager.cpp
     ../sip/xmlconsole.cpp
+    ../XmppInfoPlugin.cpp
 
     googlewrapper.cpp )
 
diff --git a/src/accounts/xmpp/sip/xmppsip.cpp b/src/accounts/xmpp/sip/xmppsip.cpp
index 1e877c40e..6ff55b7c7 100644
--- a/src/accounts/xmpp/sip/xmppsip.cpp
+++ b/src/accounts/xmpp/sip/xmppsip.cpp
@@ -56,6 +56,7 @@
 
 #include <utils/tomahawkutilsgui.h>
 #include "utils/logger.h"
+#include "XmppInfoPlugin.h"
 
 using namespace Tomahawk;
 using namespace Accounts;
@@ -85,6 +86,7 @@ JreenMessageHandler(QtMsgType type, const char *msg)
 
 XmppSipPlugin::XmppSipPlugin( Account *account )
     : SipPlugin( account )
+    , m_infoPlugin( 0 )
     , m_state( Account::Disconnected )
 #ifndef ENABLE_HEADLESS
     , m_menu( 0 )
@@ -163,6 +165,7 @@ XmppSipPlugin::XmppSipPlugin( Account *account )
 
 XmppSipPlugin::~XmppSipPlugin()
 {
+    delete m_infoPlugin;
     delete m_avatarManager;
     delete m_roster;
 #ifndef ENABLE_HEADLESS
@@ -172,6 +175,13 @@ XmppSipPlugin::~XmppSipPlugin()
 }
 
 
+InfoSystem::InfoPlugin*
+XmppSipPlugin::infoPlugin()
+{
+    return m_infoPlugin;
+}
+
+
 #ifndef ENABLE_HEADLESS
 QMenu*
 XmppSipPlugin::menu()
@@ -255,6 +265,13 @@ XmppSipPlugin::onConnect()
     // load roster
     m_roster->load();
 
+    // load XmppInfoPlugin
+    if( !m_infoPlugin )
+    {
+        m_infoPlugin = new Tomahawk::InfoSystem::XmppInfoPlugin( this );
+        InfoSystem::InfoSystem::instance()->addInfoPlugin( m_infoPlugin );
+    }
+
     //FIXME: this implementation is totally broken atm, so it's disabled to avoid harm :P
     // join MUC with bare jid as nickname
     //TODO: make the room a list of rooms and make that configurable
diff --git a/src/accounts/xmpp/sip/xmppsip.h b/src/accounts/xmpp/sip/xmppsip.h
index 722d04f53..33b7b61dd 100644
--- a/src/accounts/xmpp/sip/xmppsip.h
+++ b/src/accounts/xmpp/sip/xmppsip.h
@@ -52,10 +52,14 @@
 
 #include "accounts/accountdllmacro.h"
 
+#include "XmppInfoPlugin.h"
+
 class ACCOUNTDLLEXPORT XmppSipPlugin : public SipPlugin
 {
     Q_OBJECT
 
+friend class Tomahawk::InfoSystem::XmppInfoPlugin;
+
 public:
     XmppSipPlugin( Tomahawk::Accounts::Account* account );
     virtual ~XmppSipPlugin();
@@ -63,6 +67,8 @@ public:
     //FIXME: Make this more correct
     virtual bool isValid() const { return true; }
 
+    Tomahawk::InfoSystem::InfoPlugin* infoPlugin();
+
 #ifndef ENABLE_HEADLESS
     virtual QMenu* menu();
 #endif
@@ -123,10 +129,11 @@ private:
     QString m_currentPassword;
     QString m_currentServer;
     int m_currentPort;
-    Tomahawk::Accounts::Account::ConnectionState m_state;
-
     QString m_currentResource;
 
+    Tomahawk::InfoSystem::InfoPlugin* m_infoPlugin;
+    Tomahawk::Accounts::Account::ConnectionState m_state;
+
     // sort out
     Jreen::Client *m_client;
 
diff --git a/src/accounts/xmpp/xmppaccount.cpp b/src/accounts/xmpp/xmppaccount.cpp
index 93f7a1fc9..aafabd7f7 100644
--- a/src/accounts/xmpp/xmppaccount.cpp
+++ b/src/accounts/xmpp/xmppaccount.cpp
@@ -22,6 +22,7 @@
 #include "xmppconfigwidget.h"
 #include "sip/SipPlugin.h"
 #include "ui_xmppconfigwidget.h"
+#include "XmppInfoPlugin.h"
 
 #include <QtCore/QtPlugin>
 
@@ -90,6 +91,16 @@ XmppAccount::saveConfig()
 }
 
 
+InfoSystem::InfoPlugin*
+XmppAccount::infoPlugin()
+{
+    if( !m_xmppSipPlugin.isNull() )
+        return m_xmppSipPlugin.data()->infoPlugin();
+
+    return 0;
+}
+
+
 SipPlugin*
 XmppAccount::sipPlugin()
 {
diff --git a/src/accounts/xmpp/xmppaccount.h b/src/accounts/xmpp/xmppaccount.h
index 66f048929..7dde11c49 100644
--- a/src/accounts/xmpp/xmppaccount.h
+++ b/src/accounts/xmpp/xmppaccount.h
@@ -69,7 +69,8 @@ public:
     void deauthenticate();
     bool isAuthenticated() const;
 
-    Tomahawk::InfoSystem::InfoPlugin* infoPlugin() { return 0; }
+    Tomahawk::InfoSystem::InfoPlugin* infoPlugin();
+
     SipPlugin* sipPlugin();
 
     QWidget* configurationWidget() { return m_configWidget.data(); }
@@ -81,6 +82,7 @@ public:
 protected:
     QWeakPointer< QWidget > m_configWidget; // so the google wrapper can change the config dialog a bit
     QWeakPointer< XmppSipPlugin > m_xmppSipPlugin;
+    QWeakPointer< Tomahawk::InfoSystem::XmppInfoPlugin > m_xmppInfoPlugin;
 };
 
 };
diff --git a/src/accounts/xmpp/xmppconfigwidget.cpp b/src/accounts/xmpp/xmppconfigwidget.cpp
index 70e58d01d..bc7c138da 100644
--- a/src/accounts/xmpp/xmppconfigwidget.cpp
+++ b/src/accounts/xmpp/xmppconfigwidget.cpp
@@ -43,6 +43,7 @@ XmppConfigWidget::XmppConfigWidget( XmppAccount* account, QWidget *parent ) :
     m_ui->xmppPassword->setText( account->credentials().contains( "password" ) ? account->credentials()[ "password" ].toString() : QString() );
     m_ui->xmppServer->setText( account->configuration().contains( "server" ) ? account->configuration()[ "server" ].toString() : QString() );
     m_ui->xmppPort->setValue( account->configuration().contains( "port" ) ? account->configuration()[ "port" ].toInt() : 5222 );
+    m_ui->xmppPublishTracksCheckbox->setChecked( account->configuration().contains( "publishtracks" ) ? account->configuration()[ "publishtracks" ].toBool() : true);
     m_ui->jidExistsLabel->hide();
 
     connect( m_ui->xmppUsername, SIGNAL( textChanged( QString ) ), SLOT( onCheckJidExists( QString ) ) );
@@ -64,6 +65,7 @@ XmppConfigWidget::saveConfig()
     QVariantHash configuration = m_account->configuration();
     configuration[ "server" ] = m_ui->xmppServer->text().trimmed();
     configuration[ "port" ] = m_ui->xmppPort->text().trimmed();
+    configuration[ "publishtracks"] = m_ui->xmppPublishTracksCheckbox->checkState() == Qt::Checked;
 
     m_account->setAccountFriendlyName( m_ui->xmppUsername->text() );
     m_account->setCredentials( credentials );
diff --git a/src/accounts/xmpp/xmppconfigwidget.ui b/src/accounts/xmpp/xmppconfigwidget.ui
index 99876aa6a..07a585604 100644
--- a/src/accounts/xmpp/xmppconfigwidget.ui
+++ b/src/accounts/xmpp/xmppconfigwidget.ui
@@ -209,7 +209,7 @@
      <property name="title">
       <string>Advanced Xmpp Settings</string>
      </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_5">
+     <layout class="QVBoxLayout" name="verticalLayout_3">
       <item>
        <layout class="QHBoxLayout" name="horizontalLayout_3">
         <item>
@@ -293,6 +293,16 @@
         </item>
        </layout>
       </item>
+      <item>
+       <widget class="QCheckBox" name="xmppPublishTracksCheckbox">
+        <property name="toolTip">
+         <string>Lots of servers don't support this (e.g. GTalk, jabber.org)</string>
+        </property>
+        <property name="text">
+         <string>Publish currently playing track</string>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
diff --git a/src/audiocontrols.cpp b/src/audiocontrols.cpp
index ce907a11e..9b3807a0a 100644
--- a/src/audiocontrols.cpp
+++ b/src/audiocontrols.cpp
@@ -278,7 +278,7 @@ void
 AudioControls::onSocialActionsLoaded()
 {
     Query* query = qobject_cast< Query* >( sender() );
-    if ( !query || !m_currentTrack || query != m_currentTrack->toQuery().data() )
+    if ( !query || !m_currentTrack || !query->equals( m_currentTrack->toQuery() ) )
         return;
 
     setSocialActions();
diff --git a/src/audiocontrols.ui b/src/audiocontrols.ui
index 584cca7d2..f07c1d784 100644
--- a/src/audiocontrols.ui
+++ b/src/audiocontrols.ui
@@ -142,7 +142,7 @@
        <number>0</number>
       </property>
       <item>
-       <widget class="QLabel" name="coverImage">
+       <widget class="FadingPixmap" name="coverImage">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
@@ -561,6 +561,11 @@
    <extends>QLabel</extends>
    <header>widgets/querylabel.h</header>
   </customwidget>
+  <customwidget>
+   <class>FadingPixmap</class>
+   <extends>QLabel</extends>
+   <header>widgets/FadingPixmap.h</header>
+  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
diff --git a/src/config.h.in b/src/config.h.in
index 0cdbb948e..87ec9b48d 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -17,6 +17,9 @@
 #cmakedefine LEOPARD
 #cmakedefine HAVE_SPARKLE
 
+#cmakedefine WITH_BREAKPAD
+#cmakedefine WITH_CRASHREPORTER
+
 #cmakedefine LIBLASTFM_FOUND
 #cmakedefine GLOOX_FOUND
 #cmakedefine QCA2_FOUND
diff --git a/src/libtomahawk/CMakeLists.txt b/src/libtomahawk/CMakeLists.txt
index aafb63b74..78401e69c 100644
--- a/src/libtomahawk/CMakeLists.txt
+++ b/src/libtomahawk/CMakeLists.txt
@@ -119,6 +119,7 @@ set( libGuiSources
     utils/dropjobnotifier.cpp
     utils/proxystyle.cpp
     utils/tomahawkutilsgui.cpp
+    utils/closure.cpp
 
     widgets/animatedcounterlabel.cpp
     widgets/checkdirtree.cpp
@@ -141,6 +142,7 @@ set( libGuiSources
     widgets/HeaderWidget.cpp
     widgets/combobox.cpp
     widgets/ToggleButton.cpp
+    widgets/FadingPixmap.cpp
     widgets/SocialPlaylistWidget.cpp
     widgets/infowidgets/sourceinfowidget.cpp
     widgets/infowidgets/ArtistInfoWidget.cpp
@@ -151,9 +153,6 @@ set( libGuiSources
 
 IF(QCA2_FOUND)
     set( libGuiSources ${libGuiSources} utils/groovesharkparser.cpp )
-ENDIF(QCA2_FOUND)
-
-IF(QCA2_FOUND)
     set( libGuiHeaders ${libGuiHeaders} utils/groovesharkparser.h )
 ENDIF(QCA2_FOUND)
 
diff --git a/src/libtomahawk/accounts/Account.cpp b/src/libtomahawk/accounts/Account.cpp
index 7450a96a4..e8a293c2e 100644
--- a/src/libtomahawk/accounts/Account.cpp
+++ b/src/libtomahawk/accounts/Account.cpp
@@ -46,7 +46,6 @@ accountTypeToString( AccountType type )
 Account::Account( const QString& accountId )
     : QObject()
     , m_enabled( false )
-    , m_autoConnect( false )
     , m_accountId( accountId )
 {
     connect( this, SIGNAL( error( int, QString ) ), this, SLOT( onError( int,QString ) ) );
@@ -126,7 +125,6 @@ Account::syncConfig()
     s->beginGroup( "accounts/" + m_accountId );
     s->setValue( "accountfriendlyname", m_accountFriendlyName );
     s->setValue( "enabled", m_enabled );
-    s->setValue( "autoconnect", m_autoConnect );
     s->setValue( "credentials", m_credentials );
     s->setValue( "configuration", m_configuration );
     s->setValue( "acl", m_acl );
@@ -144,7 +142,6 @@ Account::loadFromConfig( const QString& accountId )
     s->beginGroup( "accounts/" + m_accountId );
     m_accountFriendlyName = s->value( "accountfriendlyname", QString() ).toString();
     m_enabled = s->value( "enabled", false ).toBool();
-    m_autoConnect = s->value( "autoconnect", false ).toBool();
     m_credentials = s->value( "credentials", QVariantHash() ).toHash();
     m_configuration = s->value( "configuration", QVariantHash() ).toHash();
     m_acl = s->value( "acl", QVariantMap() ).toMap();
@@ -160,7 +157,6 @@ Account::removeFromConfig()
     s->beginGroup( "accounts/" + m_accountId );
     s->remove( "accountfriendlyname" );
     s->remove( "enabled" );
-    s->remove( "autoconnect" );
     s->remove( "credentials" );
     s->remove( "configuration" );
     s->remove( "acl" );
diff --git a/src/libtomahawk/accounts/Account.h b/src/libtomahawk/accounts/Account.h
index f2e297241..43e98ff67 100644
--- a/src/libtomahawk/accounts/Account.h
+++ b/src/libtomahawk/accounts/Account.h
@@ -78,7 +78,6 @@ public:
     QString accountServiceName() const { QMutexLocker locker( &m_mutex ); return m_accountServiceName; } // e.g. "Twitter", "Last.fm"
     QString accountFriendlyName() const { QMutexLocker locker( &m_mutex ); return m_accountFriendlyName; } // e.g. screen name on the service, JID, etc.
     bool enabled() const { QMutexLocker locker( &m_mutex ); return m_enabled; }
-    bool autoConnect() const { QMutexLocker locker( &m_mutex ); return m_autoConnect; }
     QString accountId() const { QMutexLocker locker( &m_mutex ); return m_accountId; }
 
     QVariantHash configuration() const { QMutexLocker locker( &m_mutex ); return m_configuration; }
@@ -109,7 +108,6 @@ public:
     void setAccountServiceName( const QString &serviceName ) { QMutexLocker locker( &m_mutex ); m_accountServiceName = serviceName; }
     void setAccountFriendlyName( const QString &friendlyName )  { QMutexLocker locker( &m_mutex ); m_accountFriendlyName = friendlyName; }
     void setEnabled( bool enabled ) { QMutexLocker locker( &m_mutex ); m_enabled = enabled; }
-    void setAutoConnect( bool autoConnect ) { QMutexLocker locker( &m_mutex ); m_autoConnect = autoConnect; }
     void setAccountId( const QString &accountId )  { QMutexLocker locker( &m_mutex ); m_accountId = accountId; }
     void setCredentials( const QVariantHash &credentialHash ) { QMutexLocker locker( &m_mutex ); m_credentials = credentialHash; }
     void setConfiguration( const QVariantHash &configuration ) { QMutexLocker locker( &m_mutex ); m_configuration = configuration; }
@@ -148,7 +146,6 @@ private:
     QString m_accountFriendlyName;
     QString m_cachedError;
     bool m_enabled;
-    bool m_autoConnect;
     QString m_accountId;
     QVariantHash m_credentials;
     QVariantHash m_configuration;
diff --git a/src/libtomahawk/accounts/AccountManager.cpp b/src/libtomahawk/accounts/AccountManager.cpp
index 1683485e7..eb1f7b43d 100644
--- a/src/libtomahawk/accounts/AccountManager.cpp
+++ b/src/libtomahawk/accounts/AccountManager.cpp
@@ -374,7 +374,7 @@ AccountManager::hookupAndEnable( Account* account, bool startup )
     if ( p )
         SipHandler::instance()->hookUpPlugin( p );
 
-    if ( account->enabled() && ( !startup || account->autoConnect() ) )
+    if ( account->enabled() )
     {
         account->authenticate();
         m_enabledAccounts << account;
diff --git a/src/libtomahawk/album.cpp b/src/libtomahawk/album.cpp
index a280f4905..3b52e7166 100644
--- a/src/libtomahawk/album.cpp
+++ b/src/libtomahawk/album.cpp
@@ -82,13 +82,6 @@ Album::Album( unsigned int id, const QString& name, const Tomahawk::artist_ptr&
     , m_cover( 0 )
 #endif
 {
-    connect( Tomahawk::InfoSystem::InfoSystem::instance(),
-             SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
-             SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
-    
-    connect( Tomahawk::InfoSystem::InfoSystem::instance(),
-             SIGNAL( finished( QString ) ),
-             SLOT( infoSystemFinished( QString ) ) );
 }
 
 
@@ -131,6 +124,14 @@ Album::cover( const QSize& size, bool forceLoad ) const
         requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( trackInfo );
         requestData.customData = QVariantMap();
 
+        connect( Tomahawk::InfoSystem::InfoSystem::instance(),
+                SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
+                SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
+        
+        connect( Tomahawk::InfoSystem::InfoSystem::instance(),
+                SIGNAL( finished( QString ) ),
+                SLOT( infoSystemFinished( QString ) ) );
+
         Tomahawk::InfoSystem::InfoSystem::instance()->getInfo( requestData );
     }
 
@@ -190,6 +191,12 @@ Album::infoSystemFinished( QString target )
     if ( target != m_uuid )
         return;
 
+    disconnect( Tomahawk::InfoSystem::InfoSystem::instance(), SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
+                this, SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
+        
+    disconnect( Tomahawk::InfoSystem::InfoSystem::instance(), SIGNAL( finished( QString ) ),
+                this, SLOT( infoSystemFinished( QString ) ) );
+
     m_infoLoaded = true;
     emit updated();
 }
diff --git a/src/libtomahawk/artist.cpp b/src/libtomahawk/artist.cpp
index dc22a0861..d2b124240 100644
--- a/src/libtomahawk/artist.cpp
+++ b/src/libtomahawk/artist.cpp
@@ -82,14 +82,6 @@ Artist::Artist( unsigned int id, const QString& name )
 #endif
 {
     m_sortname = DatabaseImpl::sortname( name, true );
-
-    connect( Tomahawk::InfoSystem::InfoSystem::instance(),
-             SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
-             SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
-    
-    connect( Tomahawk::InfoSystem::InfoSystem::instance(),
-             SIGNAL( finished( QString ) ),
-             SLOT( infoSystemFinished( QString ) ) );
 }
 
 
@@ -122,6 +114,14 @@ Artist::cover( const QSize& size, bool forceLoad ) const
         requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( trackInfo );
         requestData.customData = QVariantMap();
 
+        connect( Tomahawk::InfoSystem::InfoSystem::instance(),
+                SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
+                SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
+        
+        connect( Tomahawk::InfoSystem::InfoSystem::instance(),
+                SIGNAL( finished( QString ) ),
+                SLOT( infoSystemFinished( QString ) ) );
+
         Tomahawk::InfoSystem::InfoSystem::instance()->getInfo( requestData );
     }
 
@@ -181,6 +181,12 @@ Artist::infoSystemFinished( QString target )
     if ( target != m_uuid )
         return;
 
+    disconnect( Tomahawk::InfoSystem::InfoSystem::instance(), SIGNAL( info( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ),
+                this, SLOT( infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData, QVariant ) ) );
+        
+    disconnect( Tomahawk::InfoSystem::InfoSystem::instance(), SIGNAL( finished( QString ) ),
+                this, SLOT( infoSystemFinished( QString ) ) );
+
     m_infoLoaded = true;
     emit updated();
 }
diff --git a/src/libtomahawk/audio/audioengine.cpp b/src/libtomahawk/audio/audioengine.cpp
index 97ef2902b..492c112bb 100644
--- a/src/libtomahawk/audio/audioengine.cpp
+++ b/src/libtomahawk/audio/audioengine.cpp
@@ -78,7 +78,7 @@ AudioEngine::AudioEngine()
     connect( m_audioOutput, SIGNAL( volumeChanged( qreal ) ), SLOT( onVolumeChanged( qreal ) ) );
 
     connect( this, SIGNAL( sendWaitingNotification() ), SLOT( sendWaitingNotificationSlot() ), Qt::QueuedConnection );
-    
+
     onVolumeChanged( m_audioOutput->volume() );
 
 #ifndef Q_WS_X11
@@ -134,14 +134,22 @@ AudioEngine::play()
     {
         m_mediaObject->play();
         emit resumed();
-        Tomahawk::InfoSystem::InfoStringHash trackInfo;
 
-        trackInfo["title"] = m_currentTrack->track();
-        trackInfo["artist"] = m_currentTrack->artist()->name();
-        trackInfo["album"] = m_currentTrack->album()->name();
-        Tomahawk::InfoSystem::InfoSystem::instance()->pushInfo(
-        s_aeInfoIdentifier, Tomahawk::InfoSystem::InfoNowResumed,
-        QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( trackInfo ) );
+        if ( TomahawkSettings::instance()->privateListeningMode() != TomahawkSettings::FullyPrivate )
+        {
+            Tomahawk::InfoSystem::InfoStringHash trackInfo;
+
+            trackInfo["title"] = m_currentTrack->track();
+            trackInfo["artist"] = m_currentTrack->artist()->name();
+            trackInfo["album"] = m_currentTrack->album()->name();
+            trackInfo["albumpos"] = QString::number( m_currentTrack->albumpos() );
+            trackInfo["duration"] = QString::number( m_currentTrack->duration() );
+
+
+            Tomahawk::InfoSystem::InfoSystem::instance()->pushInfo(
+                s_aeInfoIdentifier, Tomahawk::InfoSystem::InfoNowResumed,
+                QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( trackInfo ) );
+        }
     }
     else
         next();
@@ -319,7 +327,7 @@ AudioEngine::sendWaitingNotificationSlot() const
     //since it's async, after this is triggered our result could come in, so don't show the popup in that case
     if ( !m_playlist.isNull() && m_playlist->hasNextItem() )
         return;
-    
+
     QVariantMap retryInfo;
     retryInfo["message"] = QString( "The current track could not be resolved. Tomahawk will pick back up with the next resolvable track from this source." );
     Tomahawk::InfoSystem::InfoSystem::instance()->pushInfo(
@@ -460,6 +468,8 @@ AudioEngine::loadTrack( const Tomahawk::result_ptr& result )
                 trackInfo["title"] = m_currentTrack->track();
                 trackInfo["artist"] = m_currentTrack->artist()->name();
                 trackInfo["album"] = m_currentTrack->album()->name();
+                trackInfo["duration"] = QString::number( m_currentTrack->duration() );
+                trackInfo["albumpos"] = QString::number( m_currentTrack->albumpos() );
 
                 Tomahawk::InfoSystem::InfoSystem::instance()->pushInfo(
                     s_aeInfoIdentifier,
@@ -506,6 +516,16 @@ AudioEngine::loadNextTrack()
 
     Tomahawk::result_ptr result;
 
+    if ( !m_stopAfterTrack.isNull() )
+    {
+        if ( m_stopAfterTrack->equals( m_currentTrack->toQuery() ) )
+        {
+            m_stopAfterTrack.clear();
+            stop();
+            return;
+        }
+    }
+
     if ( m_queue && m_queue->trackCount() )
     {
         result = m_queue->nextItem();
@@ -545,7 +565,9 @@ AudioEngine::playItem( Tomahawk::playlistinterface_ptr playlist, const Tomahawk:
     m_currentTrackPlaylist = playlist;
 
     if ( !result.isNull() )
+    {
         loadTrack( result );
+    }
     else if ( !m_playlist.isNull() && m_playlist.data()->retryMode() == PlaylistInterface::Retry )
     {
         m_waitingOnNewTrack = true;
@@ -668,6 +690,9 @@ AudioEngine::timerTriggered( qint64 time )
 void
 AudioEngine::setPlaylist( Tomahawk::playlistinterface_ptr playlist )
 {
+    if ( m_playlist == playlist )
+        return;
+
     if ( !m_playlist.isNull() )
     {
         if ( m_playlist.data() && m_playlist.data()->retryMode() == PlaylistInterface::Retry )
@@ -681,8 +706,9 @@ AudioEngine::setPlaylist( Tomahawk::playlistinterface_ptr playlist )
         emit playlistChanged( playlist );
         return;
     }
-
+    
     m_playlist = playlist;
+    m_stopAfterTrack.clear();
 
     if ( !m_playlist.isNull() && m_playlist.data() && m_playlist.data()->retryMode() == PlaylistInterface::Retry )
         connect( m_playlist.data(), SIGNAL( nextTrackReady() ), SLOT( onPlaylistNextTrackReady() ) );
@@ -694,16 +720,16 @@ AudioEngine::setPlaylist( Tomahawk::playlistinterface_ptr playlist )
 void
 AudioEngine::setCurrentTrack( const Tomahawk::result_ptr& result )
 {
-    m_lastTrack = m_currentTrack;
-    if ( !m_lastTrack.isNull() )
+    Tomahawk::result_ptr lastTrack = m_currentTrack;
+    if ( !lastTrack.isNull() )
     {
         if ( TomahawkSettings::instance()->privateListeningMode() == TomahawkSettings::PublicListening )
         {
-            DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( m_lastTrack, DatabaseCommand_LogPlayback::Finished, m_timeElapsed );
+            DatabaseCommand_LogPlayback* cmd = new DatabaseCommand_LogPlayback( lastTrack, DatabaseCommand_LogPlayback::Finished, m_timeElapsed );
             Database::instance()->enqueue( QSharedPointer<DatabaseCommand>(cmd) );
         }
 
-        emit finished( m_lastTrack );
+        emit finished( lastTrack );
     }
 
     m_currentTrack = result;
diff --git a/src/libtomahawk/audio/audioengine.h b/src/libtomahawk/audio/audioengine.h
index 3c6400229..4928fd6c4 100644
--- a/src/libtomahawk/audio/audioengine.h
+++ b/src/libtomahawk/audio/audioengine.h
@@ -64,6 +64,8 @@ public:
     Tomahawk::playlistinterface_ptr playlist() const { return m_playlist; }
 
     Tomahawk::result_ptr currentTrack() const { return m_currentTrack; }
+    
+    Tomahawk::query_ptr stopAfterTrack() const  { return m_stopAfterTrack; }
 
     qint64 currentTime() const { return m_mediaObject->currentTime(); }
     qint64 currentTrackTotalTime() const { return m_mediaObject->totalTime(); }
@@ -91,6 +93,8 @@ public slots:
     void playItem( Tomahawk::playlistinterface_ptr playlist, const Tomahawk::result_ptr& result );
     void setPlaylist( Tomahawk::playlistinterface_ptr playlist );
     void setQueue( Tomahawk::playlistinterface_ptr queue ) { m_queue = queue; }
+    
+    void setStopAfterTrack( const Tomahawk::query_ptr& query ) { m_stopAfterTrack = query; }
 
 signals:
     void loading( const Tomahawk::result_ptr& track );
@@ -141,8 +145,8 @@ private:
 
     QSharedPointer<QIODevice> m_input;
 
+    Tomahawk::query_ptr m_stopAfterTrack;
     Tomahawk::result_ptr m_currentTrack;
-    Tomahawk::result_ptr m_lastTrack;
     Tomahawk::playlistinterface_ptr m_playlist;
     Tomahawk::playlistinterface_ptr m_currentTrackPlaylist;
     Tomahawk::playlistinterface_ptr m_queue;
diff --git a/src/libtomahawk/context/pages/RelatedArtistsContext.cpp b/src/libtomahawk/context/pages/RelatedArtistsContext.cpp
index fe4e6e28d..612eb5e8f 100644
--- a/src/libtomahawk/context/pages/RelatedArtistsContext.cpp
+++ b/src/libtomahawk/context/pages/RelatedArtistsContext.cpp
@@ -38,6 +38,8 @@ RelatedArtistsContext::RelatedArtistsContext()
     m_relatedModel->setColumnStyle( TreeModel::TrackOnly );
     m_relatedView->setTreeModel( m_relatedModel );
     m_relatedView->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
+    m_relatedView->setSortingEnabled( false );
+    m_relatedView->proxyModel()->sort( -1 );
 
     QPalette pal = m_relatedView->palette();
     pal.setColor( QPalette::Window, QColor( 0, 0, 0, 0 ) );
diff --git a/src/libtomahawk/contextmenu.cpp b/src/libtomahawk/contextmenu.cpp
index de5122a05..fcba90360 100644
--- a/src/libtomahawk/contextmenu.cpp
+++ b/src/libtomahawk/contextmenu.cpp
@@ -1,3 +1,4 @@
+
 /* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
  *
  *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
@@ -37,7 +38,7 @@ ContextMenu::ContextMenu( QWidget* parent )
     m_sigmap = new QSignalMapper( this );
     connect( m_sigmap, SIGNAL( mapped( int ) ), SLOT( onTriggered( int ) ) );
 
-    m_supportedActions = ActionPlay | ActionQueue | ActionCopyLink | ActionLove;
+    m_supportedActions = ActionPlay | ActionQueue | ActionCopyLink | ActionLove | ActionStopAfter;
 }
 
 
@@ -80,6 +81,14 @@ ContextMenu::setQueries( const QList<Tomahawk::query_ptr>& queries )
     if ( m_supportedActions & ActionQueue )
         m_sigmap->setMapping( addAction( tr( "Add to &Queue" ) ), ActionQueue );
 
+    if ( m_supportedActions & ActionStopAfter && itemCount() == 1 )
+    {
+        if ( AudioEngine::instance()->stopAfterTrack() == queries.first() )
+            m_sigmap->setMapping( addAction( tr( "&Continue playback after this track" ) ), ActionStopAfter );
+        else
+            m_sigmap->setMapping( addAction( tr( "&Stop playback after this track" ) ), ActionStopAfter );
+    }
+
     addSeparator();
 
     if ( m_supportedActions & ActionLove && itemCount() == 1 )
@@ -110,7 +119,6 @@ ContextMenu::setQueries( const QList<Tomahawk::query_ptr>& queries )
 void
 ContextMenu::setQuery( const Tomahawk::query_ptr& query )
 {
-
     QList<query_ptr> queries;
     queries << query;
     setQueries( queries );
@@ -212,6 +220,13 @@ ContextMenu::onTriggered( int action )
             m_queries.first()->setLoved( !m_queries.first()->loved() );
             break;
 
+        case ActionStopAfter:
+            if ( m_queries.first()->equals( AudioEngine::instance()->stopAfterTrack() ) )
+                AudioEngine::instance()->setStopAfterTrack( query_ptr() );
+            else
+                AudioEngine::instance()->setStopAfterTrack( m_queries.first() );
+            break;
+
         default:
             emit triggered( action );
     }
diff --git a/src/libtomahawk/contextmenu.h b/src/libtomahawk/contextmenu.h
index 467faeeb2..f077a4f04 100644
--- a/src/libtomahawk/contextmenu.h
+++ b/src/libtomahawk/contextmenu.h
@@ -40,7 +40,8 @@ public:
        ActionQueue =        2,
        ActionDelete =       4,
        ActionCopyLink =     8,
-       ActionLove =         16
+       ActionLove =         16,
+       ActionStopAfter =    32
     };
 
     explicit ContextMenu( QWidget* parent = 0 );
diff --git a/src/libtomahawk/globalactionmanager.cpp b/src/libtomahawk/globalactionmanager.cpp
index 642270c98..f607c604a 100644
--- a/src/libtomahawk/globalactionmanager.cpp
+++ b/src/libtomahawk/globalactionmanager.cpp
@@ -89,12 +89,13 @@ GlobalActionManager::openLinkFromQuery( const query_ptr& query ) const
 {
     QString title, artist, album;
 
-    if( !query->results().isEmpty() && !query->results().first().isNull() )
+    if ( !query->results().isEmpty() && !query->results().first().isNull() )
     {
         title = query->results().first()->track();
         artist = query->results().first()->artist().isNull() ? QString() : query->results().first()->artist()->name();
         album = query->results().first()->album().isNull() ? QString() : query->results().first()->album()->name();
-    } else
+    }
+    else
     {
         title = query->track();
         artist = query->artist();
@@ -110,11 +111,11 @@ GlobalActionManager::openLink( const QString& title, const QString& artist, cons
 {
     QUrl link( QString( "%1/open/track/" ).arg( hostname() ) );
 
-    if( !title.isEmpty() )
-        link.addQueryItem( "title", title );
-    if( !artist.isEmpty() )
+    if ( !artist.isEmpty() )
         link.addQueryItem( "artist", artist );
-    if( !album.isEmpty() )
+    if ( !title.isEmpty() )
+        link.addQueryItem( "title", title );
+    if ( !album.isEmpty() )
         link.addQueryItem( "album", album );
 
     return link;
diff --git a/src/libtomahawk/infobar/infobar.cpp b/src/libtomahawk/infobar/infobar.cpp
index 4296b75ae..0a5425f50 100644
--- a/src/libtomahawk/infobar/infobar.cpp
+++ b/src/libtomahawk/infobar/infobar.cpp
@@ -85,7 +85,7 @@ InfoBar::InfoBar( QWidget* parent )
     m_autoUpdate->setText( tr( "Automatically update" ) );
     m_autoUpdate->setLayoutDirection( Qt::RightToLeft );
     m_autoUpdate->setPalette( whitePal );
-    connect( m_autoUpdate, SIGNAL( stateChanged( int ) ), this, SIGNAL( autoUpdateChanged( int ) ) );
+    connect( m_autoUpdate, SIGNAL( toggled( bool ) ), this, SIGNAL( autoUpdateChanged( bool ) ) );
 
     ui->horizontalLayout->addWidget( m_autoUpdate );
 
diff --git a/src/libtomahawk/infobar/infobar.h b/src/libtomahawk/infobar/infobar.h
index f16339d52..7f1f9d8ee 100644
--- a/src/libtomahawk/infobar/infobar.h
+++ b/src/libtomahawk/infobar/infobar.h
@@ -60,7 +60,7 @@ public slots:
     void setAutoUpdateAvailable( bool b );
 signals:
     void filterTextChanged( const QString& filter );
-    void autoUpdateChanged( int state );
+    void autoUpdateChanged( bool checked );
 
 protected:
     void changeEvent( QEvent* e );
diff --git a/src/libtomahawk/playlist.h b/src/libtomahawk/playlist.h
index 5f4f1d704..78f3e3745 100644
--- a/src/libtomahawk/playlist.h
+++ b/src/libtomahawk/playlist.h
@@ -188,8 +188,7 @@ public:
 
 
     QList<plentry_ptr> entriesFromQueries( const QList<Tomahawk::query_ptr>& queries, bool clearFirst = false );
-
-    void setUpdater( PlaylistUpdaterInterface* interface ) { m_updater = interface; }
+    void setUpdater( PlaylistUpdaterInterface* pluinterface ) { m_updater = pluinterface; }
     PlaylistUpdaterInterface* updater() const { return m_updater; }
 
     Tomahawk::playlistinterface_ptr playlistInterface();
diff --git a/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp b/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp
index 404fb1bf7..95ff66915 100644
--- a/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp
+++ b/src/libtomahawk/playlist/PlaylistLargeItemDelegate.cpp
@@ -40,10 +40,11 @@
 using namespace Tomahawk;
 
 
-PlaylistLargeItemDelegate::PlaylistLargeItemDelegate( TrackView* parent, TrackProxyModel* proxy )
+PlaylistLargeItemDelegate::PlaylistLargeItemDelegate( DisplayMode mode, TrackView* parent, TrackProxyModel* proxy )
     : QStyledItemDelegate( (QObject*)parent )
     , m_view( parent )
     , m_model( proxy )
+    , m_mode( mode )
 {
     m_topOption = QTextOption( Qt::AlignTop );
     m_topOption.setWrapMode( QTextOption::NoWrap );
@@ -149,8 +150,7 @@ PlaylistLargeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem&
         return;
 
     QPixmap pixmap, avatar;
-    QString artist, track, upperText, lowerText;
-    source_ptr source = item->query()->playedBy().first;
+    QString artist, track, lowerText;
     unsigned int duration = 0;
 
     if ( item->query()->results().count() )
@@ -165,14 +165,11 @@ PlaylistLargeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem&
         track = item->query()->track();
     }
 
-    lowerText = item->query()->socialActionDescription( "Love", Query::Detailed );
-
-    if ( source.isNull() )
+    QSize avatarSize( 32, 32 );
+    source_ptr source = item->query()->playedBy().first;
+    if ( m_mode == RecentlyPlayed && !source.isNull() )
     {
-    }
-    else
-    {
-        upperText = QString( "%1 - %2" ).arg( artist ).arg( track );
+        avatar = source->avatar( Source::FancyStyle, avatarSize );
         QString playtime = TomahawkUtils::ageToString( QDateTime::fromTime_t( item->query()->playedBy().second ), true );
 
         if ( source == SourceList::instance()->getLocal() )
@@ -181,6 +178,16 @@ PlaylistLargeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem&
             lowerText = QString( tr( "played %1 by %2" ) ).arg( playtime ).arg( source->friendlyName() );
     }
 
+    if ( m_mode == LatestAdditions && item->query()->numResults() )
+    {
+        QString playtime = TomahawkUtils::ageToString( QDateTime::fromTime_t( item->query()->results().first()->modificationTime() ), true );
+
+        lowerText = QString( tr( "added %1" ) ).arg( playtime );
+    }
+
+    if ( m_mode == LovedTracks )
+        lowerText = item->query()->socialActionDescription( "Love", Query::Detailed );
+
     painter->save();
     {
         QRect r = opt.rect.adjusted( 3, 6, 0, -6 );
@@ -197,14 +204,10 @@ PlaylistLargeItemDelegate::paint( QPainter* painter, const QStyleOptionViewItem&
 
         painter->setPen( opt.palette.text().color() );
 
-        QSize avatarSize( 32, 32 );
         QRect pixmapRect = r.adjusted( 6, 0, -option.rect.width() + option.rect.height() - 6 + r.left(), 0 );
         QRect avatarRect = r.adjusted( option.rect.width() - r.left() - 12 - avatarSize.width(), ( option.rect.height() - avatarSize.height() ) / 2 - 5, 0, 0 );
         avatarRect.setSize( avatarSize );
         
-        if ( source )
-            avatar = source->avatar( Source::FancyStyle, avatarRect.size() );
-
         pixmap = item->query()->cover( pixmapRect.size(), false );
         if ( !pixmap )
         {
diff --git a/src/libtomahawk/playlist/PlaylistLargeItemDelegate.h b/src/libtomahawk/playlist/PlaylistLargeItemDelegate.h
index 56ea64a57..ad2210a75 100644
--- a/src/libtomahawk/playlist/PlaylistLargeItemDelegate.h
+++ b/src/libtomahawk/playlist/PlaylistLargeItemDelegate.h
@@ -35,7 +35,10 @@ class DLLEXPORT PlaylistLargeItemDelegate : public QStyledItemDelegate
 Q_OBJECT
 
 public:
-    PlaylistLargeItemDelegate( TrackView* parent = 0, TrackProxyModel* proxy = 0 );
+    enum DisplayMode
+    { LovedTracks, RecentlyPlayed, LatestAdditions };
+
+    PlaylistLargeItemDelegate( DisplayMode mode, TrackView* parent = 0, TrackProxyModel* proxy = 0 );
 
 protected:
     void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const;
@@ -52,6 +55,7 @@ private:
 
     TrackView* m_view;
     TrackProxyModel* m_model;
+    DisplayMode m_mode;
 };
 
 #endif // PLAYLISTLARGEITEMDELEGATE_H
diff --git a/src/libtomahawk/playlist/PlaylistUpdaterInterface.cpp b/src/libtomahawk/playlist/PlaylistUpdaterInterface.cpp
index 68372ca4d..56a8a688e 100644
--- a/src/libtomahawk/playlist/PlaylistUpdaterInterface.cpp
+++ b/src/libtomahawk/playlist/PlaylistUpdaterInterface.cpp
@@ -79,8 +79,6 @@ PlaylistUpdaterInterface::PlaylistUpdaterInterface( const playlist_ptr& pl )
     connect( m_timer, SIGNAL( timeout() ), this, SLOT( updateNow() ) );
 
     QTimer::singleShot( 0, this, SLOT( doSave() ) );
-
-    setAutoUpdate( m_autoUpdate );
 }
 
 PlaylistUpdaterInterface::PlaylistUpdaterInterface( const playlist_ptr& pl, int interval, bool autoUpdate )
diff --git a/src/libtomahawk/playlist/RecentlyPlayedModel.cpp b/src/libtomahawk/playlist/RecentlyPlayedModel.cpp
index db41f2766..2a194295f 100644
--- a/src/libtomahawk/playlist/RecentlyPlayedModel.cpp
+++ b/src/libtomahawk/playlist/RecentlyPlayedModel.cpp
@@ -40,6 +40,8 @@ RecentlyPlayedModel::RecentlyPlayedModel( const source_ptr& source, QObject* par
 {
     if ( source.isNull() )
     {
+        onSourcesReady();
+
         connect( SourceList::instance(), SIGNAL( ready() ), SLOT( onSourcesReady() ) );
         connect( SourceList::instance(), SIGNAL( sourceAdded( Tomahawk::source_ptr ) ), SLOT( onSourceAdded( Tomahawk::source_ptr ) ) );
     }
diff --git a/src/libtomahawk/playlist/XspfUpdater.cpp b/src/libtomahawk/playlist/XspfUpdater.cpp
index 2eb1d7a1e..d00991d20 100644
--- a/src/libtomahawk/playlist/XspfUpdater.cpp
+++ b/src/libtomahawk/playlist/XspfUpdater.cpp
@@ -55,8 +55,15 @@ XspfUpdater::~XspfUpdater()
 void
 XspfUpdater::updateNow()
 {
+    if ( m_url.isEmpty() )
+    {
+        qWarning() << "XspfUpdater not updating because we have an empty url...";
+        return;
+    }
+
     XSPFLoader* l = new XSPFLoader( false, false );
     l->setAutoResolveTracks( false );
+    l->setErrorTitle( playlist()->title() );
     l->load( m_url );
     connect( l, SIGNAL( tracks( QList<Tomahawk::query_ptr> ) ), this, SLOT( playlistLoaded( QList<Tomahawk::query_ptr> ) ) );
 }
diff --git a/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp b/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp
index dcb34acef..dd55845e8 100644
--- a/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp
+++ b/src/libtomahawk/playlist/dynamic/echonest/EchonestGenerator.cpp
@@ -597,7 +597,9 @@ EchonestGenerator::sentenceSummary()
                     suffix = ", ";
                 else
                     suffix = ".";
-            } else
+            } else if ( i < required.size() - 2 ) // An item in the list that is before the second to last one, don't use ", and", we only want that for the last item
+                suffix += ", ";
+            else
                 suffix += ", and ";
         }
         sentence += center + suffix;
diff --git a/src/libtomahawk/playlist/playlistitemdelegate.cpp b/src/libtomahawk/playlist/playlistitemdelegate.cpp
index 04dad4277..2c6a36b97 100644
--- a/src/libtomahawk/playlist/playlistitemdelegate.cpp
+++ b/src/libtomahawk/playlist/playlistitemdelegate.cpp
@@ -97,10 +97,13 @@ PlaylistItemDelegate::prepareStyleOption( QStyleOptionViewItemV4* option, const
     if ( item->isPlaying() )
     {
         option->palette.setColor( QPalette::Highlight, option->palette.color( QPalette::Mid ) );
-        option->state |= QStyle::State_Selected;
+
+        option->backgroundBrush = option->palette.color( QPalette::Mid );
+        option->palette.setColor( QPalette::Text, option->palette.color( QPalette::Text ) );
+
     }
 
-    if ( option->state & QStyle::State_Selected )
+    if ( option->state & QStyle::State_Selected && !item->isPlaying() )
     {
         option->palette.setColor( QPalette::Text, option->palette.color( QPalette::HighlightedText ) );
     }
@@ -203,7 +206,10 @@ PlaylistItemDelegate::paintShort( QPainter* painter, const QStyleOptionViewItem&
         QRect ir = r.adjusted( 4, 0, -option.rect.width() + option.rect.height() - 8 + r.left(), 0 );
 
         if ( useAvatars )
-            pixmap = source->avatar( Source::FancyStyle, ir.size() );
+        {
+            if ( !source.isNull() )
+                pixmap = source->avatar( Source::FancyStyle, ir.size() );
+        }
         else
             pixmap = item->query()->cover( ir.size(), false );
 
diff --git a/src/libtomahawk/playlist/trackmodelitem.cpp b/src/libtomahawk/playlist/trackmodelitem.cpp
index 18f0c5126..4a02431cf 100644
--- a/src/libtomahawk/playlist/trackmodelitem.cpp
+++ b/src/libtomahawk/playlist/trackmodelitem.cpp
@@ -82,10 +82,7 @@ TrackModelItem::entry() const
 const Tomahawk::query_ptr&
 TrackModelItem::query() const
 {
-    if ( !m_entry.isNull() )
-        return m_entry->query();
-    else
-        return m_query;
+    return m_query;
 }
 
 
diff --git a/src/libtomahawk/playlist/trackview.cpp b/src/libtomahawk/playlist/trackview.cpp
index bd8e17740..35ed48376 100644
--- a/src/libtomahawk/playlist/trackview.cpp
+++ b/src/libtomahawk/playlist/trackview.cpp
@@ -33,6 +33,7 @@
 #include "dynamic/widgets/LoadingSpinner.h"
 #include "utils/tomahawkutils.h"
 #include "utils/logger.h"
+#include "utils/closure.h"
 #include "dropjob.h"
 #include "artist.h"
 #include "album.h"
@@ -205,6 +206,41 @@ TrackView::onScrollTimeout()
 }
 
 
+void
+TrackView::startPlayingFromStart()
+{
+    if ( m_proxyModel->rowCount() == 0 )
+        return;
+
+    const QModelIndex index = m_proxyModel->index( 0, 0 );
+    startAutoPlay( index );
+}
+
+
+void
+TrackView::autoPlayResolveFinished( const query_ptr& query, int row )
+{
+    Q_ASSERT( !query.isNull() );
+    Q_ASSERT( row >= 0 );
+
+    if ( query.isNull() || row < 0  || query != m_autoPlaying )
+        return;
+
+    const QModelIndex index = m_proxyModel->index( row, 0 );
+    if ( query->playable() )
+    {
+        onItemActivated( index );
+        return;
+    }
+
+    // Try the next one..
+    const QModelIndex sib = index.sibling( index.row() + 1, index.column() );
+    if ( sib.isValid() )
+        startAutoPlay( sib );
+
+}
+
+
 void
 TrackView::currentChanged( const QModelIndex& current, const QModelIndex& previous )
 {
@@ -227,15 +263,48 @@ TrackView::onItemActivated( const QModelIndex& index )
     if ( !index.isValid() )
         return;
 
+    tryToPlayItem( index );
+    emit itemActivated( index );
+}
+
+
+void
+TrackView::startAutoPlay( const QModelIndex& index )
+{
+    if ( tryToPlayItem( index ) )
+        return;
+
+    // item isn't playable but still resolving
+    TrackModelItem* item = m_model->itemFromIndex( m_proxyModel->mapToSource( index ) );
+    if ( item && !item->query().isNull() && !item->query()->resolvingFinished() )
+    {
+        m_autoPlaying = item->query(); // So we can kill it if user starts autoplaying this playlist again
+        NewClosure( item->query().data(), SIGNAL( resolvingFinished( bool ) ), this, SLOT( autoPlayResolveFinished( Tomahawk::query_ptr, int ) ),
+                    item->query(), index.row() );
+        return;
+    }
+
+    // not playable at all, try next
+    const QModelIndex sib = index.sibling( index.row() + 1, index.column() );
+    if ( sib.isValid() )
+        startAutoPlay( sib );
+}
+
+
+bool
+TrackView::tryToPlayItem( const QModelIndex& index )
+{
     TrackModelItem* item = m_model->itemFromIndex( m_proxyModel->mapToSource( index ) );
     if ( item && !item->query().isNull() && item->query()->numResults() )
     {
         tDebug() << "Result activated:" << item->query()->toString() << item->query()->results().first()->url();
         m_proxyModel->setCurrentIndex( index );
         AudioEngine::instance()->playItem( m_proxyModel->playlistInterface(), item->query()->results().first() );
+
+        return true;
     }
 
-    emit itemActivated( index );
+    return false;
 }
 
 
@@ -489,7 +558,12 @@ TrackView::onCustomContextMenu( const QPoint& pos )
 
         TrackModelItem* item = proxyModel()->itemFromIndex( proxyModel()->mapToSource( index ) );
         if ( item && !item->query().isNull() )
-            queries << item->query();
+        {
+            if ( item->query()->numResults() > 0 )
+                queries << item->query()->results().first()->toQuery();
+            else
+                queries << item->query();
+        }
     }
 
     m_contextMenu->setQueries( queries );
diff --git a/src/libtomahawk/playlist/trackview.h b/src/libtomahawk/playlist/trackview.h
index ae9a1bd93..4b1b4e527 100644
--- a/src/libtomahawk/playlist/trackview.h
+++ b/src/libtomahawk/playlist/trackview.h
@@ -66,6 +66,9 @@ public:
     bool updatesContextView() const { return m_updateContextView; }
     void setUpdatesContextView( bool b ) { m_updateContextView = b; }
 
+    // Starts playing from the beginning if resolved, or waits until a track is playable
+    void startPlayingFromStart();
+
 public slots:
     virtual void onItemActivated( const QModelIndex& index );
 
@@ -103,7 +106,11 @@ private slots:
 
     void onCustomContextMenu( const QPoint& pos );
 
+    void autoPlayResolveFinished( const Tomahawk::query_ptr& query, int row  );
+
 private:
+    void startAutoPlay( const QModelIndex& index );
+    bool tryToPlayItem( const QModelIndex& index );
     void updateHoverIndex( const QPoint& pos );
 
     QString m_guid;
@@ -122,6 +129,9 @@ private:
 
     QModelIndex m_hoveredIndex;
     QModelIndex m_contextMenuIndex;
+
+    Tomahawk::query_ptr m_autoPlaying;
+
     Tomahawk::ContextMenu* m_contextMenu;
     
     QTimer m_timer;
diff --git a/src/libtomahawk/playlist/treemodel.cpp b/src/libtomahawk/playlist/treemodel.cpp
index 0165e62a6..5f60a2eb5 100644
--- a/src/libtomahawk/playlist/treemodel.cpp
+++ b/src/libtomahawk/playlist/treemodel.cpp
@@ -2,6 +2,7 @@
  *
  *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
  *   Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
+ *   Copyright 2012,      Leo Franchi <lfranchi@kde.org>
  *
  *   Tomahawk is free software: you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -623,7 +624,7 @@ TreeModel::addAlbums( const artist_ptr& artist, const QModelIndex& parent, bool
         requestData.caller = m_infoId;
         requestData.customData["row"] = parent.row();
         requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( artistInfo );
-        requestData.customData["refetch"] = QVariant( autoRefetch );
+        requestData.customData["refetch"] = autoRefetch;
         requestData.type = Tomahawk::InfoSystem::InfoArtistReleases;
         Tomahawk::InfoSystem::InfoSystem::instance()->getInfo( requestData );
     }
@@ -661,8 +662,8 @@ TreeModel::addTracks( const album_ptr& album, const QModelIndex& parent, bool au
         m_receivedInfoData.removeAll( artistInfo );
         Tomahawk::InfoSystem::InfoRequestData requestData;
         requestData.caller = m_infoId;
-        requestData.customData["rows"] = QVariant( rows );
-        requestData.customData["refetch"] = QVariant( autoRefetch );
+        requestData.customData["rows"] = rows;
+        requestData.customData["refetch"] = autoRefetch;
         requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( artistInfo );
         requestData.type = Tomahawk::InfoSystem::InfoAlbumSongs;
         requestData.timeoutMillis = 0;
@@ -797,7 +798,7 @@ TreeModel::onAlbumsAdded( const QList<Tomahawk::album_ptr>& albums, const QModel
         albumitem = new TreeModelItem( album, parentItem );
         albumitem->index = createIndex( parentItem->children.count() - 1, 0, albumitem );
         connect( albumitem, SIGNAL( dataChanged() ), SLOT( onDataChanged() ) );
-        
+
         getCover( albumitem->index );
     }
 
@@ -887,7 +888,7 @@ TreeModel::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestData, QV
 
             QModelIndex idx = index( requestData.customData[ "row" ].toInt(), 0, QModelIndex() );
 
-            if ( requestData.customData[ "refetch" ].toInt() > 0 && !al.count() )
+            if ( requestData.customData[ "refetch" ].toBool() && !al.count() )
             {
                 setMode( DatabaseMode );
 
@@ -941,7 +942,13 @@ TreeModel::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestData, QV
             }
             else if ( m_receivedInfoData.count() == 2 /* FIXME */ )
             {
-                if ( requestData.customData[ "refetch" ].toInt() > 0 )
+                // If the second load got no data, but the first load did, don't do anything
+                QList< QVariant > rows = requestData.customData[ "rows" ].toList();
+                QModelIndex idx = index( rows.first().toUInt(), 0, index( rows.at( 1 ).toUInt(), 0, QModelIndex() ) );
+                if ( rowCount( idx ) )
+                    return;
+
+                if ( requestData.customData[ "refetch" ].toBool() )
                 {
                     setMode( DatabaseMode );
 
diff --git a/src/libtomahawk/query.cpp b/src/libtomahawk/query.cpp
index 7d7f41846..bd2310ee7 100644
--- a/src/libtomahawk/query.cpp
+++ b/src/libtomahawk/query.cpp
@@ -58,7 +58,6 @@ Query::get( const QString& artist, const QString& track, const QString& album, c
 query_ptr
 Query::get( const QString& query, const QID& qid )
 {
-
     query_ptr q = query_ptr( new Query( query, qid ), &QObject::deleteLater );
     q->setWeakRef( q.toWeakRef() );
 
@@ -164,6 +163,7 @@ Query::addResults( const QList< Tomahawk::result_ptr >& newresults )
 
         m_results << newresults;
         qStableSort( m_results.begin(), m_results.end(), Query::resultSorter );
+        query_ptr q = m_ownRef.toStrongRef();
 
         // hook up signals, and check solved status
         foreach( const result_ptr& rp, newresults )
@@ -412,6 +412,18 @@ Query::checkResults()
 }
 
 
+bool
+Query::equals( const Tomahawk::query_ptr& other ) const
+{
+    if ( other.isNull() )
+        return false;
+
+    return ( artist() == other->artist() &&
+             album() == other->album() &&
+             track() == other->track() );
+}
+
+
 QVariant
 Query::toVariant() const
 {
@@ -538,7 +550,7 @@ Query::parseSocialActions()
     {
         Tomahawk::SocialAction socialAction;
         socialAction = it.next();
-        if ( socialAction.timestamp.toUInt() > highestTimestamp && socialAction.source->id() == SourceList::instance()->getLocal()->id() )
+        if ( socialAction.timestamp.toUInt() > highestTimestamp && socialAction.source->isLocal() )
         {
             m_currentSocialActions[ socialAction.action.toString() ] = socialAction.value.toBool();
         }
@@ -568,7 +580,7 @@ Query::setLoved( bool loved )
     query_ptr q = m_ownRef.toStrongRef();
     if ( q )
     {
-        m_currentSocialActions[ "Loved" ] = loved;
+        m_currentSocialActions[ "Love" ] = loved;
 
         Tomahawk::InfoSystem::InfoStringHash trackInfo;
         trackInfo["title"] = track();
@@ -581,6 +593,8 @@ Query::setLoved( bool loved )
 
         DatabaseCommand_SocialAction* cmd = new DatabaseCommand_SocialAction( q, QString( "Love" ), loved ? QString( "true" ) : QString( "false" ) );
         Database::instance()->enqueue( QSharedPointer<DatabaseCommand>(cmd) );
+        
+        emit socialActionsLoaded();
     }
 }
 
diff --git a/src/libtomahawk/query.h b/src/libtomahawk/query.h
index 0d8c6d1ce..724e53529 100644
--- a/src/libtomahawk/query.h
+++ b/src/libtomahawk/query.h
@@ -91,6 +91,8 @@ public:
     void setAlbumPos( unsigned int albumpos ) { m_albumpos = albumpos; }
     void setDiscNumber( unsigned int discnumber ) { m_discnumber = discnumber; }
 
+    bool equals( const Tomahawk::query_ptr& other ) const;
+
     QVariant toVariant() const;
     QString toString() const;
 
diff --git a/src/libtomahawk/resolvers/scriptresolver.cpp b/src/libtomahawk/resolvers/scriptresolver.cpp
index a8b97623e..b4e886eb4 100644
--- a/src/libtomahawk/resolvers/scriptresolver.cpp
+++ b/src/libtomahawk/resolvers/scriptresolver.cpp
@@ -42,6 +42,7 @@ ScriptResolver::ScriptResolver( const QString& exe )
     , m_ready( false )
     , m_stopped( true )
     , m_configSent( false )
+    , m_deleting( false )
     , m_error( Tomahawk::ExternalResolver::NoError )
 {
     tLog() << Q_FUNC_INFO << "Created script resolver:" << exe;
@@ -62,15 +63,13 @@ ScriptResolver::ScriptResolver( const QString& exe )
 ScriptResolver::~ScriptResolver()
 {
     disconnect( &m_proc, SIGNAL( finished( int, QProcess::ExitStatus ) ), this, SLOT( cmdExited( int, QProcess::ExitStatus ) ) );
+    m_deleting = true;
 
     QVariantMap msg;
     msg[ "_msgtype" ] = "quit";
     sendMessage( msg );
 
-   // QEventLoop::processEvents(QEventLoop::ExcludeUserInputEvents);
-
-   // m_proc.terminate();
-    m_proc.waitForFinished( 1000 );
+    m_proc.waitForFinished( 1000 ); // might call handleMsg
 
     Tomahawk::Pipeline::instance()->removeResolver( this );
 
@@ -221,6 +220,10 @@ ScriptResolver::handleMsg( const QByteArray& msg )
 {
 //    qDebug() << Q_FUNC_INFO << msg.size() << QString::fromAscii( msg );
 
+    // Might be called from waitForFinished() in ~ScriptResolver, no database in that case, abort.
+    if ( m_deleting )
+        return;
+
     bool ok;
     QVariant v = m_parser.parse( msg, &ok );
     if ( !ok || v.type() != QVariant::Map )
diff --git a/src/libtomahawk/resolvers/scriptresolver.h b/src/libtomahawk/resolvers/scriptresolver.h
index 098df8212..8aa3bb6c8 100644
--- a/src/libtomahawk/resolvers/scriptresolver.h
+++ b/src/libtomahawk/resolvers/scriptresolver.h
@@ -88,7 +88,7 @@ private:
     quint32 m_msgsize;
     QByteArray m_msg;
 
-    bool m_ready, m_stopped, m_configSent;
+    bool m_ready, m_stopped, m_configSent, m_deleting;
     ExternalResolver::ErrorState m_error;
 
     QJson::Parser m_parser;
diff --git a/src/libtomahawk/utils/closure.cpp b/src/libtomahawk/utils/closure.cpp
new file mode 100644
index 000000000..8a68b63e1
--- /dev/null
+++ b/src/libtomahawk/utils/closure.cpp
@@ -0,0 +1,89 @@
+/* This file is part of Clementine.
+   Copyright 2011, David Sansome <me@davidsansome.com>
+
+   Clementine is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Clementine is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Clementine.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "closure.h"
+
+namespace _detail {
+
+Closure::Closure(QObject* sender,
+                 const char* signal,
+                 QObject* receiver,
+                 const char* slot,
+                 const ClosureArgumentWrapper* val0,
+                 const ClosureArgumentWrapper* val1,
+                 const ClosureArgumentWrapper* val2,
+                 const ClosureArgumentWrapper* val3)
+    : QObject(receiver),
+      callback_(NULL),
+      val0_(val0),
+      val1_(val1),
+      val2_(val2),
+      val3_(val3) {
+  const QMetaObject* meta_receiver = receiver->metaObject();
+
+  QByteArray normalised_slot = QMetaObject::normalizedSignature(slot + 1);
+  const int index = meta_receiver->indexOfSlot(normalised_slot.constData());
+  Q_ASSERT(index != -1);
+  slot_ = meta_receiver->method(index);
+
+  Connect(sender, signal);
+}
+
+Closure::Closure(QObject* sender,
+                 const char* signal,
+                 std::tr1::function<void()> callback)
+    : callback_(callback) {
+  Connect(sender, signal);
+}
+
+Closure::~Closure() {
+}
+
+void Closure::Connect(QObject* sender, const char* signal) {
+  bool success = connect(sender, signal, SLOT(Invoked()));
+  Q_ASSERT(success);
+  success = connect(sender, SIGNAL(destroyed()), SLOT(Cleanup()));
+  Q_ASSERT(success);
+  Q_UNUSED(success);
+}
+
+void Closure::Invoked() {
+  if (callback_) {
+    callback_();
+  } else {
+    slot_.invoke(
+        parent(),
+        val0_ ? val0_->arg() : QGenericArgument(),
+        val1_ ? val1_->arg() : QGenericArgument(),
+        val2_ ? val2_->arg() : QGenericArgument(),
+        val3_ ? val3_->arg() : QGenericArgument());
+  }
+  deleteLater();
+}
+
+void Closure::Cleanup() {
+  disconnect();
+  deleteLater();
+}
+
+}  // namespace _detail
+
+_detail::Closure* NewClosure(
+    QObject* sender, const char* signal,
+    QObject* receiver, const char* slot) {
+  return new _detail::Closure(sender, signal, receiver, slot);
+}
diff --git a/src/libtomahawk/utils/closure.h b/src/libtomahawk/utils/closure.h
new file mode 100644
index 000000000..8458bbb36
--- /dev/null
+++ b/src/libtomahawk/utils/closure.h
@@ -0,0 +1,225 @@
+/* This file is part of Clementine.
+   Copyright 2011, David Sansome <me@davidsansome.com>
+
+   Clementine is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Clementine is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Clementine.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CLOSURE_H
+#define CLOSURE_H
+
+#include <tr1/functional>
+
+#include <QMetaMethod>
+#include <QObject>
+#include <QSharedPointer>
+
+#include <boost/noncopyable.hpp>
+#include <boost/scoped_ptr.hpp>
+
+namespace _detail {
+
+class ClosureArgumentWrapper {
+ public:
+  virtual ~ClosureArgumentWrapper() {}
+
+  virtual QGenericArgument arg() const = 0;
+};
+
+template<typename T>
+class ClosureArgument : public ClosureArgumentWrapper {
+ public:
+  explicit ClosureArgument(const T& data) : data_(data) {}
+
+  virtual QGenericArgument arg() const {
+    return Q_ARG(T, data_);
+  }
+
+ private:
+  T data_;
+};
+
+class Closure : public QObject, boost::noncopyable {
+  Q_OBJECT
+
+ public:
+  Closure(QObject* sender, const char* signal,
+          QObject* receiver, const char* slot,
+          const ClosureArgumentWrapper* val0 = 0,
+          const ClosureArgumentWrapper* val1 = 0,
+          const ClosureArgumentWrapper* val2 = 0,
+          const ClosureArgumentWrapper* val3 = 0);
+
+  Closure(QObject* sender, const char* signal,
+          std::tr1::function<void()> callback);
+
+  virtual ~Closure();
+
+ private slots:
+  void Invoked();
+  void Cleanup();
+
+ private:
+  void Connect(QObject* sender, const char* signal);
+
+  QMetaMethod slot_;
+  std::tr1::function<void()> callback_;
+
+  boost::scoped_ptr<const ClosureArgumentWrapper> val0_;
+  boost::scoped_ptr<const ClosureArgumentWrapper> val1_;
+  boost::scoped_ptr<const ClosureArgumentWrapper> val2_;
+  boost::scoped_ptr<const ClosureArgumentWrapper> val3_;
+};
+
+class SharedPointerWrapper {
+ public:
+  virtual ~SharedPointerWrapper() {}
+  virtual QObject* data() const = 0;
+};
+
+template<typename T>
+class SharedPointer : public SharedPointerWrapper {
+ public:
+  explicit SharedPointer(QSharedPointer<T> ptr)
+      : ptr_(ptr) {
+  }
+
+  QObject* data() const {
+    return ptr_.data();
+  }
+
+ private:
+  QSharedPointer<T> ptr_;
+};
+
+// For use with a QSharedPointer as a sender.
+class SharedClosure : public Closure {
+  Q_OBJECT
+
+ public:
+  SharedClosure(SharedPointerWrapper* sender, const char* signal,
+                QObject* receiver, const char* slot,
+                const ClosureArgumentWrapper* val0 = 0,
+                const ClosureArgumentWrapper* val1 = 0,
+                const ClosureArgumentWrapper* val2 = 0,
+                const ClosureArgumentWrapper* val3 = 0)
+      : Closure(sender->data(), signal,
+                receiver, slot,
+                val0, val1, val2, val3),
+        shared_sender_(sender) {
+  }
+
+ private:
+  boost::scoped_ptr<SharedPointerWrapper> shared_sender_;
+};
+
+}  // namespace _detail
+
+#define C_ARG(type, data) new _detail::ClosureArgument<type>(data)
+
+_detail::Closure* NewClosure(
+    QObject* sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot);
+
+template <typename T>
+_detail::Closure* NewClosure(
+    QObject* sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot,
+    const T& val0) {
+  return new _detail::Closure(
+      sender, signal, receiver, slot,
+      C_ARG(T, val0));
+}
+
+template <typename T0, typename T1>
+_detail::Closure* NewClosure(
+    QObject* sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot,
+    const T0& val0,
+    const T1& val1) {
+  return new _detail::Closure(
+      sender, signal, receiver, slot,
+      C_ARG(T0, val0), C_ARG(T1, val1));
+}
+
+template <typename T0, typename T1, typename T2>
+_detail::Closure* NewClosure(
+    QObject* sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot,
+    const T0& val0,
+    const T1& val1,
+    const T2& val2) {
+  return new _detail::Closure(
+      sender, signal, receiver, slot,
+      C_ARG(T0, val0), C_ARG(T1, val1), C_ARG(T2, val2));
+}
+
+template <typename T0, typename T1, typename T2, typename T3>
+_detail::Closure* NewClosure(
+    QObject* sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot,
+    const T0& val0,
+    const T1& val1,
+    const T2& val2,
+    const T3& val3) {
+  return new _detail::Closure(
+      sender, signal, receiver, slot,
+      C_ARG(T0, val0), C_ARG(T1, val1), C_ARG(T2, val2), C_ARG(T3, val3));
+}
+
+template <typename TP>
+_detail::Closure* NewClosure(
+    QSharedPointer<TP> sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot) {
+  return new _detail::SharedClosure(
+      new _detail::SharedPointer<TP>(sender), signal, receiver, slot);
+}
+
+template <typename TP, typename T0>
+_detail::Closure* NewClosure(
+    QSharedPointer<TP> sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot,
+    const T0& val0) {
+  return new _detail::SharedClosure(
+        new _detail::SharedPointer<TP>(sender), signal, receiver, slot,
+        C_ARG(T0, val0));
+}
+
+template <typename TP, typename T0, typename T1>
+_detail::Closure* NewClosure(
+    QSharedPointer<TP> sender,
+    const char* signal,
+    QObject* receiver,
+    const char* slot,
+    const T0& val0,
+    const T1& val1) {
+  return new _detail::SharedClosure(
+        new _detail::SharedPointer<TP>(sender), signal, receiver, slot,
+        C_ARG(T0, val0), C_ARG(T1, val1));
+}
+
+#endif  // CLOSURE_H
diff --git a/src/libtomahawk/utils/tomahawkutils.cpp b/src/libtomahawk/utils/tomahawkutils.cpp
index bc4397a58..0ab5611ad 100644
--- a/src/libtomahawk/utils/tomahawkutils.cpp
+++ b/src/libtomahawk/utils/tomahawkutils.cpp
@@ -316,6 +316,7 @@ QList< QNetworkProxy >
 NetworkProxyFactory::queryProxy( const QNetworkProxyQuery& query )
 {
     //tDebug() << Q_FUNC_INFO << "query hostname is " << query.peerHostName();
+
     QList< QNetworkProxy > proxies;
     QString hostname = query.peerHostName();
     s_noProxyHostsMutex.lock();
diff --git a/src/libtomahawk/utils/xspfloader.cpp b/src/libtomahawk/utils/xspfloader.cpp
index 3a38b83ba..98f7f6edf 100644
--- a/src/libtomahawk/utils/xspfloader.cpp
+++ b/src/libtomahawk/utils/xspfloader.cpp
@@ -123,7 +123,11 @@ XSPFLoader::reportError()
 {
     emit error( FetchError );
 #ifndef ENABLE_HEADLESS
-    JobStatusView::instance()->model()->addJob( new ErrorStatusMessage( errorToString( FetchError) ) );
+    const QString errorMsg = errorToString( FetchError);
+    if ( !m_errorTitle.isEmpty() )
+        JobStatusView::instance()->model()->addJob( new ErrorStatusMessage( QString( "%1: %2" ).arg( m_errorTitle ).arg( errorMsg ) ) );
+    else
+        JobStatusView::instance()->model()->addJob( new ErrorStatusMessage( errorMsg ) );
 #endif
     deleteLater();
 }
diff --git a/src/libtomahawk/utils/xspfloader.h b/src/libtomahawk/utils/xspfloader.h
index e4e912618..7369a51b8 100644
--- a/src/libtomahawk/utils/xspfloader.h
+++ b/src/libtomahawk/utils/xspfloader.h
@@ -49,6 +49,7 @@ public:
     void setOverrideTitle( const QString& newTitle );
     void setAutoResolveTracks( bool autoResolve ) { m_autoResolve = autoResolve; }
     void setAutoDelete( bool autoDelete ) { m_autoDelete = autoDelete; }
+    void setErrorTitle( const QString& error ) { m_errorTitle = error; }
 
     static QString errorToString( XSPFErrorCode error );
 
@@ -73,7 +74,7 @@ private:
     bool m_autoCreate, m_autoUpdate, m_autoResolve, m_autoDelete;
     QString m_NS,m_overrideTitle;
     QList< Tomahawk::query_ptr > m_entries;
-    QString m_title, m_info, m_creator;
+    QString m_title, m_info, m_creator, m_errorTitle;
 
     QUrl m_url;
     QByteArray m_body;
diff --git a/src/libtomahawk/viewmanager.cpp b/src/libtomahawk/viewmanager.cpp
index 2d06796d5..5104b9882 100644
--- a/src/libtomahawk/viewmanager.cpp
+++ b/src/libtomahawk/viewmanager.cpp
@@ -43,6 +43,7 @@
 
 #include "customplaylistview.h"
 #include "PlaylistLargeItemDelegate.h"
+#include "RecentlyPlayedModel.h"
 #include "dynamic/widgets/DynamicWidget.h"
 
 #include "widgets/welcomewidget.h"
@@ -75,6 +76,7 @@ ViewManager::ViewManager( QObject* parent )
     , m_welcomeWidget( new WelcomeWidget() )
     , m_whatsHotWidget( new WhatsHotWidget() )
     , m_topLovedWidget( 0 )
+    , m_recentPlaysWidget( 0 )
     , m_currentMode( PlaylistInterface::Tree )
     , m_loaded( false )
 {
@@ -114,7 +116,7 @@ ViewManager::ViewManager( QObject* parent )
 
     connect( &m_filterTimer, SIGNAL( timeout() ), SLOT( applyFilter() ) );
     connect( m_infobar, SIGNAL( filterTextChanged( QString ) ), SLOT( setFilter( QString ) ) );
-    connect( m_infobar, SIGNAL( autoUpdateChanged( int ) ), SLOT( autoUpdateChanged( int ) ) );
+    connect( m_infobar, SIGNAL( autoUpdateChanged( bool ) ), SLOT( autoUpdateChanged( bool ) ) );
 
     connect( this, SIGNAL( tomahawkLoaded() ), m_whatsHotWidget, SLOT( fetchData() ) );
     connect( this, SIGNAL( tomahawkLoaded() ), m_welcomeWidget, SLOT( loadData() ) );
@@ -131,6 +133,7 @@ ViewManager::~ViewManager()
     delete m_whatsHotWidget;
     delete m_welcomeWidget;
     delete m_topLovedWidget;
+    delete m_recentPlaysWidget;
     delete m_contextWidget;
     delete m_widget;
 }
@@ -441,7 +444,7 @@ ViewManager::showTopLovedPage()
     if ( !m_topLovedWidget )
     {
         CustomPlaylistView* view = new CustomPlaylistView( CustomPlaylistView::TopLovedTracks, source_ptr(), m_widget );
-        view->setItemDelegate( new PlaylistLargeItemDelegate( view, view->proxyModel() ) );
+        view->setItemDelegate( new PlaylistLargeItemDelegate( PlaylistLargeItemDelegate::LovedTracks, view, view->proxyModel() ) );
 
         m_topLovedWidget = view;
     }
@@ -450,6 +453,28 @@ ViewManager::showTopLovedPage()
 }
 
 
+Tomahawk::ViewPage*
+ViewManager::showRecentPlaysPage()
+{
+    if ( !m_recentPlaysWidget )
+    {
+        PlaylistView* pv = new PlaylistView( m_widget );
+        pv->setFrameShape( QFrame::NoFrame );
+        pv->setAttribute( Qt::WA_MacShowFocusRect, 0 );
+
+        RecentlyPlayedModel* raModel = new RecentlyPlayedModel( source_ptr(), pv );
+        raModel->setStyle( TrackModel::Large );
+
+        pv->setItemDelegate( new PlaylistLargeItemDelegate( PlaylistLargeItemDelegate::RecentlyPlayed, pv, pv->proxyModel() ) );
+        pv->setPlaylistModel( raModel );
+
+        m_recentPlaysWidget = pv;
+    }
+
+    return show( m_recentPlaysWidget );
+}
+
+
 void
 ViewManager::setTableMode()
 {
@@ -544,9 +569,9 @@ ViewManager::applyFilter()
 
 
 void
-ViewManager::autoUpdateChanged( int state )
+ViewManager::autoUpdateChanged( bool toggled )
 {
-    currentPage()->setAutoUpdate( state == Qt::Checked );
+    currentPage()->setAutoUpdate( toggled );
 }
 
 
diff --git a/src/libtomahawk/viewmanager.h b/src/libtomahawk/viewmanager.h
index e003d7d0e..52a8e3ee0 100644
--- a/src/libtomahawk/viewmanager.h
+++ b/src/libtomahawk/viewmanager.h
@@ -85,13 +85,14 @@ public:
 
     Tomahawk::playlistinterface_ptr currentPlaylistInterface() const;
     Tomahawk::ViewPage* currentPage() const;
-    Tomahawk::ViewPage* pageForInterface( Tomahawk::playlistinterface_ptr interface ) const;
+    Tomahawk::ViewPage* pageForInterface( Tomahawk::playlistinterface_ptr plInterface ) const;
 
     Tomahawk::ViewPage* show( Tomahawk::ViewPage* page );
 
     Tomahawk::ViewPage* welcomeWidget() const { return m_welcomeWidget; }
     Tomahawk::ViewPage* whatsHotWidget() const { return m_whatsHotWidget; }
     Tomahawk::ViewPage* topLovedWidget() const { return m_topLovedWidget; }
+    Tomahawk::ViewPage* recentPlaysWidget() const { return m_recentPlaysWidget; }
     ArtistView* superCollectionView() const { return m_superCollectionView; }
 
     /// Get the view page for the given item. Not pretty...
@@ -140,6 +141,7 @@ public slots:
     Tomahawk::ViewPage* showWelcomePage();
     Tomahawk::ViewPage* showWhatsHotPage();
     Tomahawk::ViewPage* showTopLovedPage();
+    Tomahawk::ViewPage* showRecentPlaysPage();
     void showCurrentTrack();
 
     // Returns the shown viewpage
@@ -175,7 +177,7 @@ private slots:
     void setFilter( const QString& filter );
     void applyFilter();
 
-    void autoUpdateChanged( int );
+    void autoUpdateChanged( bool );
 
     void onWidgetDestroyed( QWidget* widget );
 
@@ -186,9 +188,9 @@ private:
     void saveCurrentPlaylistSettings();
     void loadCurrentPlaylistSettings();
 
-    Tomahawk::playlist_ptr playlistForInterface( Tomahawk::playlistinterface_ptr interface ) const;
-    Tomahawk::dynplaylist_ptr dynamicPlaylistForInterface( Tomahawk::playlistinterface_ptr interface ) const;
-    Tomahawk::collection_ptr collectionForInterface( Tomahawk::playlistinterface_ptr interface ) const;
+    Tomahawk::playlist_ptr playlistForInterface( Tomahawk::playlistinterface_ptr plInterface ) const;
+    Tomahawk::dynplaylist_ptr dynamicPlaylistForInterface( Tomahawk::playlistinterface_ptr plInterface ) const;
+    Tomahawk::collection_ptr collectionForInterface( Tomahawk::playlistinterface_ptr plInterface ) const;
 
     QWidget* m_widget;
     InfoBar* m_infobar;
@@ -204,6 +206,7 @@ private:
     WelcomeWidget* m_welcomeWidget;
     WhatsHotWidget* m_whatsHotWidget;
     Tomahawk::ViewPage* m_topLovedWidget;
+    Tomahawk::ViewPage* m_recentPlaysWidget;
 
     QList< Tomahawk::collection_ptr > m_superCollections;
 
diff --git a/src/libtomahawk/widgets/FadingPixmap.cpp b/src/libtomahawk/widgets/FadingPixmap.cpp
new file mode 100644
index 000000000..29b7304c4
--- /dev/null
+++ b/src/libtomahawk/widgets/FadingPixmap.cpp
@@ -0,0 +1,114 @@
+/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
+ *
+ *   Copyright 2011 - 2012, Christian Muehlhaeuser <muesli@tomahawk-player.org>
+ *
+ *   Tomahawk is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   Tomahawk is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "FadingPixmap.h"
+
+#include <QPainter>
+
+#define ANIMATION_TIME 1000
+
+FadingPixmap::FadingPixmap( QWidget* parent )
+    : QLabel( parent )
+    , m_fadePct( 100 )
+{
+//    setCursor( Qt::PointingHandCursor );
+
+    m_timeLine = new QTimeLine( ANIMATION_TIME, this );
+    m_timeLine->setUpdateInterval( 20 );
+    m_timeLine->setEasingCurve( QEasingCurve::Linear );
+
+    connect( m_timeLine, SIGNAL( frameChanged( int ) ), SLOT( onAnimationStep( int ) ) );
+    connect( m_timeLine, SIGNAL( finished() ), SLOT( onAnimationFinished() ) );
+}
+
+
+FadingPixmap::~FadingPixmap()
+{
+}
+
+
+void
+FadingPixmap::onAnimationStep( int frame )
+{
+    m_fadePct = (float)frame / 10.0;
+    repaint();
+}
+
+
+void
+FadingPixmap::onAnimationFinished()
+{
+    m_oldPixmap = QPixmap();
+    repaint();
+    
+    if ( m_pixmapQueue.count() )
+    {
+        setPixmap( m_pixmapQueue.takeFirst() );
+    }
+}
+
+
+void
+FadingPixmap::setPixmap( const QPixmap& pixmap, bool clearQueue )
+{
+    if ( m_timeLine->state() == QTimeLine::Running )
+    {
+        if ( clearQueue )
+            m_pixmapQueue.clear();
+
+        m_pixmapQueue << pixmap;
+        return;
+    }
+
+    m_oldPixmap = m_pixmap;
+    m_pixmap = pixmap;
+
+    m_timeLine->setFrameRange( 0, 1000 );
+    m_timeLine->setDirection( QTimeLine::Forward );
+    m_timeLine->start();
+}
+
+
+void
+FadingPixmap::mouseReleaseEvent( QMouseEvent* event )
+{
+    QFrame::mouseReleaseEvent( event );
+
+    emit clicked();
+}
+
+
+void
+FadingPixmap::paintEvent( QPaintEvent* event )
+{
+    Q_UNUSED( event );
+    
+    QPainter p( this );
+    QRect r = contentsRect();
+
+    p.save();
+    p.setRenderHint( QPainter::Antialiasing );
+
+    p.setOpacity( float( 100.0 - m_fadePct ) / 100.0 );
+    p.drawPixmap( r, m_oldPixmap );
+
+    p.setOpacity( float( m_fadePct ) / 100.0 );
+    p.drawPixmap( r, m_pixmap );
+
+    p.restore();
+}
diff --git a/src/libtomahawk/widgets/FadingPixmap.h b/src/libtomahawk/widgets/FadingPixmap.h
new file mode 100644
index 000000000..e6bd7720f
--- /dev/null
+++ b/src/libtomahawk/widgets/FadingPixmap.h
@@ -0,0 +1,64 @@
+/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
+ *
+ *   Copyright 2011 - 2012, Christian Muehlhaeuser <muesli@tomahawk-player.org>
+ *
+ *   Tomahawk is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation, either version 3 of the License, or
+ *   (at your option) any later version.
+ *
+ *   Tomahawk is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef FADINGPIXMAP_H
+#define FADINGPIXMAP_H
+
+#include <QLabel>
+#include <QPaintEvent>
+#include <QTimeLine>
+
+#include "dllmacro.h"
+
+/**
+ * \class FadingPixmap
+ * \brief Fades to the new image when calling setPixmap.
+ */
+class DLLEXPORT FadingPixmap : public QLabel
+{
+Q_OBJECT
+
+public:
+    FadingPixmap( QWidget* parent = 0 );
+    virtual ~FadingPixmap();
+
+public slots:
+    virtual void setPixmap( const QPixmap& pixmap, bool clearQueue = true );
+
+signals:
+    void clicked();
+
+protected:
+    virtual void paintEvent( QPaintEvent* );
+    void mouseReleaseEvent( QMouseEvent* event );
+
+private slots:
+    void onAnimationStep( int frame );
+    void onAnimationFinished();
+
+private:
+    QPixmap m_pixmap;
+    QPixmap m_oldPixmap;
+    
+    QList<QPixmap> m_pixmapQueue;
+    
+    QTimeLine* m_timeLine;
+    int m_fadePct;
+};
+
+#endif
diff --git a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp
index 72a347552..c089da08a 100644
--- a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp
+++ b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.cpp
@@ -2,6 +2,7 @@
  *
  *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
  *   Copyright 2010-2012, Jeff Mitchell <jeff@tomahawk-player.org>
+ *   Copyright 2010-2011, Leo Franchi <lfranchi@kde.org>
  *
  *   Tomahawk is free software: you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -232,7 +233,7 @@ AlbumInfoWidget::loadAlbums( bool autoRefetch )
         artistInfo["artist"] = m_album->artist()->name();
 
         Tomahawk::InfoSystem::InfoRequestData requestData;
-        requestData.customData["refetch"] = QVariant( autoRefetch );
+        requestData.customData["refetch"] = autoRefetch;
         requestData.caller = m_infoId;
         requestData.input = QVariant::fromValue< Tomahawk::InfoSystem::InfoStringHash >( artistInfo );
         requestData.type = Tomahawk::InfoSystem::InfoArtistReleases;
@@ -309,7 +310,7 @@ AlbumInfoWidget::infoSystemInfo( Tomahawk::InfoSystem::InfoRequestData requestDa
                 tDebug() << "Adding" << al.count() << "albums";
                 gotAlbums( al );
             }
-            else if ( requestData.customData[ "refetch" ].toInt() > 0 )
+            else if ( requestData.customData[ "refetch" ].toBool() )
             {
                 tDebug() << "Auto refetching";
                 m_buttonAlbums->setChecked( false );
diff --git a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h
index d8d983b31..c59b2b2c3 100644
--- a/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h
+++ b/src/libtomahawk/widgets/infowidgets/AlbumInfoWidget.h
@@ -2,6 +2,7 @@
  *
  *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
  *   Copyright 2010-2011, Jeff Mitchell <jeff@tomahawk-player.org>
+ *   Copyright 2010-2011, Leo Franchi <lfranchi@kde.org>
  *
  *   Tomahawk is free software: you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
diff --git a/src/libtomahawk/widgets/querylabel.cpp b/src/libtomahawk/widgets/querylabel.cpp
index 131204e95..5271d0b89 100644
--- a/src/libtomahawk/widgets/querylabel.cpp
+++ b/src/libtomahawk/widgets/querylabel.cpp
@@ -80,7 +80,7 @@ void
 QueryLabel::init()
 {
     m_contextMenu = new ContextMenu( this );
-    m_contextMenu->setSupportedActions( ContextMenu::ActionQueue | ContextMenu::ActionCopyLink );
+    m_contextMenu->setSupportedActions( ContextMenu::ActionQueue | ContextMenu::ActionCopyLink | ContextMenu::ActionStopAfter | ContextMenu::ActionLove );
 
     m_hoverType = None;
     setContentsMargins( 0, 0, 0, 0 );
diff --git a/src/main.cpp b/src/main.cpp
index 204126210..6ab65e66e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -22,6 +22,7 @@
 #include "thirdparty/kdsingleapplicationguard/kdsingleapplicationguard.h"
 #include "ubuntuunityhack.h"
 #include "tomahawksettings.h"
+#include "config.h"
 
 #include <QTranslator>
 
@@ -123,8 +124,11 @@ main( int argc, char *argv[] )
     new TomahawkSettingsGui( &a );
 #endif
 
-#ifndef ENABLE_HEADLESS
-   new BreakPad( QDir::tempPath(), TomahawkSettings::instance()->crashReporterEnabled() );
+
+#ifndef ENABLE_HEADLESSs
+#ifdef WITH_BREAKPAD
+    new BreakPad( QDir::tempPath(), TomahawkSettings::instance()->crashReporterEnabled() );
+#endif
 #endif
 
     KDSingleApplicationGuard guard( &a, KDSingleApplicationGuard::AutoKillOtherInstances );
diff --git a/src/sourcetree/items/categoryitems.cpp b/src/sourcetree/items/categoryitems.cpp
index 193299bff..1e8cc8764 100644
--- a/src/sourcetree/items/categoryitems.cpp
+++ b/src/sourcetree/items/categoryitems.cpp
@@ -296,6 +296,7 @@ CategoryAddItem::playlistToRenameLoaded()
         QTimer::singleShot( 400, APP->mainWindow()->sourceTreeView(), SLOT( renamePlaylist() ) );
 
     disconnect( pl, SIGNAL( dynamicRevisionLoaded( Tomahawk::DynamicPlaylistRevision ) ), this, SLOT( playlistToRenameLoaded() ) );
+    disconnect( pl, SIGNAL( revisionLoaded( Tomahawk::PlaylistRevision ) ), this, SLOT( playlistToRenameLoaded() ) );
 }
 
 
@@ -307,8 +308,7 @@ CategoryAddItem::parsedDroppedTracks( const QList< query_ptr >& tracks )
         playlist_ptr newpl = Playlist::create( SourceList::instance()->getLocal(), uuid(), "New Playlist", "", SourceList::instance()->getLocal()->friendlyName(), false, tracks );
         ViewManager::instance()->show( newpl );
 
-        // Give a shot to try to rename it. The playlist has to be created first. ugly.
-        QTimer::singleShot( 300, APP->mainWindow()->sourceTreeView(), SLOT( renamePlaylist() ) );
+        connect( newpl.data(), SIGNAL( revisionLoaded( Tomahawk::PlaylistRevision ) ), this, SLOT( playlistToRenameLoaded() ) );
     } else if( m_categoryType == SourcesModel::StationsCategory ) {
         // seed the playlist with these song or artist filters
         QString name;
diff --git a/src/sourcetree/items/playlistitems.cpp b/src/sourcetree/items/playlistitems.cpp
index 1df14c381..3f0cb4b2e 100644
--- a/src/sourcetree/items/playlistitems.cpp
+++ b/src/sourcetree/items/playlistitems.cpp
@@ -24,6 +24,7 @@
 #include "query.h"
 #include "viewmanager.h"
 #include "playlist/dynamic/GeneratorInterface.h"
+#include "playlist/playlistview.h"
 #include "categoryitems.h"
 #include "sourceitem.h"
 #include "utils/tomahawkutils.h"
@@ -136,6 +137,17 @@ PlaylistItem::activate()
 }
 
 
+void
+PlaylistItem::doubleClicked()
+{
+    ViewPage* p = ViewManager::instance()->currentPage();
+    if ( PlaylistView* view = dynamic_cast< PlaylistView* >( p ) )
+    {
+        view->startPlayingFromStart();
+    }
+}
+
+
 void
 PlaylistItem::setLoaded( bool loaded )
 {
diff --git a/src/sourcetree/items/playlistitems.h b/src/sourcetree/items/playlistitems.h
index dad5da151..860eeffe7 100644
--- a/src/sourcetree/items/playlistitems.h
+++ b/src/sourcetree/items/playlistitems.h
@@ -31,7 +31,6 @@ public:
     virtual QString text() const;
     virtual Tomahawk::playlist_ptr playlist() const;
     virtual Qt::ItemFlags flags() const;
-    virtual void activate();
     virtual bool willAcceptDrag( const QMimeData* data ) const;
     virtual DropTypes supportedDropTypes( const QMimeData* data ) const;
     virtual bool dropMimeData( const QMimeData* data, Qt::DropAction action );
@@ -43,6 +42,10 @@ public:
 
     virtual SourceTreeItem* activateCurrent();
 
+public slots:
+    virtual void activate();
+    virtual void doubleClicked();
+
 protected:
     void setLoaded( bool loaded );
 
diff --git a/src/sourcetree/items/sourceitem.cpp b/src/sourcetree/items/sourceitem.cpp
index 42327f565..c1767734f 100644
--- a/src/sourcetree/items/sourceitem.cpp
+++ b/src/sourcetree/items/sourceitem.cpp
@@ -504,7 +504,7 @@ SourceItem::lovedTracksClicked()
     if ( !m_lovedTracksPage )
     {
         CustomPlaylistView* view = new CustomPlaylistView( m_source.isNull() ? CustomPlaylistView::TopLovedTracks : CustomPlaylistView::SourceLovedTracks, m_source, ViewManager::instance()->widget() );
-        view->setItemDelegate( new PlaylistLargeItemDelegate( view, view->proxyModel() ) );
+        view->setItemDelegate( new PlaylistLargeItemDelegate( PlaylistLargeItemDelegate::LovedTracks, view, view->proxyModel() ) );
 
         m_lovedTracksPage = view;
     }
@@ -533,7 +533,7 @@ SourceItem::latestAdditionsClicked()
         RecentlyAddedModel* raModel = new RecentlyAddedModel( m_source, cv );
         raModel->setStyle( TrackModel::Large );
 
-        cv->setItemDelegate( new PlaylistLargeItemDelegate( cv, cv->proxyModel() ) );
+        cv->setItemDelegate( new PlaylistLargeItemDelegate( PlaylistLargeItemDelegate::LatestAdditions, cv, cv->proxyModel() ) );
         cv->setTrackModel( raModel );
         cv->sortByColumn( TrackModel::Age, Qt::DescendingOrder );
 
@@ -564,7 +564,7 @@ SourceItem::recentPlaysClicked()
         RecentlyPlayedModel* raModel = new RecentlyPlayedModel( m_source, pv );
         raModel->setStyle( TrackModel::Large );
 
-        pv->setItemDelegate( new PlaylistLargeItemDelegate( pv, pv->proxyModel() ) );
+        pv->setItemDelegate( new PlaylistLargeItemDelegate( PlaylistLargeItemDelegate::RecentlyPlayed, pv, pv->proxyModel() ) );
         pv->setPlaylistModel( raModel );
 
         m_recentPlaysPage = pv;
diff --git a/src/sourcetree/items/sourcetreeitem.h b/src/sourcetree/items/sourcetreeitem.h
index adde55609..9fb0299cf 100644
--- a/src/sourcetree/items/sourcetreeitem.h
+++ b/src/sourcetree/items/sourcetreeitem.h
@@ -78,6 +78,7 @@ public:
 
 public slots:
     virtual void activate() {}
+    virtual void doubleClicked() {}
 
 signals:
     void updated();
diff --git a/src/sourcetree/sourcedelegate.cpp b/src/sourcetree/sourcedelegate.cpp
index 799a51ee2..704bf7884 100644
--- a/src/sourcetree/sourcedelegate.cpp
+++ b/src/sourcetree/sourcedelegate.cpp
@@ -44,6 +44,7 @@
 SourceDelegate::SourceDelegate( QAbstractItemView* parent )
     : QStyledItemDelegate( parent )
     , m_parent( parent )
+    , m_lastClicked( -1 )
 {
     m_dropTypeMap.insert( 0, SourceTreeItem::DropTypeThisTrack );
     m_dropTypeMap.insert( 1, SourceTreeItem::DropTypeThisAlbum );
@@ -632,7 +633,27 @@ SourceDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, const QSt
     // a mouse press event. Since we want to swallow click events when they are on headphones other action items, here wemake sure we only
     // emit if we really want to
     if ( event->type() == QEvent::MouseButtonRelease )
-        emit clicked( index );
+    {
+        if ( m_lastClicked == -1 )
+        {
+            m_lastClicked = QDateTime::currentMSecsSinceEpoch();
+            emit clicked( index );
+        }
+        else
+        {
+            qint64 elapsed = QDateTime::currentMSecsSinceEpoch() - m_lastClicked;
+            if ( elapsed < QApplication::doubleClickInterval() )
+            {
+                m_lastClicked = -1;
+                emit doubleClicked( index );
+            } else
+            {
+                m_lastClicked = QDateTime::currentMSecsSinceEpoch();
+                emit clicked( index );
+            }
+        }
+
+    }
 
     return QStyledItemDelegate::editorEvent ( event, model, option, index );
 }
diff --git a/src/sourcetree/sourcedelegate.h b/src/sourcetree/sourcedelegate.h
index 7a432292a..fc65e85e5 100644
--- a/src/sourcetree/sourcedelegate.h
+++ b/src/sourcetree/sourcedelegate.h
@@ -44,6 +44,7 @@ public:
 
 signals:
     void clicked( const QModelIndex& idx );
+    void doubleClicked( const QModelIndex& idx );
     void latchOn( const Tomahawk::source_ptr& idx );
     void latchOff( const Tomahawk::source_ptr& idx );
     void toggleRealtimeLatch( const Tomahawk::source_ptr& idx, bool realtime );
@@ -73,6 +74,7 @@ private:
     mutable SourceTreeItem::DropType m_hoveredDropType; // Hack to keep easily track of the current highlighted DropType in paint()
     QMap< QModelIndex, AnimationHelper* > m_expandedMap;
     QPixmap m_headphonesOn, m_headphonesOff, m_realtimeLocked, m_realtimeUnlocked, m_nowPlayingSpeaker, m_nowPlayingSpeakerDark;
+    qint64 m_lastClicked;
 
     QMap< int, SourceTreeItem::DropType > m_dropTypeMap;
     QMap< int, QString > m_dropTypeTextMap;
diff --git a/src/sourcetree/sourcesmodel.cpp b/src/sourcetree/sourcesmodel.cpp
index b8f55156c..7ee3b8b0c 100644
--- a/src/sourcetree/sourcesmodel.cpp
+++ b/src/sourcetree/sourcesmodel.cpp
@@ -263,13 +263,18 @@ SourcesModel::flags( const QModelIndex& index ) const
 void
 SourcesModel::appendGroups()
 {
-    beginInsertRows( QModelIndex(), rowCount(), rowCount() + 2 );
+    beginInsertRows( QModelIndex(), rowCount(), rowCount() + 3 );
 
     GroupItem* browse = new GroupItem( this, m_rootItem, tr( "Browse" ), 0 );
     new HistoryItem( this, m_rootItem, tr( "Search History" ), 1 );
 //    new SourceTreeItem( this, m_rootItem, SourcesModel::Divider, 2 );
     m_myMusicGroup = new GroupItem( this, m_rootItem, tr( "My Music" ), 3 );
 
+    GenericPageItem* dashboard = new GenericPageItem( this, browse, tr( "Dashboard" ), QIcon( RESPATH "images/dashboard.png" ),
+                                                      boost::bind( &ViewManager::showWelcomePage, ViewManager::instance() ),
+                                                      boost::bind( &ViewManager::welcomeWidget, ViewManager::instance() ) );
+    dashboard->setSortValue( 0 );
+
     // super collection
     GenericPageItem* sc = new GenericPageItem( this, browse, tr( "SuperCollection" ), QIcon( RESPATH "images/supercollection.png" ),
                                                   boost::bind( &ViewManager::showSuperCollection, ViewManager::instance() ),
@@ -282,15 +287,15 @@ SourcesModel::appendGroups()
                                                   boost::bind( &ViewManager::topLovedWidget, ViewManager::instance() ) );
     loved->setSortValue( 2 );
 
-    GenericPageItem* recent = new GenericPageItem( this, browse, tr( "Dashboard" ), QIcon( RESPATH "images/dashboard.png" ),
-                                                   boost::bind( &ViewManager::showWelcomePage, ViewManager::instance() ),
-                                                   boost::bind( &ViewManager::welcomeWidget, ViewManager::instance() ) );
-    recent->setSortValue( 0 );
+    GenericPageItem* recent = new GenericPageItem( this, browse, tr( "Recently Played" ), QIcon( RESPATH "images/recently-played.png" ),
+                                                   boost::bind( &ViewManager::showRecentPlaysPage, ViewManager::instance() ),
+                                                   boost::bind( &ViewManager::recentPlaysWidget, ViewManager::instance() ) );
+    recent->setSortValue( 3 );
 
     GenericPageItem* hot = new GenericPageItem( this, browse, tr( "Charts" ), QIcon( RESPATH "images/charts.png" ),
                                                 boost::bind( &ViewManager::showWhatsHotPage, ViewManager::instance() ),
                                                 boost::bind( &ViewManager::whatsHotWidget, ViewManager::instance() ) );
-    hot->setSortValue( 3 );
+    hot->setSortValue( 4 );
 
     m_collectionsGroup = new GroupItem( this, m_rootItem, tr( "Friends" ), 4 );
 
diff --git a/src/sourcetree/sourcetreeview.cpp b/src/sourcetree/sourcetreeview.cpp
index 6e76edb05..606177a57 100644
--- a/src/sourcetree/sourcetreeview.cpp
+++ b/src/sourcetree/sourcetreeview.cpp
@@ -79,6 +79,7 @@ SourceTreeView::SourceTreeView( QWidget* parent )
     sortByColumn( 0, Qt::AscendingOrder );
     setVerticalScrollMode( QTreeView::ScrollPerPixel );
     setMouseTracking( true );
+    setEditTriggers( NoEditTriggers );
 
     // TODO animation conflicts with the expanding-playlists-when-collection-is-null
     // so investigate
@@ -89,6 +90,7 @@ SourceTreeView::SourceTreeView( QWidget* parent )
     connect( m_delegate, SIGNAL( latchOff( Tomahawk::source_ptr ) ), SLOT( latchOff( Tomahawk::source_ptr ) ) );
     connect( m_delegate, SIGNAL( toggleRealtimeLatch( Tomahawk::source_ptr, bool ) ), m_latchManager, SLOT( latchModeChangeRequest( Tomahawk::source_ptr,bool ) ) );
     connect( m_delegate, SIGNAL( clicked( QModelIndex ) ), SLOT( onItemActivated( QModelIndex ) ) );
+    connect( m_delegate, SIGNAL( doubleClicked( QModelIndex ) ), SLOT( onItemDoubleClicked( QModelIndex ) ) );
 
     setItemDelegate( m_delegate );
 
@@ -97,7 +99,7 @@ SourceTreeView::SourceTreeView( QWidget* parent )
 
     m_model = new SourcesModel( this );
     m_proxyModel = new SourcesProxyModel( m_model, this );
-    connect( m_proxyModel, SIGNAL( selectRequest( QPersistentModelIndex ) ), SLOT( selectRequest( QPersistentModelIndex ) ) );
+    connect( m_proxyModel, SIGNAL( selectRequest( QPersistentModelIndex ) ), SLOT( selectRequest( QPersistentModelIndex ) ), Qt::QueuedConnection );
     connect( m_proxyModel, SIGNAL( expandRequest( QPersistentModelIndex ) ), SLOT( expandRequest( QPersistentModelIndex ) ) );
     connect( m_proxyModel, SIGNAL( toggleExpandRequest( QPersistentModelIndex ) ), SLOT( toggleExpandRequest( QPersistentModelIndex ) ) );
 
@@ -231,6 +233,17 @@ SourceTreeView::onItemActivated( const QModelIndex& index )
 }
 
 
+void
+SourceTreeView::onItemDoubleClicked( const QModelIndex& idx )
+{
+    if ( !selectionModel()->selectedIndexes().contains( idx ) )
+        onItemActivated( idx );
+
+    SourceTreeItem* item = itemFromIndex< SourceTreeItem >( idx );
+    item->doubleClicked();
+}
+
+
 void
 SourceTreeView::onItemExpanded( const QModelIndex& idx )
 {
diff --git a/src/sourcetree/sourcetreeview.h b/src/sourcetree/sourcetreeview.h
index 2517c4581..39a2a8dbd 100644
--- a/src/sourcetree/sourcetreeview.h
+++ b/src/sourcetree/sourcetreeview.h
@@ -67,6 +67,7 @@ private slots:
     void selectRequest( const QPersistentModelIndex& idx );
     void expandRequest( const QPersistentModelIndex& idx );
     void toggleExpandRequest( const QPersistentModelIndex& idx );
+    void onItemDoubleClicked( const QModelIndex& idx );
 
     void loadPlaylist();
     void deletePlaylist( const QModelIndex& = QModelIndex() );
diff --git a/src/stackedsettingsdialog.ui b/src/stackedsettingsdialog.ui
index 6d08a1a2b..63e3674a1 100644
--- a/src/stackedsettingsdialog.ui
+++ b/src/stackedsettingsdialog.ui
@@ -393,7 +393,7 @@
                <enum>Qt::RightToLeft</enum>
               </property>
               <property name="text">
-               <string>Playdar HTTP API</string>
+               <string>Allow web browsers to interact with Tomahawk</string>
               </property>
               <property name="checked">
                <bool>true</bool>
diff --git a/src/tomahawkapp.cpp b/src/tomahawkapp.cpp
index a9ad1e33e..6cca3e436 100644
--- a/src/tomahawkapp.cpp
+++ b/src/tomahawkapp.cpp
@@ -270,6 +270,7 @@ TomahawkApp::init()
     {
         initHTTP();
     }
+    connect( TomahawkSettings::instance(), SIGNAL( changed() ), SLOT( initHTTP() ) );
 
 #ifndef ENABLE_HEADLESS
     if ( !s->hasScannerPaths() )
@@ -314,6 +315,11 @@ TomahawkApp::~TomahawkApp()
 {
     tLog() << "Shutting down Tomahawk...";
 
+    if ( !m_session.isNull() )
+        delete m_session.data();
+    if ( !m_connector.isNull() )
+        delete m_connector.data();
+
     Pipeline::instance()->stop();
 
     if ( !m_servent.isNull() )
@@ -475,15 +481,43 @@ TomahawkApp::initDatabase()
 void
 TomahawkApp::initHTTP()
 {
-    m_session.setPort( 60210 ); //TODO config
-    m_session.setListenInterface( QHostAddress::LocalHost );
-    m_session.setConnector( &m_connector );
+    if ( !TomahawkSettings::instance()->httpEnabled() )
+    {
+        tLog() << "Stopping HTTPd, not enabled";
+        if ( !m_session.isNull() )
+            delete m_session.data();
+        if ( !m_connector.isNull() )
+            delete m_connector.data();
+        return;
+    }
 
-    Api_v1* api = new Api_v1( &m_session );
-    m_session.setStaticContentService( api );
+    if ( m_session )
+    {
+        tLog() << "HTTPd session already exists, returning";
+        return;
+    }
 
-    tLog() << "Starting HTTPd on" << m_session.listenInterface().toString() << m_session.port();
-    m_session.start();
+    m_session = QWeakPointer< QxtHttpSessionManager >( new QxtHttpSessionManager() );
+    m_connector = QWeakPointer< QxtHttpServerConnector >( new QxtHttpServerConnector );
+    if ( m_session.isNull() || m_connector.isNull() )
+    {
+        if ( !m_session.isNull() )
+            delete m_session.data();
+        if ( !m_connector.isNull() )
+            delete m_connector.data();
+        tLog() << "Failed to start HTTPd, could not create object";
+        return;
+    }
+
+    m_session.data()->setPort( 60210 ); //TODO config
+    m_session.data()->setListenInterface( QHostAddress::LocalHost );
+    m_session.data()->setConnector( m_connector.data() );
+
+    Api_v1* api = new Api_v1( m_session.data() );
+    m_session.data()->setStaticContentService( api );
+
+    tLog() << "Starting HTTPd on" << m_session.data()->listenInterface().toString() << m_session.data()->port();
+    m_session.data()->start();
 }
 
 
diff --git a/src/tomahawkapp.h b/src/tomahawkapp.h
index 1764cb7c7..0f6ac3f57 100644
--- a/src/tomahawkapp.h
+++ b/src/tomahawkapp.h
@@ -108,6 +108,7 @@ public slots:
 private slots:
     void initServent();
     void initSIP();
+    void initHTTP();
 
     void spotifyApiCheckFinished();
 
@@ -121,8 +122,6 @@ private:
     void initLocalCollection();
     void initPipeline();
 
-    void initHTTP();
-
     QWeakPointer<Database> m_database;
     QWeakPointer<ScanManager> m_scanManager;
     QWeakPointer<AudioEngine> m_audioEngine;
@@ -143,8 +142,8 @@ private:
 
     bool m_headless, m_loaded;
 
-    QxtHttpServerConnector m_connector;
-    QxtHttpSessionManager m_session;
+    QWeakPointer< QxtHttpServerConnector > m_connector;
+    QWeakPointer< QxtHttpSessionManager > m_session;
 };
 
 Q_DECLARE_METATYPE( QPersistentModelIndex )
diff --git a/src/utils/guihelpers.cpp b/src/utils/guihelpers.cpp
index e7345e4f2..fd1bfe8a1 100644
--- a/src/utils/guihelpers.cpp
+++ b/src/utils/guihelpers.cpp
@@ -33,7 +33,6 @@ handleAccountAdded( Tomahawk::Accounts::Account* account, bool added )
     if ( added )
     {
         account->setEnabled( true );
-        account->setAutoConnect( true );
         account->saveConfig();
 
         TomahawkSettings::instance()->addAccount( account->accountId() );
diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
index c1ddb6515..9612d4e16 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -1,6 +1,8 @@
 ADD_SUBDIRECTORY( qxt )
 ADD_SUBDIRECTORY( liblastfm2 )
-ADD_SUBDIRECTORY( breakpad )
+IF( WITH_BREAKPAD )
+    ADD_SUBDIRECTORY( breakpad )
+ENDIF()
 IF( APPLE )
     ADD_SUBDIRECTORY( SPMediaKeyTap )
 ENDIF()
diff --git a/thirdparty/qxt/qxtweb-standalone/qxtweb/qxthttpsessionmanager.cpp b/thirdparty/qxt/qxtweb-standalone/qxtweb/qxthttpsessionmanager.cpp
index c444018e3..e02ba562a 100644
--- a/thirdparty/qxt/qxtweb-standalone/qxtweb/qxthttpsessionmanager.cpp
+++ b/thirdparty/qxt/qxtweb-standalone/qxtweb/qxthttpsessionmanager.cpp
@@ -575,9 +575,14 @@ void QxtHttpSessionManager::processEvents()
  */
 void QxtHttpSessionManager::chunkReadyRead(int requestID)
 {
+    if (!connector()) return;
+
     const QSharedPointer<QIODevice>& dataSource = connector()->getRequestDataSource( requestID );
     if (!dataSource->bytesAvailable()) return;
+
     QIODevice* device = connector()->getRequestConnection(requestID);
+    if (!device) return;
+
     if (!device->bytesToWrite() || qxt_d().connectionState[device].readyRead == false)
     {
         qxt_d().connectionState[device].readyRead = true;
@@ -590,6 +595,9 @@ void QxtHttpSessionManager::chunkReadyRead(int requestID)
  */
 void QxtHttpSessionManager::sendNextChunk(int requestID)
 {
+    if ( !connector() )
+        return;
+
     const QSharedPointer<QIODevice>& dataSource = connector()->getRequestDataSource( requestID );
     QIODevice* device = connector()->getRequestConnection(requestID);
     QxtHttpSessionManagerPrivate::ConnectionState& state = qxt_d().connectionState[device];