#include "%PluginName:l%plugin.%CppHeaderSuffix%" #include "%PluginName:l%constants.%CppHeaderSuffix%" #include #include #include #include #include #include #include #include #include #include #include using namespace %PluginName%::Internal; %PluginName%Plugin::%PluginName%Plugin() { // Create your members } %PluginName%Plugin::~%PluginName%Plugin() { // Unregister objects from the plugin manager's object pool // Delete members } bool %PluginName%Plugin::initialize(const QStringList &arguments, QString *errorString) { // Register objects in the plugin manager's object pool // Load settings // Add actions to menus // Connect to other plugins' signals // In the initialize function, a plugin can be sure that the plugins it // depends on have initialized their members. Q_UNUSED(arguments) Q_UNUSED(errorString) QAction *action = new QAction(tr("%PluginName% action"), this); Core::Command *cmd = Core::ActionManager::registerAction(action, Constants::ACTION_ID, Core::Context(Core::Constants::C_GLOBAL)); cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Alt+Meta+A"))); connect(action, SIGNAL(triggered()), this, SLOT(triggerAction())); Core::ActionContainer *menu = Core::ActionManager::createMenu(Constants::MENU_ID); menu->menu()->setTitle(tr("%PluginName%")); menu->addAction(cmd); Core::ActionManager::actionContainer(Core::Constants::M_TOOLS)->addMenu(menu); return true; } void %PluginName%Plugin::extensionsInitialized() { // Retrieve objects from the plugin manager's object pool // In the extensionsInitialized function, a plugin can be sure that all // plugins that depend on it are completely initialized. } ExtensionSystem::IPlugin::ShutdownFlag %PluginName%Plugin::aboutToShutdown() { // Save settings // Disconnect from signals that are not needed during shutdown // Hide UI (if you add UI that is not in the main window directly) return SynchronousShutdown; } void %PluginName%Plugin::triggerAction() { QMessageBox::information(Core::ICore::mainWindow(), tr("Action triggered"), tr("This is an action from %PluginName%.")); } Q_EXPORT_PLUGIN2(%PluginName%, %PluginName%Plugin)