From 023d863f934b130b1691afb95b6cf6a33cda1609 Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Thu, 15 Jul 2010 20:28:53 +0200
Subject: [PATCH] Adapt examples.

---
 .../examples/donothing/donothingplugin.cpp    |  4 +-
 .../examples/donothing/donothingplugin.h      |  2 +-
 .../examples/donothing/donothingplugin.pro    | 14 ++--
 .../menu/addingmenu/donothingplugin.cpp       | 33 ++++++----
 .../menu/addingmenu/donothingplugin.h         |  6 +-
 .../menu/addingmenu/donothingplugin.pro       | 15 +++--
 .../menu/placingmenu/donothingplugin.cpp      | 40 +++++-------
 .../menu/placingmenu/donothingplugin.h        |  5 +-
 .../menu/placingmenu/donothingplugin.pro      | 15 +++--
 .../registeringmenuitem/donothingplugin.cpp   | 26 +++++---
 .../registeringmenuitem/donothingplugin.h     |  2 +-
 .../registeringmenuitem/donothingplugin.pro   | 15 +++--
 .../DoNothing.pluginspec                      |  3 +-
 .../respondingtomenuitems/donothingplugin.cpp | 64 +++++++++++++++++++
 .../donothingplugin.h                         |  6 +-
 .../respondingtomenuitems/donothingplugin.pro | 21 ++++++
 .../respondtomenuitem/donothingplugin.cpp     | 57 -----------------
 .../respondtomenuitem/donothingplugin.pro     | 20 ------
 18 files changed, 180 insertions(+), 168 deletions(-)
 rename doc/pluginhowto/examples/menu/{respondtomenuitem => respondingtomenuitems}/DoNothing.pluginspec (90%)
 create mode 100644 doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.cpp
 rename doc/pluginhowto/examples/menu/{respondtomenuitem => respondingtomenuitems}/donothingplugin.h (87%)
 create mode 100644 doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.pro
 delete mode 100644 doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.cpp
 delete mode 100644 doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.pro

diff --git a/doc/pluginhowto/examples/donothing/donothingplugin.cpp b/doc/pluginhowto/examples/donothing/donothingplugin.cpp
index 1b651d0fa97..d13ec20e17b 100644
--- a/doc/pluginhowto/examples/donothing/donothingplugin.cpp
+++ b/doc/pluginhowto/examples/donothing/donothingplugin.cpp
@@ -27,9 +27,9 @@ bool DoNothingPlugin::initialize(const QStringList& args, QString *errMsg)
     return true;
 }
 
-void DoNothingPlugin::shutdown()
+ExtensionSystem::IPlugin::ShutdownFlag DoNothingPlugin::shutdown()
 {
-    // Do nothing
+    return SynchronousShutdown;
 }
 
 Q_EXPORT_PLUGIN(DoNothingPlugin)
diff --git a/doc/pluginhowto/examples/donothing/donothingplugin.h b/doc/pluginhowto/examples/donothing/donothingplugin.h
index 25356a74433..5cb641d7f36 100644
--- a/doc/pluginhowto/examples/donothing/donothingplugin.h
+++ b/doc/pluginhowto/examples/donothing/donothingplugin.h
@@ -12,7 +12,7 @@ public:
     ~DoNothingPlugin();
     void extensionsInitialized();
     bool initialize(const QStringList & arguments, QString * errorString);
-    void shutdown();
+    ShutdownFlag shutdown();
 };
 
 #endif // DONOTHING_PLUGIN_H
diff --git a/doc/pluginhowto/examples/donothing/donothingplugin.pro b/doc/pluginhowto/examples/donothing/donothingplugin.pro
index 5a017f626f4..954f62d199e 100644
--- a/doc/pluginhowto/examples/donothing/donothingplugin.pro
+++ b/doc/pluginhowto/examples/donothing/donothingplugin.pro
@@ -1,16 +1,16 @@
-QTC_SOURCE = C:/Work/QtCreator
-QTC_BUILD  = C:/Work/QtCreator/build
-
 TEMPLATE = lib
 TARGET = DoNothing
 
-IDE_SOURCE_TREE = $$QTC_SOURCE
-IDE_BUILD_TREE = $$QTC_BUILD
+isEmpty(QTC_SOURCE):IDE_SOURCE_TREE=$$PWD/../../../../
+else:IDE_SOURCE_TREE=$$(QTC_SOURCE)
+
+isEmpty(QTC_BUILD):IDE_BUILD_TREE=$$OUT_PWD/../../../../
+else:IDE_BUILD_TREE=$$(QTC_BUILD)
 
 PROVIDER = FooCompanyInc
 
