From a355013eb17ec8cc0b726f3e0a846ed39fc8ffd2 Mon Sep 17 00:00:00 2001
From: hjk <hjk121@nokiamail.com>
Date: Tue, 24 Jun 2014 11:15:32 +0200
Subject: [PATCH] Core: Use some data members in NavigationWidgetFactory

Adjust user code, remove unused bits.

Change-Id: I351deb27679c9251518a4d1bf7f78a12bacae2fb
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
---
 src/plugins/bookmarks/bookmarkmanager.cpp     | 31 +++---------
 src/plugins/bookmarks/bookmarkmanager.h       |  4 --
 src/plugins/classview/classviewmanager.cpp    | 15 ------
 src/plugins/classview/classviewmanager.h      |  1 -
 .../classviewnavigationwidgetfactory.cpp      | 45 ++---------------
 .../classviewnavigationwidgetfactory.h        | 23 ---------
 src/plugins/classview/classviewplugin.cpp     |  5 +-
 .../editormanager/openeditorsview.cpp         | 35 +++----------
 .../editormanager/openeditorsview.h           |  7 +--
 .../coreplugin/inavigationwidgetfactory.cpp   | 50 ++++++++++++++++++-
 .../coreplugin/inavigationwidgetfactory.h     | 26 +++++++---
 src/plugins/cppeditor/cppeditorconstants.h    |  2 -
 src/plugins/cppeditor/cppincludehierarchy.cpp | 27 ++--------
 src/plugins/cppeditor/cppincludehierarchy.h   |  5 --
 src/plugins/cppeditor/cpptypehierarchy.cpp    | 29 ++---------
 src/plugins/cppeditor/cpptypehierarchy.h      |  5 --
 .../foldernavigationwidget.cpp                | 28 ++---------
 .../projectexplorer/foldernavigationwidget.h  |  5 --
 .../projectexplorer/projecttreewidget.cpp     | 28 ++---------
 .../projectexplorer/projecttreewidget.h       |  6 +--
 src/plugins/texteditor/outlinefactory.cpp     | 27 +++-------
 src/plugins/texteditor/outlinefactory.h       |  6 +--
 22 files changed, 111 insertions(+), 299 deletions(-)

diff --git a/src/plugins/bookmarks/bookmarkmanager.cpp b/src/plugins/bookmarks/bookmarkmanager.cpp
index 0001e4c764..670b59426c 100644
--- a/src/plugins/bookmarks/bookmarkmanager.cpp
+++ b/src/plugins/bookmarks/bookmarkmanager.cpp
@@ -832,34 +832,15 @@ void BookmarkManager::handleBookmarkTooltipRequest(ITextEditor *textEditor, cons
 BookmarkViewFactory::BookmarkViewFactory(BookmarkManager *bm)
     : m_manager(bm)
 {
+    setDisplayName(BookmarkView::tr("Bookmarks"));
+    setPriority(300);
+    setId("Bookmarks");
+    setActivationSequence(QKeySequence(Core::UseMacShortcuts ? tr("Alt+Meta+M") : tr("Alt+M")));
 }
 
-QString BookmarkViewFactory::displayName() const
+NavigationView BookmarkViewFactory::createWidget()
 {
-    return BookmarkView::tr("Bookmarks");
-}
-
-int BookmarkViewFactory::priority() const
-{
-    return 300;
-}
-
-Id BookmarkViewFactory::id() const
-{
-    return "Bookmarks";
-}
-
-QKeySequence BookmarkViewFactory::activationSequence() const
-{
-    return QKeySequence(Core::UseMacShortcuts ? tr("Alt+Meta+M") : tr("Alt+M"));
-}
-
-Core::NavigationView BookmarkViewFactory::createWidget()
-{
-    BookmarkView *bookmarkView = new BookmarkView(m_manager);
-    Core::NavigationView view;
-    view.widget = bookmarkView;
-    return view;
+    return NavigationView(new BookmarkView(m_manager));
 }
 
 } // namespace Internal
diff --git a/src/plugins/bookmarks/bookmarkmanager.h b/src/plugins/bookmarks/bookmarkmanager.h
index 88f6a178f5..5ff51ff5e8 100644
--- a/src/plugins/bookmarks/bookmarkmanager.h
+++ b/src/plugins/bookmarks/bookmarkmanager.h
@@ -170,10 +170,6 @@ public:
     BookmarkViewFactory(BookmarkManager *bm);
 
 private:
