diff --git a/src/libs/utils/fancymainwindow.cpp b/src/libs/utils/fancymainwindow.cpp
index f8193e24917d4b49005af6cb95568171ce4928c5..ff5acae12a3cde4e4149ac8ce47a5b8aae483b1f 100644
--- a/src/libs/utils/fancymainwindow.cpp
+++ b/src/libs/utils/fancymainwindow.cpp
@@ -33,28 +33,50 @@
 #include <QtCore/QHash>
 
 #include <QtGui/QAction>
+#include <QtGui/QMenu>
 #include <QtGui/QDockWidget>
 #include <QtCore/QSettings>
 
+static const char lockedKeyC[] = "Locked";
+static const char stateKeyC[] = "State";
+static const int settingsVersion = 1;
+
 namespace Utils {
 
 struct FancyMainWindowPrivate {
-    FancyMainWindowPrivate();
+    explicit FancyMainWindowPrivate(FancyMainWindow *q);
 
     QList<QDockWidget *> m_dockWidgets;
     QList<bool> m_dockWidgetActiveState;
     bool m_locked;
     bool m_handleDockVisibilityChanges; //todo
+
+    QAction *m_menuSeparator1;
+    QAction *m_toggleLockedAction;
+    QAction *m_menuSeparator2;
+    QAction *m_resetLayoutAction;
 };
 
-FancyMainWindowPrivate::FancyMainWindowPrivate() :
-    m_locked(true), m_handleDockVisibilityChanges(true)
+FancyMainWindowPrivate::FancyMainWindowPrivate(FancyMainWindow *q) :
+    m_locked(true), m_handleDockVisibilityChanges(true),
+    m_menuSeparator1(new QAction(q)),
+    m_toggleLockedAction(new QAction(FancyMainWindow::tr("Locked"), q)),
+    m_menuSeparator2(new QAction(q)),
+    m_resetLayoutAction(new QAction(FancyMainWindow::tr("Reset to default layout") ,q))
 {
+    m_toggleLockedAction->setCheckable(true);
+    m_toggleLockedAction->setChecked(m_locked);
+    m_menuSeparator1->setSeparator(true);
+    m_menuSeparator2->setSeparator(true);
 }
 
 FancyMainWindow::FancyMainWindow(QWidget *parent) :
-    QMainWindow(parent), d(new FancyMainWindowPrivate)
+    QMainWindow(parent), d(new FancyMainWindowPrivate(this))
 {
+    connect(d->m_toggleLockedAction, SIGNAL(toggled(bool)),
+            this, SLOT(setLocked(bool)));
+    connect(d->m_resetLayoutAction, SIGNAL(triggered()),
+            this, SIGNAL(resetLayout()));
 }
 
 FancyMainWindow::~FancyMainWindow()
@@ -190,8 +212,8 @@ void FancyMainWindow::restoreSettings(const QSettings *settings)
 QHash<QString, QVariant> FancyMainWindow::saveSettings() const
 {
     QHash<QString, QVariant> settings;
-    settings.insert(QLatin1String("State"), saveState(1));
-    settings.insert(QLatin1String("Locked"), d->m_locked);
+    settings.insert(QLatin1String(stateKeyC), saveState(settingsVersion));
+    settings.insert(QLatin1String(lockedKeyC), d->m_locked);
     for (int i = 0; i < d->m_dockWidgetActiveState.count(); ++i) {
         settings.insert(d->m_dockWidgets.at(i)->objectName(),
                            d->m_dockWidgetActiveState.at(i));
@@ -201,10 +223,11 @@ QHash<QString, QVariant> FancyMainWindow::saveSettings() const
 
 void FancyMainWindow::restoreSettings(const QHash<QString, QVariant> &settings)
 {
-    QByteArray ba = settings.value("State", QByteArray()).toByteArray();
+    QByteArray ba = settings.value(QLatin1String(stateKeyC), QByteArray()).toByteArray();
     if (!ba.isEmpty())
-        restoreState(ba, 1);
-    d->m_locked = settings.value("Locked", true).toBool();
+        restoreState(ba, settingsVersion);
+    d->m_locked = settings.value(QLatin1String("Locked"), true).toBool();
+    d->m_toggleLockedAction->setChecked(d->m_locked);
     for (int i = 0; i < d->m_dockWidgetActiveState.count(); ++i) {
         d->m_dockWidgetActiveState[i] = settings.value(d->m_dockWidgets.at(i)->objectName(), false).toBool();
     }
@@ -220,4 +243,44 @@ bool FancyMainWindow::isLocked() const
     return d->m_locked;
 }
 
+QMenu *FancyMainWindow::createPopupMenu()
+{
+    QMenu *menu = QMainWindow::createPopupMenu();
+    menu->addAction(d->m_menuSeparator1);
+    menu->addAction(d->m_toggleLockedAction);
+    menu->addAction(d->m_menuSeparator2);
+    menu->addAction(d->m_resetLayoutAction);
+    return menu;
+}
+
+QAction *FancyMainWindow::menuSeparator1() const
+{
+    return d->m_menuSeparator1;
+}
+
+QAction *FancyMainWindow::toggleLockedAction() const
+{
+    return d->m_toggleLockedAction;
+}
+
+QAction *FancyMainWindow::menuSeparator2() const
+{
+    return d->m_menuSeparator2;
+}
+
+QAction *FancyMainWindow::resetLayoutAction() const
+{
+    return d->m_resetLayoutAction;
+}
+
+void FancyMainWindow::setDockActionsVisible(bool v)
+{
+    foreach(const QDockWidget *dockWidget, d->m_dockWidgets)
+        dockWidget->toggleViewAction()->setVisible(v);
+    d->m_toggleLockedAction->setVisible(v);
+    d->m_menuSeparator1->setVisible(v);
+    d->m_menuSeparator2->setVisible(v);
+    d->m_resetLayoutAction->setVisible(v);
+}
+
 } // namespace Utils
diff --git a/src/libs/utils/fancymainwindow.h b/src/libs/utils/fancymainwindow.h
index 35593ba7f5df26ce5e1ba86eff87868624a198fa..a9079fa2e88bc08aac68119b9e12a87ba53fd71e 100644
--- a/src/libs/utils/fancymainwindow.h
+++ b/src/libs/utils/fancymainwindow.h
@@ -42,6 +42,10 @@ namespace Utils {
 
 struct FancyMainWindowPrivate;
 
+// MainWindow with dock widgets and additional "lock" functionality
+// (locking the dock widgets in place) and "reset layout" functionality.
+// The dock actions and the additional actions should be accessible
+// in a Window-menu.
 class QTCREATOR_UTILS_EXPORT FancyMainWindow : public QMainWindow
 {
     Q_OBJECT
@@ -63,8 +67,23 @@ public:
     QHash<QString, QVariant> saveSettings() const;
     void restoreSettings(const QHash<QString, QVariant> &settings);
 
+    // Additional context menu actions
+    QAction *menuSeparator1() const;
+    QAction *toggleLockedAction() const;
+    QAction *menuSeparator2() const;
+    QAction *resetLayoutAction() const;
+
+    // Overwritten to add locked/reset.
+    virtual QMenu *createPopupMenu();
+
+signals:
+    // Emitted by resetLayoutAction(). Connect to a slot
+    // restoring the default layout.
+    void resetLayout();
+
 public slots:
     void setLocked(bool locked);
+    void setDockActionsVisible(bool v);
 
 protected:
     void hideEvent(QHideEvent *event);
diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index c5fe415692fabd3f3b4f18fdf4ceac39b1e66837..a0628c2af48b60e80e88e22734d239e9c52bd590 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -82,6 +82,7 @@ const char * const M_EDIT_ADVANCED       = "QtCreator.Menu.Edit.Advanced";
 const char * const M_TOOLS               = "QtCreator.Menu.Tools";
 const char * const M_WINDOW              = "QtCreator.Menu.Window";
 const char * const M_WINDOW_PANES        = "QtCreator.Menu.Window.Panes";
+const char * const M_WINDOW_VIEWS        = "QtCreator.Menu.Window.Views";
 const char * const M_HELP                = "QtCreator.Menu.Help";
 
 //contexts
@@ -193,6 +194,7 @@ const char * const G_EDIT_EDITOR         = "QtCreator.Group.Edit.Editor";
 // window menu groups
 const char * const G_WINDOW_SIZE         = "QtCreator.Group.Window.Size";
 const char * const G_WINDOW_PANES        = "QtCreator.Group.Window.Panes";
+const char * const G_WINDOW_VIEWS        = "QtCreator.Group.Window.Views";
 const char * const G_WINDOW_SPLIT        = "QtCreator.Group.Window.Split";
 const char * const G_WINDOW_NAVIGATE     = "QtCreator.Group.Window.Navigate";
 const char * const G_WINDOW_OTHER        = "QtCreator.Group.Window.Other";
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index af210ad35798eb4a39257e2f3d38111e8f37b2c2..292e7feb1bacef6ed693b1c254661c9b27321454 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -472,6 +472,7 @@ void MainWindow::registerDefaultContainers()
     menubar->addMenu(mwindow, Constants::G_WINDOW);
     mwindow->menu()->setTitle(tr("&Window"));
     mwindow->appendGroup(Constants::G_WINDOW_SIZE);
+    mwindow->appendGroup(Constants::G_WINDOW_VIEWS);
     mwindow->appendGroup(Constants::G_WINDOW_PANES);
     mwindow->appendGroup(Constants::G_WINDOW_SPLIT);
     mwindow->appendGroup(Constants::G_WINDOW_NAVIGATE);
@@ -714,7 +715,7 @@ void MainWindow::registerDefaultActions()
 #endif
     connect(m_toggleSideBarAction, SIGNAL(triggered(bool)), this, SLOT(setSidebarVisible(bool)));
     m_toggleSideBarButton->setDefaultAction(cmd->action());
-    mwindow->addAction(cmd, Constants::G_WINDOW_PANES);
+    mwindow->addAction(cmd, Constants::G_WINDOW_VIEWS);
     m_toggleSideBarAction->setEnabled(false);
 
 #ifndef Q_WS_MAC
@@ -727,6 +728,11 @@ void MainWindow::registerDefaultActions()
     connect(m_toggleFullScreenAction, SIGNAL(triggered(bool)), this, SLOT(setFullScreen(bool)));
 #endif
 
+    // Window->Views
+    ActionContainer *mviews = am->createMenu(Constants::M_WINDOW_VIEWS);
+    mwindow->addMenu(mviews, Constants::G_WINDOW_VIEWS);
+    mviews->menu()->setTitle(tr("&Views"));
+
     // About IDE Action
     icon = QIcon::fromTheme(QLatin1String("help-about"));
 #ifdef Q_WS_MAC
diff --git a/src/plugins/debugger/debuggeruiswitcher.cpp b/src/plugins/debugger/debuggeruiswitcher.cpp
index b04aab71c4365d53da962f75cc103947f823a9bc..662b90db425fa7fbd400dadeb8ab6d19a1bf7ee7 100644
--- a/src/plugins/debugger/debuggeruiswitcher.cpp
+++ b/src/plugins/debugger/debuggeruiswitcher.cpp
@@ -35,6 +35,7 @@
 
 #include <utils/savedaction.h>
 #include <utils/styledbar.h>
+#include <utils/qtcassert.h>
 #include <coreplugin/actionmanager/command.h>
 #include <debugger/debuggerconstants.h>
 #include <debugger/debuggeractions.h>
@@ -96,8 +97,6 @@ struct DebuggerUISwitcherPrivate
     bool m_isActiveMode;
     bool m_changingUI;
 
-    QAction *m_toggleLockedAction;
-
     const static int StackIndexRole = Qt::UserRole + 11;
 
     Core::ActionContainer *m_languageMenu;
@@ -115,7 +114,6 @@ DebuggerUISwitcherPrivate::DebuggerUISwitcherPrivate(DebuggerUISwitcher *q) :
     m_activeLanguage(-1),
     m_isActiveMode(false),
     m_changingUI(false),
-    m_toggleLockedAction(0),
     m_viewsMenu(0),
     m_debugMenu(0)
 {
@@ -134,10 +132,10 @@ DebuggerUISwitcher::DebuggerUISwitcher(Core::BaseMode *mode, QObject* parent) :
     connect(Core::ModeManager::instance(), SIGNAL(currentModeChanged(Core::IMode*)),
             SLOT(modeChanged(Core::IMode*)));
 
-
     d->m_debugMenu = am->actionContainer(ProjectExplorer::Constants::M_DEBUG);
 
-    d->m_viewsMenu = am->createMenu(Debugger::Constants::M_DEBUG_VIEWS);
+    d->m_viewsMenu = am->actionContainer(QLatin1String(Core::Constants::M_WINDOW_VIEWS));
+    QTC_ASSERT(d->m_viewsMenu, return)
     d->m_languageMenu = am->createMenu(Debugger::Constants::M_DEBUG_LANGUAGES);
 
     d->m_languageActionGroup->setExclusive(true);
@@ -178,6 +176,7 @@ int DebuggerUISwitcher::activeLanguageId() const
 void DebuggerUISwitcher::modeChanged(Core::IMode *mode)
 {
     d->m_isActiveMode = (mode->id() == Debugger::Constants::MODE_DEBUG);
+    d->m_mainWindow->setDockActionsVisible(d->m_isActiveMode);
     hideInactiveWidgets();
 }
 
@@ -214,35 +213,19 @@ void DebuggerUISwitcher::createViewsMenuItems()
     QList<int> globalcontext;
     globalcontext << Core::Constants::C_GLOBAL_ID;
 
-    Core::Command *cmd = 0;
-
-    d->m_toggleLockedAction = new QAction(tr("Locked"), this);
-    d->m_toggleLockedAction->setCheckable(true);
-    d->m_toggleLockedAction->setChecked(true);
-    connect(d->m_toggleLockedAction, SIGNAL(toggled(bool)),
-            d->m_mainWindow, SLOT(setLocked(bool)));
-
-    QAction *sep = new QAction(this);
-    sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("Debugger.Sep.Views"), globalcontext);
-    d->m_debugMenu->addAction(cmd);
-
     QMenu *mLang = d->m_languageMenu->menu();
     mLang->setTitle(tr("&Languages"));
     d->m_debugMenu->addMenu(d->m_languageMenu, Core::Constants::G_DEFAULT_THREE);
 
-    QMenu *m = d->m_viewsMenu->menu();
-    m->setTitle(tr("&Views"));
-    d->m_debugMenu->addMenu(d->m_viewsMenu, Core::Constants::G_DEFAULT_THREE);
-
-    m->addSeparator();
-    m->addAction(d->m_toggleLockedAction);
-    m->addSeparator();
-
-    QAction *resetToSimpleAction = d->m_viewsMenu->menu()->addAction(tr("Reset to default layout"));
-    connect(resetToSimpleAction, SIGNAL(triggered()),
-            SLOT(resetDebuggerLayout()));
-
+    // Add menu items
+    Core::Command *cmd = am->registerAction(d->m_mainWindow->menuSeparator1(), QLatin1String("Debugger.Views.Separator1"), globalcontext);
+    d->m_viewsMenu->addAction(cmd);
+    cmd = am->registerAction(d->m_mainWindow->toggleLockedAction(), QLatin1String("Debugger.Views.ToggleLocked"), globalcontext);
+    d->m_viewsMenu->addAction(cmd);
+    cmd = am->registerAction(d->m_mainWindow->menuSeparator2(), QLatin1String("Debugger.Views.Separator2"), globalcontext);
+    d->m_viewsMenu->addAction(cmd);
+    cmd = am->registerAction(d->m_mainWindow->resetLayoutAction(), QLatin1String("Debugger.Views.ResetSimple"), globalcontext);
+    d->m_viewsMenu->addAction(cmd);
 }
 
 DebuggerUISwitcher *DebuggerUISwitcher::instance()
@@ -345,6 +328,8 @@ QWidget *DebuggerUISwitcher::createMainWindow(Core::BaseMode *mode)
     d->m_mainWindow = new DebuggerMainWindow(this);
     d->m_mainWindow->setTabPosition(Qt::AllDockWidgetAreas, QTabWidget::North);
     d->m_mainWindow->setDocumentMode(true);
+    connect(d->m_mainWindow, SIGNAL(resetLayout()),
+            this, SLOT(resetDebuggerLayout()));
 
     QBoxLayout *editorHolderLayout = new QVBoxLayout;
     editorHolderLayout->setMargin(0);
@@ -407,12 +392,13 @@ QDockWidget *DebuggerUISwitcher::createDockWidget(const QString &langName, QWidg
     QList<int> langContext = d->m_contextsForLanguage.value(d->m_languages.indexOf(langName));
 
     Core::ActionManager *am = Core::ICore::instance()->actionManager();
-    Core::Command *cmd = am->registerAction(dockWidget->toggleViewAction(),
+    QAction *action = dockWidget->toggleViewAction();
+    Core::Command *cmd = am->registerAction(action,
                          "Debugger." + dockWidget->objectName(), langContext);
     cmd->setAttribute(Core::Command::CA_Hide);
     d->m_viewsMenu->addAction(cmd);
 
-    d->m_viewsMenuItems.append(qMakePair(d->m_languages.indexOf(langName), dockWidget->toggleViewAction()));
+    d->m_viewsMenuItems.append(qMakePair(d->m_languages.indexOf(langName), action));
 
     return dockWidget;
 }
@@ -464,7 +450,6 @@ void DebuggerUISwitcher::readSettings()
     QSettings *s = Core::ICore::instance()->settings();
     s->beginGroup(QLatin1String("DebugMode"));
     d->m_mainWindow->restoreSettings(s);
-    d->m_toggleLockedAction->setChecked(d->m_mainWindow->isLocked());
     s->endGroup();
 
     foreach(Internal::DebugToolWindow *toolWindow, d->m_dockWidgets) {
@@ -483,6 +468,7 @@ void DebuggerUISwitcher::initialize()
         changeDebuggerUI(d->m_languages.first());
     }
     hideInactiveWidgets();
+    d->m_mainWindow->setDockActionsVisible(false);
 }
 
 void DebuggerUISwitcher::resetDebuggerLayout()
diff --git a/src/plugins/debugger/debuggeruiswitcher.h b/src/plugins/debugger/debuggeruiswitcher.h
index f2c9ee809895f298d8b0fb4d04669da089867cec..75390ea425f77e59b24ea0a0b143ba9176cb6725 100644
--- a/src/plugins/debugger/debuggeruiswitcher.h
+++ b/src/plugins/debugger/debuggeruiswitcher.h
@@ -114,6 +114,7 @@ private:
     void createViewsMenuItems();
     void readSettings();
     void writeSettings() const;
+
     QWidget *createContents(Core::BaseMode *mode);
     QWidget *createMainWindow(Core::BaseMode *mode);
 
diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp
index 67278084c34abc50c380422e5bbaa8bfb97681c0..177e44af4876fc8318d5c5d643b77488fddde9c7 100644
--- a/src/plugins/designer/formeditorw.cpp
+++ b/src/plugins/designer/formeditorw.cpp
@@ -145,7 +145,6 @@ FormEditorW::FormEditorW() :
     m_fwm(0),
     m_core(Core::ICore::instance()),
     m_initStage(RegisterPlugins),
-    m_viewMenu(0),
     m_actionGroupEditMode(0),
     m_actionPrint(0),
     m_actionPreview(0),
@@ -219,13 +218,15 @@ FormEditorW::~FormEditorW()
 
 // Add an actioon to toggle the view state of a dock window
 void FormEditorW::addDockViewAction(Core::ActionManager *am,
+                                    Core::ActionContainer *viewMenu,
                                     int index, const QList<int> &context,
                                     const QString &title, const QString &id)
 {
     if (const QDockWidget *dw = m_editorWidget->designerDockWidgets()[index]) {
         QAction *action = dw->toggleViewAction();
         action->setText(title);
-        addToolAction(action, am, context, id, m_viewMenu, QString());
+        Core::Command *cmd = addToolAction(action, am, context, id, viewMenu, QString());
+        cmd->setAttribute(Core::Command::CA_Hide);
     }
 }
 
@@ -233,37 +234,36 @@ void FormEditorW::setupViewActions()
 {
     // Populate "View" menu of form editor menu
     Core::ActionManager *am = m_core->actionManager();
-    QList<int> globalcontext;
-    globalcontext << m_core->uniqueIDManager()->uniqueIdentifier(Core::Constants::C_GLOBAL);
+    Core::ActionContainer *viewMenu = am->actionContainer(QLatin1String(Core::Constants::M_WINDOW_VIEWS));
+    QTC_ASSERT(viewMenu, return)
 
-    addDockViewAction(am, WidgetBoxSubWindow, globalcontext,
+    addDockViewAction(am, viewMenu, WidgetBoxSubWindow, m_contexts,
                       tr("Widget box"), QLatin1String("FormEditor.WidgetBox"));
 
-    addDockViewAction(am, ObjectInspectorSubWindow, globalcontext,
+    addDockViewAction(am, viewMenu, ObjectInspectorSubWindow, m_contexts,
                       tr("Object Inspector"), QLatin1String("FormEditor.ObjectInspector"));
 
-    addDockViewAction(am, PropertyEditorSubWindow, globalcontext,
+    addDockViewAction(am, viewMenu, PropertyEditorSubWindow, m_contexts,
                       tr("Property Editor"), QLatin1String("FormEditor.PropertyEditor"));
 
-    addDockViewAction(am, SignalSlotEditorSubWindow, globalcontext,
+    addDockViewAction(am, viewMenu, SignalSlotEditorSubWindow, m_contexts,
                       tr("Signals && Slots Editor"), QLatin1String("FormEditor.SignalsAndSlotsEditor"));
 
-    addDockViewAction(am, ActionEditorSubWindow, globalcontext,
+    addDockViewAction(am, viewMenu, ActionEditorSubWindow, m_contexts,
                       tr("Action Editor"), QLatin1String("FormEditor.ActionEditor"));
+    // Lock/Reset
+    Core::Command *cmd = addToolAction(m_editorWidget->menuSeparator1(), am, m_contexts, QLatin1String("FormEditor.SeparatorLock"), viewMenu, QString());
+    cmd->setAttribute(Core::Command::CA_Hide);
 
-    createSeparator(this, am, globalcontext, m_viewMenu, QLatin1String("FormEditor.Menu.Tools.Views.SeparatorLock"));
+    cmd = addToolAction(m_editorWidget->toggleLockedAction(), am, m_contexts, QLatin1String("FormEditor.Locked"), viewMenu, QString());
+    cmd->setAttribute(Core::Command::CA_Hide);
 
-    m_lockAction = new QAction(tr("Locked"), this);
-    m_lockAction->setCheckable(true);
-    addToolAction(m_lockAction, am, globalcontext, QLatin1String("FormEditor.Locked"), m_viewMenu, QString());
-    connect(m_lockAction, SIGNAL(toggled(bool)), m_editorWidget, SLOT(setLocked(bool)));
+    cmd = addToolAction(m_editorWidget->menuSeparator2(), am, m_contexts, QLatin1String("FormEditor.SeparatorReset"), viewMenu, QString());
+    cmd->setAttribute(Core::Command::CA_Hide);
 
-    createSeparator(this, am, globalcontext, m_viewMenu, QLatin1String("FormEditor.Menu.Tools.Views.SeparatorReset"));
-
-    m_resetLayoutAction = new QAction(tr("Reset to Default Layout"), this);
-    m_lockAction->setChecked(m_editorWidget->isLocked());
-    connect(m_resetLayoutAction, SIGNAL(triggered()), m_editorWidget, SLOT(resetToDefaultLayout()));
-    addToolAction(m_resetLayoutAction, am, globalcontext, QLatin1String("FormEditor.ResetToDefaultLayout"), m_viewMenu, QString());
+    cmd = addToolAction(m_editorWidget->resetLayoutAction(), am, m_contexts, QLatin1String("FormEditor.ResetToDefaultLayout"), viewMenu, QString());
+    connect(m_editorWidget, SIGNAL(resetLayout()), m_editorWidget, SLOT(resetToDefaultLayout()));
+    cmd->setAttribute(Core::Command::CA_Hide);
 }
 
 void FormEditorW::fullInit()
@@ -538,13 +538,6 @@ void FormEditorW::setupActions()
     connect(m_actionAboutPlugins,  SIGNAL(triggered()), m_fwm, SLOT(aboutPlugins()));
     m_actionAboutPlugins->setEnabled(false);
 
-    // Views. Populated later on.
-    createSeparator(this, am, m_contexts, mformtools, QLatin1String("FormEditor.Menu.Tools.SeparatorViews"));
-
-    m_viewMenu = am->createMenu(QLatin1String(M_FORMEDITOR_VIEWS));
-    m_viewMenu->menu()->setTitle(tr("Views"));
-    mformtools->addMenu(m_viewMenu);
-
     // FWM
     connect(m_fwm, SIGNAL(activeFormWindowChanged(QDesignerFormWindowInterface *)), this, SLOT(activeFormWindowChanged(QDesignerFormWindowInterface *)));
 }
@@ -653,18 +646,17 @@ QAction *FormEditorW::createEditModeAction(QActionGroup *ag,
 }
 
 // Create a tool action
-void FormEditorW::addToolAction(QAction *a,
-                   Core::ActionManager *am,
-                   const QList<int> &context,
-                   const QString &name,
-                   Core::ActionContainer *c1,
-                   const QString &keySequence)
+Core::Command *FormEditorW::addToolAction(QAction *a, Core::ActionManager *am,
+                                          const QList<int> &context, const QString &name,
+                                          Core::ActionContainer *c1, const QString &keySequence)
 {
     Core::Command *command = am->registerAction(a, name, context);
     if (!keySequence.isEmpty())
         command->setDefaultKeySequence(QKeySequence(keySequence));
-    bindShortcut(command, a);
+    if (!a->isSeparator())
+        bindShortcut(command, a);
     c1->addAction(command);
+    return command;
 }
 
 EditorData FormEditorW::createEditor(QWidget *parent)
diff --git a/src/plugins/designer/formeditorw.h b/src/plugins/designer/formeditorw.h
index 0cd32d7b947fb8a45ea46401a559f25ecb0570e8..b2627a1c6b87af1f3d501ed6f20ca34b91ba81b7 100644
--- a/src/plugins/designer/formeditorw.h
+++ b/src/plugins/designer/formeditorw.h
@@ -136,7 +136,9 @@ private:
 
     void setupActions();
     void setupViewActions();
-    inline void addDockViewAction(Core::ActionManager *am, int index,
+    inline void addDockViewAction(Core::ActionManager *am,
+                                  Core::ActionContainer *viewMenu,
+                                  int index,
                                   const QList<int> &context,
                                   const QString &title, const QString &id);
 
@@ -154,12 +156,9 @@ private:
                                          int toolNumber,
                                          const QString &iconName = QString(),
                                          const QString &keySequence = QString());
-    void addToolAction(QAction *a,
-                       Core::ActionManager *am,
-                       const QList<int> &context,
-                       const QString &name,
-                       Core::ActionContainer *c1,
-                       const QString &keySequence = QString());
+    Core::Command *addToolAction(QAction *a, Core::ActionManager *am,
+                                 const QList<int> &context, const QString &name,
+                                 Core::ActionContainer *c1, const QString &keySequence = QString());
     QToolBar *createEditorToolBar() const;
 
     static FormEditorW *m_self;
@@ -171,7 +170,6 @@ private:
     InitializationStage m_initStage;
 
     QWidget *m_designerSubWindows[Designer::Constants::DesignerSubWindowCount];
-    Core::ActionContainer *m_viewMenu;
 
     QAction *m_lockAction;
     QAction *m_resetLayoutAction;