-include($$QTC_SOURCE/src/qtcreatorplugin.pri)
-include($$QTC_SOURCE/src/plugins/coreplugin/coreplugin.pri)
+include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
+include($$IDE_SOURCE_TREE/src/plugins/coreplugin/coreplugin.pri)
 
 LIBS += -L$$IDE_PLUGIN_PATH/Nokia
 
diff --git a/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.cpp b/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.cpp
index 7fd1ff5cf65..e75da68ab74 100644
--- a/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.cpp
+++ b/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.cpp
@@ -2,12 +2,16 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/command.h>
+#include <coreplugin/actionmanager/actioncontainer.h>
 #include <coreplugin/icore.h>
-#include <QKeySequence>
+#include <coreplugin/icontext.h>
 
-#include <QtPlugin>
+#include <QKeySequence>
 #include <QStringList>
 #include <QMessageBox>
+#include <QAction>
+#include <QMenu>
+#include <QtPlugin>
 
 DoNothingPlugin::DoNothingPlugin()
 {
@@ -36,29 +40,32 @@ bool DoNothingPlugin::initialize(const QStringList& args, QString *errMsg)
     Core::ActionContainer* ac = am->createMenu("DoNothingPlugin.DoNothingMenu");
     ac->menu()->setTitle("DoNothing");
 
-    // Create a command for "About DoNothing".
-    QAction *action = new QAction(tr("About DoNothing"),this);
-    Core::Command* cmd = am->registerAction(action,"DoNothingPlugin.AboutDoNothing",QList<int>() << 0);
+    // Create a command for "DoNothing".
+    QAction *action = new QAction(tr("DoNothing"),this);
+    Core::Command* cmd = am->registerAction(action,
+        QLatin1String("DoNothingPlugin.DoNothing"),
+        Core::Context(Core::Constants::C_GLOBAL));
 
     // Add DoNothing menu to the menubar
-    am->actionContainer(Core::Constants::MENU_BAR)->addMenu(ac);
+    am->actionContainer(Core::Constants::M_TOOLS)->addMenu(ac, Core::Constants::G_DEFAULT_THREE);
 
-    // Add the "About DoNothing" action to the DoNothing menu
+    // Add the "DoNothing" action to the DoNothing menu
     ac->addAction(cmd);
 
     // Connect the action
-    connect(action, SIGNAL(triggered(bool)), this, SLOT(about()));
+    connect(action, SIGNAL(triggered(bool)), this, SLOT(performAction()));
     return true;
 }
 
-void DoNothingPlugin::shutdown()
+ExtensionSystem::IPlugin::ShutdownFlag DoNothingPlugin::shutdown()
 {
-    // Do nothing
+    return SynchronousShutdown;
 }
-void DoNothingPlugin::about()
+
+void DoNothingPlugin::performAction()
 {
-    QMessageBox::information(0, "About DoNothing Plugin",
-                             "Seriously dude, this plugin does nothing");
+    QMessageBox::information(0, tr("DoNothing Plugin"),
+                             tr("Seriously dude, this plugin does nothing"));
 }
 
 Q_EXPORT_PLUGIN(DoNothingPlugin)
diff --git a/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.h b/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.h
index 2cda18bae1a..d699f10ddc8 100644
--- a/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.h
+++ b/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.h
@@ -12,10 +12,10 @@ public:
     ~DoNothingPlugin();
     void extensionsInitialized();
     bool initialize(const QStringList & arguments, QString * errorString);
-    void shutdown();
-private slots:
-    void about();
+    ShutdownFlag shutdown();
 
+private slots:
+    void performAction();
 };
 
 #endif // DONOTHING_PLUGIN_H
diff --git a/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.pro b/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.pro
index ac69a5398e4..e290291cd23 100644
--- a/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.pro
+++ b/doc/pluginhowto/examples/menu/addingmenu/donothingplugin.pro
@@ -1,15 +1,16 @@
-QTC_SOURCE = C:/Work/QtCreator
-QTC_BUILD  = C:/Work/QtCreator/build
-
 TEMPLATE = lib
 TARGET = DoNothing
 