-    QString displayName() const;
-    int priority() const;
-    Core::Id id() const;
-    QKeySequence activationSequence() const;
     Core::NavigationView createWidget();
 
     BookmarkManager *m_manager;
diff --git a/src/plugins/classview/classviewmanager.cpp b/src/plugins/classview/classviewmanager.cpp
index e0d756a3a8..877f36dc80 100644
--- a/src/plugins/classview/classviewmanager.cpp
+++ b/src/plugins/classview/classviewmanager.cpp
@@ -224,10 +224,6 @@ void Manager::initialize()
 {
     // use Qt::QueuedConnection everywhere
 
-    // widget factory signals
-    connect(NavigationWidgetFactory::instance(), SIGNAL(widgetIsCreated()),
-            SLOT(onWidgetIsCreated()), Qt::QueuedConnection);
-
     // internal manager state is changed
     connect(this, SIGNAL(stateChanged(bool)), SLOT(onStateChanged(bool)), Qt::QueuedConnection);
 
@@ -318,17 +314,6 @@ void Manager::setState(bool state)
     emit stateChanged(d->state);
 }
 
-/*!
-    Reacts to the widget factory creating a widget.
-
-    \sa setState, state
-*/
-
-void Manager::onWidgetIsCreated()
-{
-    // do nothing - continue to sleep
-}
-
 /*!
     Reacts to the \a visibility of one navigation pane widget being changed
     (there might be a lot of them).
diff --git a/src/plugins/classview/classviewmanager.h b/src/plugins/classview/classviewmanager.h
index f05d8a7733..19c973de26 100644
--- a/src/plugins/classview/classviewmanager.h
+++ b/src/plugins/classview/classviewmanager.h
@@ -87,7 +87,6 @@ public slots:
     void setFlatMode(bool flat);
 
 protected slots:
-    void onWidgetIsCreated();
     void onWidgetVisibilityIsChanged(bool visibility);
     void onStateChanged(bool state);
     void onProjectListChanged();
diff --git a/src/plugins/classview/classviewnavigationwidgetfactory.cpp b/src/plugins/classview/classviewnavigationwidgetfactory.cpp
index 2255faf1c8..1ba4bc96d8 100644
--- a/src/plugins/classview/classviewnavigationwidgetfactory.cpp
+++ b/src/plugins/classview/classviewnavigationwidgetfactory.cpp
@@ -41,8 +41,6 @@
 namespace ClassView {
 namespace Internal {
 
-static NavigationWidgetFactory *factoryInstance;
-
 ///////////////////////////////// NavigationWidgetFactory //////////////////////////////////
 
 /*!
@@ -52,49 +50,13 @@ static NavigationWidgetFactory *factoryInstance;
 
     Supports the \c setState public slot for adding the widget factory to or
     removing it from \c ExtensionSystem::PluginManager.
-
-    Also supports the \c widgetIsCreated and \c stateChanged signals.
-*/
-
-/*!
-    \fn void NavigationWidgetFactory::widgetIsCreated()
-
-    Informs that the widget factory created a widget.
 */
 
 NavigationWidgetFactory::NavigationWidgetFactory()
 {
-    factoryInstance = this;
-}
-
-NavigationWidgetFactory::~NavigationWidgetFactory()
-{
-    factoryInstance = 0;
-}
-
-NavigationWidgetFactory *NavigationWidgetFactory::instance()
-{
-    return factoryInstance;
-}
-
-QString NavigationWidgetFactory::displayName() const
-{
-    return tr("Class View");
-}
-
-int NavigationWidgetFactory::priority() const
-{
-    return 500;
-}
-
-Core::Id NavigationWidgetFactory::id() const
-{
-    return "Class View";
-}
-
-QKeySequence NavigationWidgetFactory::activationSequence() const
-{
-    return QKeySequence();
+    setDisplayName(tr("Class View"));
+    setPriority(500);
+    setId("Class View");
 }
 
 Core::NavigationView NavigationWidgetFactory::createWidget()
@@ -103,7 +65,6 @@ Core::NavigationView NavigationWidgetFactory::createWidget()
     NavigationWidget *widget = new NavigationWidget();
     navigationView.widget = widget;
     navigationView.dockToolBarWidgets = widget->createToolButtons();
