diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 26ea2038b12592d1600f2e4c06caeb285ac435a3..3b4c568d713f8efd2ea994196176a436393b7f61 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -35,7 +35,6 @@
 #include "cppdocumentationcommenthelper.h"
 #include "cppeditorconstants.h"
 #include "cppeditordocument.h"
-#include "cppeditoroutline.h"
 #include "cppeditorplugin.h"
 #include "cppfollowsymbolundercursor.h"
 #include "cpphighlighter.h"
@@ -51,6 +50,7 @@
 #include <cpptools/cppchecksymbols.h>
 #include <cpptools/cppcodeformatter.h>
 #include <cpptools/cppcompletionassistprovider.h>
+#include <cpptools/cppeditoroutline.h>
 #include <cpptools/cppmodelmanager.h>
 #include <cpptools/cppsemanticinfo.h>
 #include <cpptools/cpptoolsconstants.h>
@@ -242,7 +242,7 @@ CppEditorDocument *CppEditorWidget::cppEditorDocument() const
     return d->m_cppEditorDocument;
 }
 
-CppEditorOutline *CppEditorWidget::outline() const
+CppTools::CppEditorOutline *CppEditorWidget::outline() const
 {
     return d->m_cppEditorOutline;
 }
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index 96fa9f27d903a7a450c32c21671481b037ea4bd4..2a4d19ede0b0bcf3c124c18b8ce92ebba28863db 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -37,13 +37,16 @@
 
 #include <QScopedPointer>
 