-IDE_SOURCE_TREE = $$QTC_SOURCE
-IDE_BUILD_TREE = $$QTC_BUILD
+isEmpty(QTC_SOURCE):IDE_SOURCE_TREE=$$PWD/../../../../../
+else:IDE_SOURCE_TREE=$$(QTC_SOURCE)
+
+isEmpty(QTC_BUILD):IDE_BUILD_TREE=$$OUT_PWD/../../../../../
+else:IDE_BUILD_TREE=$$(QTC_BUILD)
+
 PROVIDER = FooCompanyInc
 
-include($$QTC_SOURCE/src/qtcreatorplugin.pri)
-include($$QTC_SOURCE/src/plugins/coreplugin/coreplugin.pri)
+include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
+include($$IDE_SOURCE_TREE/src/plugins/coreplugin/coreplugin.pri)
 
 LIBS += -L$$IDE_PLUGIN_PATH/Nokia
 
diff --git a/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.cpp b/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.cpp
index 63cda06978a..5abbb51faa3 100644
--- a/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.cpp
+++ b/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.cpp
@@ -2,12 +2,16 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/command.h>
+#include <coreplugin/actionmanager/actioncontainer.h>
 #include <coreplugin/icore.h>
-#include <QKeySequence>
+#include <coreplugin/icontext.h>
 
-#include <QtPlugin>
+#include <QKeySequence>
 #include <QStringList>
 #include <QMessageBox>
+#include <QAction>
+#include <QMenu>
+#include <QtPlugin>
 
 DoNothingPlugin::DoNothingPlugin()
 {
@@ -32,35 +36,21 @@ bool DoNothingPlugin::initialize(const QStringList& args, QString *errMsg)
     // Fetch the action manager
     Core::ActionManager* am = Core::ICore::instance()->actionManager();
 
-    // Create a DoNothing menu
-    Core::ActionContainer* ac = am->createMenu("DoNothingPlugin.DoNothingMenu");
-    ac->menu()->setTitle("DoNothing");
-
-    // Create a command for "About DoNothing".
-    QAction *action = new QAction(tr("About DoNothing"),this);
-    Core::Command* cmd = am->registerAction(action,"DoNothingPlugin.AboutDoNothing",QList<int>() << 0);
+    // Create a command for "DoNothing".
+    QAction *action = new QAction(tr("DoNothing"),this);
+    Core::Command* cmd = am->registerAction(action,
+        QLatin1String("DoNothingPlugin.DoNothing"),
+        Core::Context(Core::Constants::C_GLOBAL));
 
-    // Insert the "DoNothing" menu between "Window" and "Help".
-    QMenu* windowMenu = am->actionContainer(Core::Constants::M_HELP)->menu();
-    QMenuBar* menuBar = am->actionContainer(Core::Constants::MENU_BAR)->menuBar();
-    menuBar->insertMenu(windowMenu->menuAction(), ac->menu());
+    // Add the "DoNothing" action to the tools menu
+    am->actionContainer(Core::Constants::M_TOOLS)->addAction(cmd, Core::Constants::G_DEFAULT_THREE);
 
-    // Add the "About DoNothing" action to the DoNothing menu
-    ac->addAction(cmd);
-
-    // Connect the action
-    connect(action, SIGNAL(triggered(bool)), this, SLOT(about()));
     return true;
 }
 
-void DoNothingPlugin::shutdown()
-{
-    // Do nothing
-}
-void DoNothingPlugin::about()
+ExtensionSystem::IPlugin::ShutdownFlag DoNothingPlugin::shutdown()
 {
-    QMessageBox::information(0, "About DoNothing Plugin",
-                             "Seriously dude, this plugin does nothing");
+    return SynchronousShutdown;
 }
 
 Q_EXPORT_PLUGIN(DoNothingPlugin)
diff --git a/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.h b/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.h
index 2cda18bae1a..5cb641d7f36 100644
--- a/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.h
+++ b/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.h
@@ -12,10 +12,7 @@ public:
     ~DoNothingPlugin();
     void extensionsInitialized();
     bool initialize(const QStringList & arguments, QString * errorString);
-    void shutdown();
-private slots:
-    void about();
-
+    ShutdownFlag shutdown();
 };
 
 #endif // DONOTHING_PLUGIN_H