-    emit widgetIsCreated();
     return navigationView;
 }
 
diff --git a/src/plugins/classview/classviewnavigationwidgetfactory.h b/src/plugins/classview/classviewnavigationwidgetfactory.h
index 3cb0ec3b0c..450ae71930 100644
--- a/src/plugins/classview/classviewnavigationwidgetfactory.h
+++ b/src/plugins/classview/classviewnavigationwidgetfactory.h
@@ -40,28 +40,8 @@ class NavigationWidgetFactory : public Core::INavigationWidgetFactory
     Q_OBJECT
 
 public:
-    //! Constructor
     NavigationWidgetFactory();
 
-    //! Destructor
-    ~NavigationWidgetFactory();
-
-    //! Access to static instance
-    static NavigationWidgetFactory *instance();
-
-    // Core::INavigationWidgetFactory
-    //! \implements Core::INavigationWidgetFactory::displayName
-    QString displayName() const;
-
-    //! \implements Core::INavigationWidgetFactory::priority
-    int priority() const;
-
-    //! \implements Core::INavigationWidgetFactory::id
-    Core::Id id() const;
-
-    //! \implements Core::INavigationWidgetFactory::activationSequence
-    QKeySequence activationSequence() const;
-
     //! \implements Core::INavigationWidgetFactory::createWidget
     Core::NavigationView createWidget();
 
@@ -70,9 +50,6 @@ public:
 
     //! \implements Core::INavigationWidgetFactory::restoreSettings
     void restoreSettings(int position, QWidget *widget);
-
-signals:
-    void widgetIsCreated();
 };
 
 } // namespace Internal
diff --git a/src/plugins/classview/classviewplugin.cpp b/src/plugins/classview/classviewplugin.cpp
index 95117dc8d5..517ae0cc1b 100644
--- a/src/plugins/classview/classviewplugin.cpp
+++ b/src/plugins/classview/classviewplugin.cpp
@@ -51,11 +51,8 @@ bool Plugin::initialize(const QStringList &arguments, QString *errorMessage)
     Q_UNUSED(arguments)
     Q_UNUSED(errorMessage)
 
-    // create a navigation widget factory
-    (void) new NavigationWidgetFactory;
-
     // add to ExtensionSystem
-    addAutoReleasedObject(NavigationWidgetFactory::instance());
+    addAutoReleasedObject(new NavigationWidgetFactory);
 
     // create manager
     (void) new Manager(this);
diff --git a/src/plugins/coreplugin/editormanager/openeditorsview.cpp b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
index 91de92aa5d..550d563ef5 100644
--- a/src/plugins/coreplugin/editormanager/openeditorsview.cpp
+++ b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
@@ -216,42 +216,19 @@ void OpenEditorsWidget::contextMenuRequested(QPoint pos)
 // OpenEditorsViewFactory
 ///
 
-NavigationView OpenEditorsViewFactory::createWidget()
-{
-    NavigationView n;
-    n.widget = new OpenEditorsWidget();
-    return n;
-}
-
-QString OpenEditorsViewFactory::displayName() const
-{
-    return OpenEditorsWidget::tr("Open Documents");
-}
-
-int OpenEditorsViewFactory::priority() const
-{
-    return 200;
-}
-
-Id OpenEditorsViewFactory::id() const
-{
-    return "Open Documents";
-}
-
-QKeySequence OpenEditorsViewFactory::activationSequence() const
-{
-    return QKeySequence(Core::UseMacShortcuts ? tr("Meta+O") : tr("Alt+O"));
-}
-
 OpenEditorsViewFactory::OpenEditorsViewFactory()
 {
+    setId("Open Documents");
+    setDisplayName(OpenEditorsWidget::tr("Open Documents"));
+    setActivationSequence(QKeySequence(Core::UseMacShortcuts ? tr("Meta+O") : tr("Alt+O")));
+    setPriority(200);
 }
 
-OpenEditorsViewFactory::~OpenEditorsViewFactory()
+NavigationView OpenEditorsViewFactory::createWidget()
 {
+    return NavigationView(new OpenEditorsWidget());
 }
 
-
 ProxyModel::ProxyModel(QObject *parent) : QAbstractProxyModel(parent)
 {
 }
