ActionManager::ActionManager(QObject *parent) : QObject(parent), runAction(new QAction(QIcon(":/icons/images/run.png"), tr("Run tests"), this)), waitAction(new QAction(QIcon(":/icons/images/stop.png"), tr("Stop coverage execution"), this)), renderAction(new QAction(QIcon(":/icons/images/render.png"), tr("Show code coverage"), this)) { renderAction->setCheckable(true); // Add action to menu Core::ActionManager *pluginActionManager = Core::ICore::actionManager(); Core::Command *runCommand = pluginActionManager->registerAction(runAction, RUN_ACTION_ID, Core::Context(Core::Constants::C_GLOBAL)); Core::Command *renderCommand = pluginActionManager->registerAction(renderAction, RENDER_ACTION_ID, Core::Context(Core::Constants::C_GLOBAL)); runCommand->setKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_E); renderCommand->setKeySequence(Qt::CTRL + Qt::Key_H); Core::ActionContainer *menu = pluginActionManager->createMenu(MENU_ID); menu->menu()->setTitle(tr("CodeCoverage")); menu->addAction(runCommand); menu->addAction(renderCommand); pluginActionManager->actionContainer(Core::Constants::M_TOOLS)->addMenu(menu); // Add action as icon to left bar Core::ModeManager *modeManager = Core::ModeManager::instance(); modeManager->addAction(runAction, RUN_ACTION_PRIORITY); modeManager->addAction(waitAction, WAIT_ACTION_PRIORITY); }
/*! Initializes the plugin. Returns true on success. Plugins want to register objects with the plugin manager here. \a error_message can be used to pass an error message to the plugin system, if there was any. */ bool HelloWorldPlugin::initialize(const QStringList &arguments, QString *error_message) { Q_UNUSED(arguments) Q_UNUSED(error_message) // Get the primary access point to the workbench. Core::ICore *core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); // Create a unique context id for our own view, that will be used for the // menu entry later. QList<int> context = QList<int>() << core->uniqueIDManager()->uniqueIdentifier( QLatin1String("HelloWorld.MainView")); // Create an action to be triggered by a menu entry QAction *helloWorldAction = new QAction("Say \"&Hello World!\"", this); connect(helloWorldAction, SIGNAL(triggered()), SLOT(sayHelloWorld())); // Register the action with the action manager Core::ActionManagerInterface *actionManager = core->actionManager(); Core::ICommand *command = actionManager->registerAction( helloWorldAction, "HelloWorld.HelloWorldAction", context); // Create our own menu to place in the Tools menu Core::IActionContainer *helloWorldMenu = actionManager->createMenu("HelloWorld.HelloWorldMenu"); QMenu *menu = helloWorldMenu->menu(); menu->setTitle(tr("&Hello World")); menu->setEnabled(true); // Add the Hello World action command to the menu helloWorldMenu->addAction(command); // Request the Tools menu and add the Hello World menu to it Core::IActionContainer *toolsMenu = actionManager->actionContainer(Core::Constants::M_TOOLS); toolsMenu->addMenu(helloWorldMenu); // Add a mode with a push button based on BaseMode. Like the BaseView, // it will unregister itself from the plugin manager when it is deleted. Core::BaseMode *baseMode = new Core::BaseMode; baseMode->setUniqueModeName("HelloWorld.HelloWorldMode"); baseMode->setName(tr("Hello world!")); baseMode->setIcon(QIcon()); baseMode->setPriority(0); baseMode->setWidget(new QPushButton(tr("Hello World PushButton!"))); addAutoReleasedObject(baseMode); // Add the Hello World action command to the mode manager (with 0 priority) Core::ModeManager *modeManager = core->modeManager(); modeManager->addAction(command, 0); return true; }
// ---------- DesignModeWidget DesignModeWidget::DesignModeWidget(QWidget *parent) : QWidget(parent), m_syncWithTextEdit(false), m_mainSplitter(0), m_leftSideBar(0), m_rightSideBar(0), m_isDisabled(false), m_showSidebars(true), m_initStatus(NotInitialized), m_warningWidget(0) { m_undoAction = new QAction(tr("&Undo"), this); connect(m_undoAction, SIGNAL(triggered()), this, SLOT(undo())); m_redoAction = new QAction(tr("&Redo"), this); connect(m_redoAction, SIGNAL(triggered()), this, SLOT(redo())); m_deleteAction = new Utils::ParameterAction(tr("Delete"), tr("Delete \"%1\""), Utils::ParameterAction::EnabledWithParameter, this); connect(m_deleteAction, SIGNAL(triggered()), this, SLOT(deleteSelected())); m_cutAction = new Utils::ParameterAction(tr("Cu&t"), tr("Cut \"%1\""), Utils::ParameterAction::EnabledWithParameter, this); connect(m_cutAction, SIGNAL(triggered()), this, SLOT(cutSelected())); m_copyAction = new Utils::ParameterAction(tr("&Copy"), tr("Copy \"%1\""), Utils::ParameterAction::EnabledWithParameter, this); connect(m_copyAction, SIGNAL(triggered()), this, SLOT(copySelected())); m_pasteAction = new Utils::ParameterAction(tr("&Paste"), tr("Paste \"%1\""), Utils::ParameterAction::EnabledWithParameter, this); connect(m_pasteAction, SIGNAL(triggered()), this, SLOT(paste())); m_selectAllAction = new Utils::ParameterAction(tr("Select &All"), tr("Select All \"%1\""), Utils::ParameterAction::EnabledWithParameter, this); connect(m_selectAllAction, SIGNAL(triggered()), this, SLOT(selectAll())); m_hideSidebarsAction = new QAction(tr("Toggle Full Screen"), this); connect(m_hideSidebarsAction, SIGNAL(triggered()), this, SLOT(toggleSidebars())); m_restoreDefaultViewAction = new QAction(tr("&Restore Default View"), this); connect(m_restoreDefaultViewAction, SIGNAL(triggered()), SLOT(restoreDefaultView())); m_toggleLeftSidebarAction = new QAction(tr("Toggle &Left Sidebar"), this); connect(m_toggleLeftSidebarAction, SIGNAL(triggered()), SLOT(toggleLeftSidebar())); m_toggleRightSidebarAction = new QAction(tr("Toggle &Right Sidebar"), this); connect(m_toggleRightSidebarAction, SIGNAL(triggered()), SLOT(toggleRightSidebar())); Core::ModeManager *modeManager = Core::ModeManager::instance(); Core::IMode *designmode = modeManager->mode(Core::Constants::MODE_DESIGN); m_outputPlaceholderSplitter = new Core::MiniSplitter; m_outputPanePlaceholder = new StyledOutputpanePlaceHolder(designmode, m_outputPlaceholderSplitter); }