diff --git a/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.pro b/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.pro
index ac69a5398e4..e290291cd23 100644
--- a/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.pro
+++ b/doc/pluginhowto/examples/menu/placingmenu/donothingplugin.pro
@@ -1,15 +1,16 @@
-QTC_SOURCE = C:/Work/QtCreator
-QTC_BUILD  = C:/Work/QtCreator/build
-
 TEMPLATE = lib
 TARGET = DoNothing
 
-IDE_SOURCE_TREE = $$QTC_SOURCE
-IDE_BUILD_TREE = $$QTC_BUILD
+isEmpty(QTC_SOURCE):IDE_SOURCE_TREE=$$PWD/../../../../../
+else:IDE_SOURCE_TREE=$$(QTC_SOURCE)
+
+isEmpty(QTC_BUILD):IDE_BUILD_TREE=$$OUT_PWD/../../../../../
+else:IDE_BUILD_TREE=$$(QTC_BUILD)
+
 PROVIDER = FooCompanyInc
 
-include($$QTC_SOURCE/src/qtcreatorplugin.pri)
-include($$QTC_SOURCE/src/plugins/coreplugin/coreplugin.pri)
+include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
+include($$IDE_SOURCE_TREE/src/plugins/coreplugin/coreplugin.pri)
 
 LIBS += -L$$IDE_PLUGIN_PATH/Nokia
 
diff --git a/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.cpp b/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.cpp
index a2e6bd507ce..ff03fc3c937 100644
--- a/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.cpp
+++ b/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.cpp
@@ -2,11 +2,16 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/command.h>
+#include <coreplugin/actionmanager/actioncontainer.h>
 #include <coreplugin/icore.h>
-#include <QKeySequence>
+#include <coreplugin/icontext.h>
 
-#include <QtPlugin>
+#include <QKeySequence>
 #include <QStringList>
+#include <QMessageBox>
+#include <QAction>
+#include <QMenu>
+#include <QtPlugin>
 
 DoNothingPlugin::DoNothingPlugin()
 {
@@ -31,18 +36,21 @@ bool DoNothingPlugin::initialize(const QStringList& args, QString *errMsg)
     // Fetch the action manager
     Core::ActionManager* am = Core::ICore::instance()->actionManager();
 
-    // Create a command for "About DoNothing".
-    Core::Command* cmd = am->registerAction(new QAction(tr("About DoNothing"),this),"DoNothingPlugin.AboutDoNothing",
-                                            QList<int>() <<Core::Constants::C_GLOBAL_ID);
+    // Create a command for "DoNothing".
+    QAction *action = new QAction(tr("DoNothing"),this);
+    Core::Command* cmd = am->registerAction(action,
+        QLatin1String("DoNothingPlugin.DoNothing"),
+        Core::Context(Core::Constants::C_GLOBAL));
+
+    // Add the "DoNothing" action to the tools menu
+    am->actionContainer(Core::Constants::M_TOOLS)->addAction(cmd);
 
-    // Add the command to Help menu
-    am->actionContainer(Core::Constants::M_HELP)->addAction(cmd);
     return true;
 }
 
-void DoNothingPlugin::shutdown()
+ExtensionSystem::IPlugin::ShutdownFlag DoNothingPlugin::shutdown()
 {
-    // Do nothing
+    return SynchronousShutdown;
 }
 
 Q_EXPORT_PLUGIN(DoNothingPlugin)
diff --git a/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.h b/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.h
index 25356a74433..5cb641d7f36 100644
--- a/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.h
+++ b/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.h
@@ -12,7 +12,7 @@ public:
     ~DoNothingPlugin();
     void extensionsInitialized();
     bool initialize(const QStringList & arguments, QString * errorString);
-    void shutdown();
+    ShutdownFlag shutdown();
 };
 
 #endif // DONOTHING_PLUGIN_H
diff --git a/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.pro b/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.pro
index ac69a5398e4..e290291cd23 100644
--- a/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.pro
+++ b/doc/pluginhowto/examples/menu/registeringmenuitem/donothingplugin.pro
@@ -1,15 +1,16 @@
-QTC_SOURCE = C:/Work/QtCreator
-QTC_BUILD  = C:/Work/QtCreator/build
-
 TEMPLATE = lib
 TARGET = DoNothing
 
-IDE_SOURCE_TREE = $$QTC_SOURCE
-IDE_BUILD_TREE = $$QTC_BUILD
+isEmpty(QTC_SOURCE):IDE_SOURCE_TREE=$$PWD/../../../../../
+else:IDE_SOURCE_TREE=$$(QTC_SOURCE)
+
+isEmpty(QTC_BUILD):IDE_BUILD_TREE=$$OUT_PWD/../../../../../
+else:IDE_BUILD_TREE=$$(QTC_BUILD)
+
 PROVIDER = FooCompanyInc
 