diff --git a/src/plugins/coreplugin/editormanager/openeditorsview.h b/src/plugins/coreplugin/editormanager/openeditorsview.h
index d4e8197082..01479ae93d 100644
--- a/src/plugins/coreplugin/editormanager/openeditorsview.h
+++ b/src/plugins/coreplugin/editormanager/openeditorsview.h
@@ -109,13 +109,10 @@ private:
 class OpenEditorsViewFactory : public Core::INavigationWidgetFactory
 {
     Q_OBJECT
+
 public:
     OpenEditorsViewFactory();
-    ~OpenEditorsViewFactory();
-    QString displayName() const;
-    int priority() const;
-    Id id() const;
-    QKeySequence activationSequence() const;
+
     Core::NavigationView createWidget();
 };
 
diff --git a/src/plugins/coreplugin/inavigationwidgetfactory.cpp b/src/plugins/coreplugin/inavigationwidgetfactory.cpp
index 3b5062b498..7fe6326f4c 100644
--- a/src/plugins/coreplugin/inavigationwidgetfactory.cpp
+++ b/src/plugins/coreplugin/inavigationwidgetfactory.cpp
@@ -89,12 +89,60 @@
 
 using namespace Core;
 
+/*!
+    Creates a \l{Core::NavigationViewFactory}.
+*/
+INavigationWidgetFactory::INavigationWidgetFactory()
+    : m_priority(0)
+{
+}
+
+/*!
+    Sets the display name for the factory.
+
+    \sa displayName()
+*/
+void INavigationWidgetFactory::setDisplayName(const QString &displayName)
+{
+    m_displayName = displayName;
+}
+
+/*!
+    Sets the priority for the factory.
+
+    \sa priority()
+*/
+void INavigationWidgetFactory::setPriority(int priority)
+{
+    m_priority = priority;
+}
+
+/*!
+    Sets the id for the factory.
+
+    \sa id()
+*/
+void INavigationWidgetFactory::setId(Id id)
+{
+    m_id = id;
+}
+
+/*!
+    Sets the keyboard activation sequence for the factory.
+
+    \sa activationSequence()
+*/
+void INavigationWidgetFactory::setActivationSequence(const QKeySequence &keys)
+{
+    m_activationSequence = keys;
+}
+
 /*!
     Returns the keyboard shortcut to activate an instance of a navigation widget.
 */
 QKeySequence INavigationWidgetFactory::activationSequence() const
 {
-    return QKeySequence();
+    return m_activationSequence;
 }
 
 /*!
diff --git a/src/plugins/coreplugin/inavigationwidgetfactory.h b/src/plugins/coreplugin/inavigationwidgetfactory.h
index 62f2335f41..0cd60b6a11 100644
--- a/src/plugins/coreplugin/inavigationwidgetfactory.h
+++ b/src/plugins/coreplugin/inavigationwidgetfactory.h
@@ -34,10 +34,10 @@
 
 #include <QObject>
 #include <QList>
+#include <QKeySequence>
 
 QT_BEGIN_NAMESPACE
 class QToolButton;
-class QKeySequence;
 class QWidget;
 QT_END_NAMESPACE
 
@@ -45,6 +45,8 @@ namespace Core {
 
 struct NavigationView
 {
+    NavigationView(QWidget *w = 0) : widget(w) {}
+
     QWidget *widget;
     QList<QToolButton *> dockToolBarWidgets;
 };
@@ -54,12 +56,18 @@ class CORE_EXPORT INavigationWidgetFactory : public QObject
     Q_OBJECT
 
 public:
-    INavigationWidgetFactory() {}
+    INavigationWidgetFactory();
+
+    void setDisplayName(const QString &displayName);
+    void setPriority(int priority);
+    void setId(Id id);
+    void setActivationSequence(const QKeySequence &keys);
+
+    QString displayName() const { return m_displayName ; }
+    int priority() const { return m_priority; }
+    Id id() const { return m_id; }
+    QKeySequence activationSequence() const;
 
-    virtual QString displayName() const = 0;
-    virtual int priority() const = 0;
-    virtual Id id() const = 0;
-    virtual QKeySequence activationSequence() const;
     // This design is not optimal, think about it again once we need to extend it
     // It could be implemented as returning an object which has both the widget
     // and the docktoolbar widgets
@@ -68,6 +76,12 @@ public:
 
     virtual void saveSettings(int position, QWidget *widget);
     virtual void restoreSettings(int position, QWidget *widget);
+
+private:
+    QString m_displayName;
+    int m_priority;
+    Id m_id;
+    QKeySequence m_activationSequence;
 };
 
 } // namespace Core
diff --git a/src/plugins/cppeditor/cppeditorconstants.h b/src/plugins/cppeditor/cppeditorconstants.h
index 324d614456..0c4af7fbd0 100644
--- a/src/plugins/cppeditor/cppeditorconstants.h
+++ b/src/plugins/cppeditor/cppeditorconstants.h
@@ -46,11 +46,9 @@ const char M_REFACTORING_MENU_INSERTION_POINT[] = "CppEditor.RefactorGroup";
 const char UPDATE_CODEMODEL[] = "CppEditor.UpdateCodeModel";
 const char INSPECT_CPP_CODEMODEL[] = "CppEditor.InspectCppCodeModel";
 
-const int TYPE_HIERARCHY_PRIORITY = 700;
 const char TYPE_HIERARCHY_ID[] = "CppEditor.TypeHierarchy";
 const char OPEN_TYPE_HIERARCHY[] = "CppEditor.OpenTypeHierarchy";
 
-const int INCLUDE_HIERARCHY_PRIORITY = 800;
 const char INCLUDE_HIERARCHY_ID[] = "CppEditor.IncludeHierarchy";
 const char OPEN_INCLUDE_HIERARCHY[] = "CppEditor.OpenIncludeHierarchy";
 
diff --git a/src/plugins/cppeditor/cppincludehierarchy.cpp b/src/plugins/cppeditor/cppincludehierarchy.cpp
index be5457736b..e9693f1043 100644
--- a/src/plugins/cppeditor/cppincludehierarchy.cpp
+++ b/src/plugins/cppeditor/cppincludehierarchy.cpp
@@ -207,30 +207,9 @@ CppIncludeHierarchyStackedWidget::~CppIncludeHierarchyStackedWidget()
 // CppIncludeHierarchyFactory
 CppIncludeHierarchyFactory::CppIncludeHierarchyFactory()
 {
-}
-
-CppIncludeHierarchyFactory::~CppIncludeHierarchyFactory()
-{
-}
-
-QString CppIncludeHierarchyFactory::displayName() const
-{
-    return tr("Include Hierarchy");
-}
-
-int CppIncludeHierarchyFactory::priority() const
-{
-    return Constants::INCLUDE_HIERARCHY_PRIORITY;
-}
-
-Core::Id CppIncludeHierarchyFactory::id() const
-{
-    return Core::Id(Constants::INCLUDE_HIERARCHY_ID);
-}
-
-QKeySequence CppIncludeHierarchyFactory::activationSequence() const
-{
-    return QKeySequence();
+    setDisplayName(tr("Include Hierarchy"));
+    setPriority(800);
+    setId(Constants::INCLUDE_HIERARCHY_ID);
 }
 
 Core::NavigationView CppIncludeHierarchyFactory::createWidget()
diff --git a/src/plugins/cppeditor/cppincludehierarchy.h b/src/plugins/cppeditor/cppincludehierarchy.h
index c03a36084c..49355751fa 100644
--- a/src/plugins/cppeditor/cppincludehierarchy.h
+++ b/src/plugins/cppeditor/cppincludehierarchy.h
@@ -106,12 +106,7 @@ class CppIncludeHierarchyFactory : public Core::INavigationWidgetFactory
     Q_OBJECT
 public:
     CppIncludeHierarchyFactory();
-    virtual ~CppIncludeHierarchyFactory();
 
-    QString displayName() const;
-    int priority() const;
-    Core::Id id() const;
-    QKeySequence activationSequence() const;
     Core::NavigationView createWidget();
 };
 
diff --git a/src/plugins/cppeditor/cpptypehierarchy.cpp b/src/plugins/cppeditor/cpptypehierarchy.cpp
index d7162a2da2..9a34aaf5e6 100644
--- a/src/plugins/cppeditor/cpptypehierarchy.cpp
+++ b/src/plugins/cppeditor/cpptypehierarchy.cpp
@@ -256,38 +256,17 @@ CppTypeHierarchyStackedWidget::~CppTypeHierarchyStackedWidget()
 
 // CppTypeHierarchyFactory
 CppTypeHierarchyFactory::CppTypeHierarchyFactory()
-{}
-
-CppTypeHierarchyFactory::~CppTypeHierarchyFactory()
-{}
-
-QString CppTypeHierarchyFactory::displayName() const
-{
-    return tr("Type Hierarchy");
-}
-
-int CppTypeHierarchyFactory::priority() const
-{
-    return Constants::TYPE_HIERARCHY_PRIORITY;
-}
-
-Core::Id CppTypeHierarchyFactory::id() const
-{
-    return Core::Id(Constants::TYPE_HIERARCHY_ID);
-}
-
-QKeySequence CppTypeHierarchyFactory::activationSequence() const
 {
-    return QKeySequence();
+    setDisplayName(tr("Type Hierarchy"));
+    setPriority(700);
+    setId(Constants::TYPE_HIERARCHY_ID);
 }
 
 Core::NavigationView CppTypeHierarchyFactory::createWidget()
 {
     CppTypeHierarchyStackedWidget *w = new CppTypeHierarchyStackedWidget;
     static_cast<CppTypeHierarchyWidget *>(w->currentWidget())->perform();
-    Core::NavigationView navigationView;
-    navigationView.widget = w;
-    return navigationView;
+    return Core::NavigationView(w);
 }
 
 } // namespace Internal
diff --git a/src/plugins/cppeditor/cpptypehierarchy.h b/src/plugins/cppeditor/cpptypehierarchy.h
index aaefdc543e..53514fe927 100644
--- a/src/plugins/cppeditor/cpptypehierarchy.h
+++ b/src/plugins/cppeditor/cpptypehierarchy.h
@@ -109,12 +109,7 @@ class CppTypeHierarchyFactory : public Core::INavigationWidgetFactory
     Q_OBJECT
 public:
     CppTypeHierarchyFactory();
-    virtual ~CppTypeHierarchyFactory();
 
-    virtual QString displayName() const;
-    virtual int priority() const;
-    virtual Core::Id id() const;
-    virtual QKeySequence activationSequence() const;
     virtual Core::NavigationView createWidget();
 };
 
diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp
index 2f6dd7a9d9..b3e4bfc2aa 100644
--- a/src/plugins/projectexplorer/foldernavigationwidget.cpp
+++ b/src/plugins/projectexplorer/foldernavigationwidget.cpp
@@ -415,30 +415,10 @@ void FolderNavigationWidget::ensureCurrentIndex()
 // --------------------FolderNavigationWidgetFactory
 FolderNavigationWidgetFactory::FolderNavigationWidgetFactory()
 {
-}
-
-FolderNavigationWidgetFactory::~FolderNavigationWidgetFactory()
-{
-}
-
-QString FolderNavigationWidgetFactory::displayName() const
-{
-    return tr("File System");
-}
-
-int FolderNavigationWidgetFactory::priority() const
-{
-    return 400;
-}
-
-Core::Id FolderNavigationWidgetFactory::id() const
-{
-    return "File System";
-}
-
-QKeySequence FolderNavigationWidgetFactory::activationSequence() const
-{
-    return QKeySequence(Core::UseMacShortcuts ? tr("Meta+Y") : tr("Alt+Y"));
+    setDisplayName(tr("File System"));
+    setPriority(400);
+    setId("File System");
+    setActivationSequence(QKeySequence(Core::UseMacShortcuts ? tr("Meta+Y") : tr("Alt+Y")));
 }
 
 Core::NavigationView FolderNavigationWidgetFactory::createWidget()
diff --git a/src/plugins/projectexplorer/foldernavigationwidget.h b/src/plugins/projectexplorer/foldernavigationwidget.h
index ee465bb75c..a417cce371 100644
--- a/src/plugins/projectexplorer/foldernavigationwidget.h
+++ b/src/plugins/projectexplorer/foldernavigationwidget.h
@@ -99,12 +99,7 @@ class FolderNavigationWidgetFactory : public Core::INavigationWidgetFactory
     Q_OBJECT
 public:
     FolderNavigationWidgetFactory();
-    ~FolderNavigationWidgetFactory();
 
-    QString displayName() const;
-    int priority() const;
-    Core::Id id() const;
-    QKeySequence activationSequence() const;
     Core::NavigationView createWidget();
     void saveSettings(int position, QWidget *widget);
     void restoreSettings(int position, QWidget *widget);
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index 8600fd9fef..ba32273f3a 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -406,30 +406,10 @@ bool ProjectTreeWidget::projectFilter()
 
 ProjectTreeWidgetFactory::ProjectTreeWidgetFactory()
 {
-}
-
-ProjectTreeWidgetFactory::~ProjectTreeWidgetFactory()
-{
-}
-
-QString ProjectTreeWidgetFactory::displayName() const
-{
-    return tr("Projects");
-}
-
-int ProjectTreeWidgetFactory::priority() const
-{
-    return 100;
-}
-
-Id ProjectTreeWidgetFactory::id() const
-{
-    return "Projects";
-}
-
-QKeySequence ProjectTreeWidgetFactory::activationSequence() const
-{
-    return QKeySequence(UseMacShortcuts ? tr("Meta+X") : tr("Alt+X"));
+    setDisplayName(tr("Projects"));
+    setPriority(100);
+    setId("Projects");
+    setActivationSequence(QKeySequence(UseMacShortcuts ? tr("Meta+X") : tr("Alt+X")));
 }
 
 NavigationView ProjectTreeWidgetFactory::createWidget()
diff --git a/src/plugins/projectexplorer/projecttreewidget.h b/src/plugins/projectexplorer/projecttreewidget.h
index 703660cb81..c78131e2de 100644
--- a/src/plugins/projectexplorer/projecttreewidget.h
+++ b/src/plugins/projectexplorer/projecttreewidget.h
@@ -107,11 +107,7 @@ class ProjectTreeWidgetFactory : public Core::INavigationWidgetFactory
     Q_OBJECT
 public:
     ProjectTreeWidgetFactory();
-    ~ProjectTreeWidgetFactory();
-    QString displayName() const;
-    int priority() const;
-    Core::Id id() const;
-    QKeySequence activationSequence() const;
+
     Core::NavigationView createWidget();
     void restoreSettings(int position, QWidget *widget);
     void saveSettings(int position, QWidget *widget);
diff --git a/src/plugins/texteditor/outlinefactory.cpp b/src/plugins/texteditor/outlinefactory.cpp
index 3fc3d2b1db..cbe749a1ea 100644
--- a/src/plugins/texteditor/outlinefactory.cpp
+++ b/src/plugins/texteditor/outlinefactory.cpp
@@ -175,6 +175,13 @@ void OutlineWidgetStack::updateCurrentEditor(Core::IEditor *editor)
     }
 }
 
+OutlineFactory::OutlineFactory()
+{
+    setDisplayName(tr("Outline"));
+    setId("Outline");
+    setPriority(600);
+}
+
 QList<IOutlineWidgetFactory*> OutlineFactory::widgetFactories() const
 {
     return m_factories;
@@ -185,26 +192,6 @@ void OutlineFactory::setWidgetFactories(QList<IOutlineWidgetFactory*> factories)
     m_factories = factories;
 }
 
-QString OutlineFactory::displayName() const
-{
-    return tr("Outline");
-}
-
-int OutlineFactory::priority() const
-{
-    return 600;
-}
-
-Core::Id OutlineFactory::id() const
-{
-    return "Outline";
-}
-
-QKeySequence OutlineFactory::activationSequence() const
-{
-    return QKeySequence();
-}
-
 Core::NavigationView OutlineFactory::createWidget()
 {
     Core::NavigationView n;
diff --git a/src/plugins/texteditor/outlinefactory.h b/src/plugins/texteditor/outlinefactory.h
index ea001520b3..5b0d6f97fc 100644
--- a/src/plugins/texteditor/outlinefactory.h
+++ b/src/plugins/texteditor/outlinefactory.h
@@ -78,16 +78,12 @@ class OutlineFactory : public Core::INavigationWidgetFactory
 {
     Q_OBJECT
 public:
-    OutlineFactory() {}
+    OutlineFactory();
 
     QList<IOutlineWidgetFactory*> widgetFactories() const;
     void setWidgetFactories(QList<IOutlineWidgetFactory*> factories);
 
     // from INavigationWidgetFactory
-    virtual QString displayName() const;
-    virtual int priority() const;
-    virtual Core::Id id() const;
-    virtual QKeySequence activationSequence() const;
     virtual Core::NavigationView createWidget();
     virtual void saveSettings(int position, QWidget *widget);
     virtual void restoreSettings(int position, QWidget *widget);
-- 
GitLab