-namespace CppTools { class SemanticInfo; }
+namespace CppTools {
+class CppEditorOutline;
+class SemanticInfo;
+}
 
 namespace CppEditor {
 namespace Internal {
 
 class CppEditorDocument;
-class CppEditorOutline;
+
 class CppEditorWidgetPrivate;
 class FollowSymbolUnderCursor;
 class FunctionDeclDefLink;
@@ -65,7 +68,7 @@ public:
     ~CppEditorWidget();
 
     CppEditorDocument *cppEditorDocument() const;
-    CppEditorOutline *outline() const;
+    CppTools::CppEditorOutline *outline() const;
 
     CppTools::SemanticInfo semanticInfo() const;
     bool isSemanticInfoValidExceptLocalUses() const;
diff --git a/src/plugins/cppeditor/cppeditor.pro b/src/plugins/cppeditor/cppeditor.pro
index a4c0bf2a5eadc12c827448727d171fe3cacfe4ff..52dddae171a13059f754ba10ea265c0a49129c09 100644
--- a/src/plugins/cppeditor/cppeditor.pro
+++ b/src/plugins/cppeditor/cppeditor.pro
@@ -11,7 +11,6 @@ HEADERS += \
     cppeditordocument.h \
     cppeditorconstants.h \
     cppeditorenums.h \
-    cppeditoroutline.h \
     cppeditorplugin.h \
     cppelementevaluator.h \
     cppfollowsymbolundercursor.h \
@@ -42,7 +41,6 @@ SOURCES += \
     cppdocumentationcommenthelper.cpp \
     cppeditor.cpp \
     cppeditordocument.cpp \
-    cppeditoroutline.cpp \
     cppeditorplugin.cpp \
     cppelementevaluator.cpp \
     cppfollowsymbolundercursor.cpp \
diff --git a/src/plugins/cppeditor/cppeditor.qbs b/src/plugins/cppeditor/cppeditor.qbs
index bceb436e57219e296589cc73c2b3c5e4742b49e1..e6f6769fd9ccb468a480268f80b2755d15b182de 100644
--- a/src/plugins/cppeditor/cppeditor.qbs
+++ b/src/plugins/cppeditor/cppeditor.qbs
@@ -27,7 +27,6 @@ QtcPlugin {
         "cppeditorconstants.h",
         "cppeditordocument.cpp", "cppeditordocument.h",
         "cppeditorenums.h",
-        "cppeditoroutline.cpp", "cppeditoroutline.h",
         "cppeditorplugin.cpp", "cppeditorplugin.h",
         "cppelementevaluator.cpp", "cppelementevaluator.h",
         "cppfollowsymbolundercursor.cpp", "cppfollowsymbolundercursor.h",
diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp
index f3b37cdc98894777ba9b2a2ef98e30d51d59aafb..1ae3c9649984ed660bef6999ff0404d92a472633 100644
--- a/src/plugins/cppeditor/cppeditorplugin.cpp
+++ b/src/plugins/cppeditor/cppeditorplugin.cpp
@@ -35,7 +35,6 @@
 #include "cppeditorconstants.h"
 #include "cppeditor.h"
 #include "cppeditordocument.h"
-#include "cppeditoroutline.h"
 #include "cpphighlighter.h"
 #include "cpphoverhandler.h"
 #include "cppincludehierarchy.h"
diff --git a/src/plugins/cppeditor/cppoutline.cpp b/src/plugins/cppeditor/cppoutline.cpp
index 70cd6fbc40cffb19e307e2839f654e35c64a2dd4..55e044bc199e917517f2dc033c867ea064f6d8d7 100644
--- a/src/plugins/cppeditor/cppoutline.cpp
+++ b/src/plugins/cppeditor/cppoutline.cpp
@@ -30,7 +30,7 @@
 
 #include "cppoutline.h"
 
-#include "cppeditoroutline.h"
+#include <cpptools/cppeditoroutline.h>
 
 #include <cplusplus/OverviewModel.h>
 
diff --git a/src/plugins/cppeditor/cppeditoroutline.cpp b/src/plugins/cpptools/cppeditoroutline.cpp
similarity index 98%
rename from src/plugins/cppeditor/cppeditoroutline.cpp
rename to src/plugins/cpptools/cppeditoroutline.cpp
index 829f4f84aad7e711a796bb69eae313d3d488917e..9c17e016f8bcbfb623072df512acaab3e6eafa05 100644
--- a/src/plugins/cppeditor/cppeditoroutline.cpp
+++ b/src/plugins/cpptools/cppeditoroutline.cpp
@@ -30,8 +30,6 @@
 
 #include "cppeditoroutline.h"
 
-#include "cppeditorplugin.h"
-
 #include <cpptools/cppmodelmanager.h>
 #include <cpptools/cpptoolsreuse.h>
 #include <cpptools/cpptoolssettings.h>
@@ -44,12 +42,10 @@
 #include <QTimer>
 
 /*!
-    \class CppEditor::Internal::CppEditorOutline
+    \class CppTools::CppEditorOutline
     \brief A helper class that provides the outline model and widget,
            e.g. for the editor's tool bar.
 
-    \internal
-
     The caller is responsible for deleting the widget returned by widget().
  */
 
@@ -94,8 +90,7 @@ QTimer *newSingleShotTimer(QObject *parent, int msInternal, const QString &objec
 
 } // anonymous namespace
 
-namespace CppEditor {
-namespace Internal {
+namespace CppTools {
 
 CppEditorOutline::CppEditorOutline(TextEditor::TextEditorWidget *editorWidget)
     : QObject(editorWidget)
@@ -286,7 +281,6 @@ QModelIndex CppEditorOutline::indexForPosition(int line, int column,
     return lastIndex;
 }
 
-} // namespace Internal
-} // namespace CppEditor
+} // namespace CppTools
 
 #include <cppeditoroutline.moc>
diff --git a/src/plugins/cppeditor/cppeditoroutline.h b/src/plugins/cpptools/cppeditoroutline.h
similarity index 95%
rename from src/plugins/cppeditor/cppeditoroutline.h
rename to src/plugins/cpptools/cppeditoroutline.h
index 19b268305f013241839ccaed871886dd69a25158..b1721fab8a72a2d924b51033192176f2f90022b1 100644
--- a/src/plugins/cppeditor/cppeditoroutline.h
+++ b/src/plugins/cpptools/cppeditoroutline.h
@@ -31,6 +31,8 @@
 #ifndef CPPEDITOROUTLINE_H
 #define CPPEDITOROUTLINE_H
 
+#include "cpptools_global.h"
+
 #include <QModelIndex>
 #include <QObject>
 
@@ -44,10 +46,9 @@ namespace CPlusPlus { class OverviewModel; }
 namespace TextEditor { class TextEditorWidget; }
 namespace Utils { class TreeViewComboBox; }
 
-namespace CppEditor {
-namespace Internal {
+namespace CppTools {
 
-class CppEditorOutline : public QObject
+class CPPTOOLS_EXPORT CppEditorOutline : public QObject
 {
     Q_OBJECT
     Q_DISABLE_COPY(CppEditorOutline)
@@ -94,7 +95,6 @@ private:
     QTimer *m_updateIndexTimer;
 };
 
-} // namespace Internal
-} // namespace CppEditor
+} // namespace CppTools
 
 #endif // CPPEDITOROUTLINE_H
diff --git a/src/plugins/cpptools/cpptools.pro b/src/plugins/cpptools/cpptools.pro
index 318f059345fe346c4b61594c1760081c54f37cc4..a97e24990738c78c6b2a026507125f41c9773266 100644
--- a/src/plugins/cpptools/cpptools.pro
+++ b/src/plugins/cpptools/cpptools.pro
@@ -25,6 +25,7 @@ HEADERS += \
     cppcompletionassistprocessor.h \
     cppcompletionassistprovider.h \
     cppcurrentdocumentfilter.h \
+    cppeditoroutline.h \
     cppdoxygen.h \
     cppfilesettingspage.h \
     cppfindreferences.h \
@@ -88,6 +89,7 @@ SOURCES += \
     cppcompletionassistprocessor.cpp \
     cppcompletionassistprovider.cpp \
     cppcurrentdocumentfilter.cpp \
+    cppeditoroutline.cpp \
     cppdoxygen.cpp \
     cppfilesettingspage.cpp \
     cppfindreferences.cpp \
diff --git a/src/plugins/cpptools/cpptools.qbs b/src/plugins/cpptools/cpptools.qbs
index 4ab920650013a3551f10b188a32642ded72145df..9d8e6c7d85f88d28513a5b9d3d408801c6b23091 100644
--- a/src/plugins/cpptools/cpptools.qbs
+++ b/src/plugins/cpptools/cpptools.qbs
@@ -44,6 +44,7 @@ QtcPlugin {
         "cppcompletionassistprovider.cpp", "cppcompletionassistprovider.h",
         "cppcurrentdocumentfilter.cpp", "cppcurrentdocumentfilter.h",
         "cppdoxygen.cpp", "cppdoxygen.h",
+        "cppeditoroutline.cpp", "cppeditoroutline.h",
         "cppfilesettingspage.cpp", "cppfilesettingspage.h", "cppfilesettingspage.ui",
         "cppfindreferences.cpp", "cppfindreferences.h",
         "cppfunctionsfilter.cpp", "cppfunctionsfilter.h",