-include($$QTC_SOURCE/src/qtcreatorplugin.pri)
-include($$QTC_SOURCE/src/plugins/coreplugin/coreplugin.pri)
+include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
+include($$IDE_SOURCE_TREE/src/plugins/coreplugin/coreplugin.pri)
 
 LIBS += -L$$IDE_PLUGIN_PATH/Nokia
 
diff --git a/doc/pluginhowto/examples/menu/respondtomenuitem/DoNothing.pluginspec b/doc/pluginhowto/examples/menu/respondingtomenuitems/DoNothing.pluginspec
similarity index 90%
rename from doc/pluginhowto/examples/menu/respondtomenuitem/DoNothing.pluginspec
rename to doc/pluginhowto/examples/menu/respondingtomenuitems/DoNothing.pluginspec
index 59cf450b9f8..35e922e5af1 100644
--- a/doc/pluginhowto/examples/menu/respondtomenuitem/DoNothing.pluginspec
+++ b/doc/pluginhowto/examples/menu/respondingtomenuitems/DoNothing.pluginspec
@@ -1,8 +1,7 @@
 <plugin name="DoNothing" version="0.0.1">
     <vendor>FooCompanyInc</vendor>
     <copyright>FooCompanyInc</copyright>
-    <license>
-    GPL</license>
+    <license></license>
     <description>DO NOTHING</description>
     <url>http://www.FooCompanyInc.com</url>
     <dependencyList>
diff --git a/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.cpp b/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.cpp
new file mode 100644
index 00000000000..cd9f918a1f3
--- /dev/null
+++ b/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.cpp
@@ -0,0 +1,64 @@
+#include "donothingplugin.h"
+#include <coreplugin/coreconstants.h>
+#include <coreplugin/actionmanager/actionmanager.h>
+#include <coreplugin/actionmanager/command.h>
+#include <coreplugin/actionmanager/actioncontainer.h>
+#include <coreplugin/icore.h>
+#include <coreplugin/icontext.h>
+
+#include <QKeySequence>
+#include <QStringList>
+#include <QMessageBox>
+#include <QAction>
+#include <QMenu>
+#include <QtPlugin>
+
+DoNothingPlugin::DoNothingPlugin()
+{
+    // Do nothing
+}
+
+DoNothingPlugin::~DoNothingPlugin()
+{
+    // Do notning
+}
+
+void DoNothingPlugin::extensionsInitialized()
+{
+    // Do nothing
+}
+
+bool DoNothingPlugin::initialize(const QStringList& args, QString *errMsg)
+{
+    Q_UNUSED(args);
+    Q_UNUSED(errMsg);
+
+    // Fetch the action manager
+    Core::ActionManager* am = Core::ICore::instance()->actionManager();
+
+    // Create a command for "DoNothing".
+    QAction *action = new QAction(tr("DoNothing"),this);
+    Core::Command* cmd = am->registerAction(action,
+        QLatin1String("DoNothingPlugin.DoNothing"),
+        Core::Context(Core::Constants::C_GLOBAL));
+
+    // Add the "DoNothing" action to the tools menu
+    am->actionContainer(Core::Constants::M_TOOLS)->addAction(cmd, Core::Constants::G_DEFAULT_THREE);
+
+    // Connect the action
+    connect(action, SIGNAL(triggered(bool)), this, SLOT(performAction()));
+    return true;
+}
+
+ExtensionSystem::IPlugin::ShutdownFlag DoNothingPlugin::shutdown()
+{
+    return SynchronousShutdown;
+}
+
+void DoNothingPlugin::performAction()
+{
+    QMessageBox::information(0, tr("DoNothing Plugin"),
+                             tr("Seriously dude, this plugin does nothing"));
+}
+
+Q_EXPORT_PLUGIN(DoNothingPlugin)
diff --git a/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.h b/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.h
similarity index 87%
rename from doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.h
rename to doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.h
index 2cda18bae1a..d699f10ddc8 100644
--- a/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.h
+++ b/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.h
@@ -12,10 +12,10 @@ public:
     ~DoNothingPlugin();
     void extensionsInitialized();
     bool initialize(const QStringList & arguments, QString * errorString);
