diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d104d3fca..d486966e0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -50,12 +50,6 @@ SET( tomahawkSourcesGui ${tomahawkSourcesGui}
      sourcetree/sourcetreeitemwidget.cpp
      sourcetree/sourcetreeview.cpp
 
-     topbar/topbar.cpp
-     topbar/clearbutton.cpp  
-     topbar/searchlineedit.cpp  
-     topbar/lineedit.cpp
-     topbar/searchbutton.cpp
-
      transferview.cpp
      tomahawktrayicon.cpp
      audiocontrols.cpp
@@ -86,13 +80,6 @@ SET( tomahawkHeadersGui ${tomahawkHeadersGui}
      sourcetree/sourcetreeitemwidget.h
      sourcetree/sourcetreeview.h
 
-     topbar/topbar.h
-     topbar/clearbutton.h 
-     topbar/searchlineedit.h 
-     topbar/lineedit.h
-     topbar/lineedit_p.h
-     topbar/searchbutton.h
-
      transferview.h
      tomahawktrayicon.h
      audiocontrols.h
@@ -107,7 +94,6 @@ SET( tomahawkUI ${tomahawkUI}
 
      audiocontrols.ui
      sourcetree/sourcetreeitemwidget.ui
-     topbar/topbar.ui
 )
 
 INCLUDE_DIRECTORIES(
diff --git a/src/libtomahawk/CMakeLists.txt b/src/libtomahawk/CMakeLists.txt
index b2328485a..d33b1dde0 100644
--- a/src/libtomahawk/CMakeLists.txt
+++ b/src/libtomahawk/CMakeLists.txt
@@ -81,6 +81,11 @@ set( libSources
     playlist/albumproxymodel.cpp
     playlist/albumitemdelegate.cpp
     playlist/albumview.cpp
+    playlist/topbar/topbar.cpp
+    playlist/topbar/clearbutton.cpp  
+    playlist/topbar/searchlineedit.cpp  
+    playlist/topbar/lineedit.cpp
+    playlist/topbar/searchbutton.cpp
 
     network/bufferiodevice.cpp
     network/msgprocessor.cpp
@@ -192,6 +197,12 @@ set( libHeaders
     playlist/albumproxymodel.h
     playlist/albumitemdelegate.h
     playlist/albumview.h
+    playlist/topbar/topbar.h
+    playlist/topbar/clearbutton.h
+    playlist/topbar/searchlineedit.h  
+    playlist/topbar/lineedit.h
+    playlist/topbar/lineedit_p.h
+    playlist/topbar/searchbutton.h
 
     utils/querylabel.h
     utils/elidedlabel.h
@@ -212,6 +223,7 @@ set( libUI ${libUI}
     widgets/newplaylistwidget.ui
     widgets/welcomewidget.ui
     widgets/infowidgets/sourceinfowidget.ui
+    playlist/topbar/topbar.ui
 )
 
 include_directories( . ${CMAKE_CURRENT_BINARY_DIR} .. 
diff --git a/src/topbar/clearbutton.cpp b/src/libtomahawk/playlist/topbar/clearbutton.cpp
similarity index 100%
rename from src/topbar/clearbutton.cpp
rename to src/libtomahawk/playlist/topbar/clearbutton.cpp
diff --git a/src/topbar/clearbutton.h b/src/libtomahawk/playlist/topbar/clearbutton.h
similarity index 100%
rename from src/topbar/clearbutton.h
rename to src/libtomahawk/playlist/topbar/clearbutton.h
diff --git a/src/topbar/lineedit.cpp b/src/libtomahawk/playlist/topbar/lineedit.cpp
similarity index 100%
rename from src/topbar/lineedit.cpp
rename to src/libtomahawk/playlist/topbar/lineedit.cpp
diff --git a/src/topbar/lineedit.h b/src/libtomahawk/playlist/topbar/lineedit.h
similarity index 97%
rename from src/topbar/lineedit.h
rename to src/libtomahawk/playlist/topbar/lineedit.h
index 1eeec3a7c..5999ddb2b 100644
--- a/src/topbar/lineedit.h
+++ b/src/libtomahawk/playlist/topbar/lineedit.h
@@ -29,8 +29,9 @@
 #ifndef LINEEDIT_H
 #define LINEEDIT_H
 
-#include <qlineedit.h>
+#include <QLineEdit>
 
+#include "dllmacro.h"
 class QHBoxLayout;
 
 /*
@@ -44,7 +45,7 @@ class QHBoxLayout;
     into the center of the widget.
 */
 class SideWidget;
-class LineEdit : public QLineEdit
+class DLLEXPORT LineEdit : public QLineEdit
 {
     Q_OBJECT
     Q_PROPERTY(QString inactiveText READ inactiveText WRITE setInactiveText)
diff --git a/src/topbar/lineedit_p.h b/src/libtomahawk/playlist/topbar/lineedit_p.h
similarity index 100%
rename from src/topbar/lineedit_p.h
rename to src/libtomahawk/playlist/topbar/lineedit_p.h
diff --git a/src/topbar/searchbutton.cpp b/src/libtomahawk/playlist/topbar/searchbutton.cpp
similarity index 100%
rename from src/topbar/searchbutton.cpp
rename to src/libtomahawk/playlist/topbar/searchbutton.cpp
diff --git a/src/topbar/searchbutton.h b/src/libtomahawk/playlist/topbar/searchbutton.h
similarity index 94%
rename from src/topbar/searchbutton.h
rename to src/libtomahawk/playlist/topbar/searchbutton.h
index 3f9c0ac92..e57da62b1 100644
--- a/src/topbar/searchbutton.h
+++ b/src/libtomahawk/playlist/topbar/searchbutton.h
@@ -22,8 +22,10 @@
 
 #include <qabstractbutton.h>
 
+#include "dllmacro.h"
+
 class QCompleter;
-class SearchButton : public QAbstractButton
+class DLLEXPORT SearchButton : public QAbstractButton
 {
     Q_OBJECT
 
diff --git a/src/topbar/searchlineedit.cpp b/src/libtomahawk/playlist/topbar/searchlineedit.cpp
similarity index 100%
rename from src/topbar/searchlineedit.cpp
rename to src/libtomahawk/playlist/topbar/searchlineedit.cpp
diff --git a/src/topbar/searchlineedit.h b/src/libtomahawk/playlist/topbar/searchlineedit.h
similarity index 100%
rename from src/topbar/searchlineedit.h
rename to src/libtomahawk/playlist/topbar/searchlineedit.h
diff --git a/src/topbar/topbar.cpp b/src/libtomahawk/playlist/topbar/topbar.cpp
similarity index 100%
rename from src/topbar/topbar.cpp
rename to src/libtomahawk/playlist/topbar/topbar.cpp
diff --git a/src/topbar/topbar.h b/src/libtomahawk/playlist/topbar/topbar.h
similarity index 95%
rename from src/topbar/topbar.h
rename to src/libtomahawk/playlist/topbar/topbar.h
index 8d113a847..80208aa75 100644
--- a/src/topbar/topbar.h
+++ b/src/libtomahawk/playlist/topbar/topbar.h
@@ -12,7 +12,7 @@ namespace Ui
     class TopBar;
 }
 
-class TopBar : public QWidget
+class DLLEXPORT TopBar : public QWidget
 {
 Q_OBJECT
 
diff --git a/src/topbar/topbar.ui b/src/libtomahawk/playlist/topbar/topbar.ui
similarity index 100%
rename from src/topbar/topbar.ui
rename to src/libtomahawk/playlist/topbar/topbar.ui