Object::Pointer QuitHandler::Execute(const SmartPointer<const ExecutionEvent>& event) { IWorkbenchWindow::Pointer activeWorkbenchWindow = HandlerUtil::GetActiveWorkbenchWindow(event); if (activeWorkbenchWindow.IsNull()) { // action has been disposed return Object::Pointer(); } activeWorkbenchWindow->GetWorkbench()->Close(); return Object::Pointer(); }
QtPerspectiveSwitcher::QtPerspectiveSwitcher(IWorkbenchWindow::Pointer window) : window(window) { QWidget* parent = static_cast<QWidget*>(window->GetShell()->GetControl()); this->setParent(parent); this->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); QActionGroup* perspGroup = new QActionGroup(this); IPerspectiveRegistry* perspRegistry = window->GetWorkbench()->GetPerspectiveRegistry(); std::vector<IPerspectiveDescriptor::Pointer> perspectives(perspRegistry->GetPerspectives()); for (std::vector<IPerspectiveDescriptor::Pointer>::iterator perspIt = perspectives.begin(); perspIt != perspectives.end(); ++perspIt) { QAction* perspAction = new QtOpenPerspectiveAction(window, *perspIt, perspGroup); perspIdToActionMap[QString::fromStdString((*perspIt)->GetId())] = perspAction; } this->addActions(perspGroup->actions()); perspListener = new QtPerspectiveSwitcherListener(this); window->AddPerspectiveListener(perspListener); }