-    void shutdown();
-private slots:
-    void about();
+    ShutdownFlag shutdown();
 
+private slots:
+    void performAction();
 };
 
 #endif // DONOTHING_PLUGIN_H
diff --git a/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.pro b/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.pro
new file mode 100644
index 00000000000..e290291cd23
--- /dev/null
+++ b/doc/pluginhowto/examples/menu/respondingtomenuitems/donothingplugin.pro
@@ -0,0 +1,21 @@
+TEMPLATE = lib
+TARGET = DoNothing
+
+isEmpty(QTC_SOURCE):IDE_SOURCE_TREE=$$PWD/../../../../../
+else:IDE_SOURCE_TREE=$$(QTC_SOURCE)
+
+isEmpty(QTC_BUILD):IDE_BUILD_TREE=$$OUT_PWD/../../../../../
+else:IDE_BUILD_TREE=$$(QTC_BUILD)
+
+PROVIDER = FooCompanyInc
+
+include($$IDE_SOURCE_TREE/src/qtcreatorplugin.pri)
+include($$IDE_SOURCE_TREE/src/plugins/coreplugin/coreplugin.pri)
+
+LIBS += -L$$IDE_PLUGIN_PATH/Nokia
+
+HEADERS = donothingplugin.h
+SOURCES = donothingplugin.cpp
+OTHER_FILES = DoNothing.pluginspec
+
+
diff --git a/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.cpp b/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.cpp
deleted file mode 100644
index a093bae2947..00000000000
--- a/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "donothingplugin.h"
-#include <coreplugin/coreconstants.h>
-#include <coreplugin/actionmanager/actionmanager.h>
-#include <coreplugin/actionmanager/command.h>
-#include <coreplugin/icore.h>
-#include <QKeySequence>
-
-#include <QtPlugin>
-#include <QStringList>
-#include <QMessageBox>
-
-DoNothingPlugin::DoNothingPlugin()
-{
-    // Do nothing
-}
-
-DoNothingPlugin::~DoNothingPlugin()
-{
-    // Do notning
-}
-
-void DoNothingPlugin::extensionsInitialized()
-{
-    // Do nothing
-}
-
-bool DoNothingPlugin::initialize(const QStringList& args, QString *errMsg)
-{
-    Q_UNUSED(args);
-    Q_UNUSED(errMsg);
-
-    // Fetch the action manager
-    Core::ActionManager* am = Core::ICore::instance()->actionManager();
-
-    // Create a command for "About DoNothing".
-    QAction *action = new QAction(tr("About DoNothing"),this);
-    Core::Command* cmd = am->registerAction(action,"DoNothingPlugin.AboutDoNothing",QList<int>() << 0);
-    Core::ActionContainer* ac = am->createMenu("DoNothingPlugin.DoNothingMenu");
-
-    // Add the command to Help menu
-    am->actionContainer(Core::Constants::M_HELP)->addAction(cmd);
-
-    connect(action, SIGNAL(triggered(bool)), this, SLOT(about()));
-    return true;
-}
-
-void DoNothingPlugin::shutdown()
-{
-    // Do nothing
-}
-void DoNothingPlugin::about()
-{
-    QMessageBox::information(0, "About DoNothing Plugin",
-                             "Seriously dude, this plugin does nothing");
-}
-
-Q_EXPORT_PLUGIN(DoNothingPlugin)
diff --git a/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.pro b/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.pro
deleted file mode 100644
index ac69a5398e4..00000000000
--- a/doc/pluginhowto/examples/menu/respondtomenuitem/donothingplugin.pro
+++ /dev/null
@@ -1,20 +0,0 @@
-QTC_SOURCE = C:/Work/QtCreator
-QTC_BUILD  = C:/Work/QtCreator/build
-
-TEMPLATE = lib
-TARGET = DoNothing
-
-IDE_SOURCE_TREE = $$QTC_SOURCE
-IDE_BUILD_TREE = $$QTC_BUILD
-PROVIDER = FooCompanyInc
-
-include($$QTC_SOURCE/src/qtcreatorplugin.pri)
-include($$QTC_SOURCE/src/plugins/coreplugin/coreplugin.pri)
-
-LIBS += -L$$IDE_PLUGIN_PATH/Nokia
-
-HEADERS = donothingplugin.h
-SOURCES = donothingplugin.cpp
-OTHER_FILES = DoNothing.pluginspec
-
-
-- 
GitLab