void ShowViewHandler::OpenOther(IWorkbenchWindow::Pointer window) { const IWorkbenchPage::Pointer page = window->GetActivePage(); if (page.IsNull()) { return; } QtShowViewDialog dialog(window.GetPointer(), WorkbenchPlugin::GetDefault()->GetViewRegistry()); int returnCode = dialog.exec(); if (returnCode == QDialog::Rejected) { return; } const QList<QString> descriptors = dialog.GetSelection(); for (QString id : descriptors) { try { this->OpenView(id, QString(), window); } catch (const PartInitException& e) { BERRY_WARN << e.what(); // StatusUtil.handleStatus(e.getStatus(), // WorkbenchMessages.ShowView_errorTitle // + ": " + e.getMessage(), //$NON-NLS-1$ // StatusManager.SHOW); } } }
void ShowViewHandler::OpenOther(IWorkbenchWindow::Pointer window) { const IWorkbenchPage::Pointer page = window->GetActivePage(); if (page.IsNull()) { return; } IShowViewDialog::Pointer dialog = Tweaklets::Get(WorkbenchTweaklet::KEY)->CreateStandardDialog(WorkbenchTweaklet::DIALOG_ID_SHOW_VIEW).Cast<IShowViewDialog>(); if (dialog.IsNull()) return; int returnCode = dialog->Open(); if (returnCode == IDialog::CANCEL) { return; } const std::vector<IViewDescriptor::Pointer> descriptors = dialog->GetSelection(); for (unsigned int i = 0; i < descriptors.size(); ++i) { try { this->OpenView(descriptors[i]->GetId(), window); } catch (PartInitException e) { // StatusUtil.handleStatus(e.getStatus(), // WorkbenchMessages.ShowView_errorTitle // + ": " + e.getMessage(), //$NON-NLS-1$ // StatusManager.SHOW); } } }
Object::Pointer SavePerspectiveHandler::Execute(const SmartPointer<const berry::ExecutionEvent>& event) { IWorkbenchWindow::Pointer activeWorkbenchWindow = HandlerUtil::GetActiveWorkbenchWindow(event); if (activeWorkbenchWindow.IsNotNull()) { IWorkbenchPage::Pointer page = activeWorkbenchWindow->GetActivePage(); if (page.IsNotNull()) { PerspectiveDescriptor::Pointer descriptor(page->GetPerspective().Cast<PerspectiveDescriptor>()); if (descriptor.IsNotNull()) { if (descriptor->IsSingleton()) { SaveSingleton(page); } else { SaveNonSingleton(page, descriptor); } } } } return Object::Pointer(); }
void ShowViewHandler::OpenView(const QString& viewId, const QString& secondaryId, IWorkbenchWindow::Pointer activeWorkbenchWindow) { const IWorkbenchPage::Pointer activePage = activeWorkbenchWindow->GetActivePage(); if (activePage.IsNull()) { return; } activePage->ShowView(viewId, secondaryId, IWorkbenchPage::VIEW_ACTIVATE); }
void ShowViewHandler::OpenView(const std::string& viewId, IWorkbenchWindow::Pointer activeWorkbenchWindow) { const IWorkbenchPage::Pointer activePage = activeWorkbenchWindow->GetActivePage(); if (activePage.IsNull()) { return; } activePage->ShowView(viewId); }
Object::Pointer ResetPerspectiveHandler::Execute(const SmartPointer<const ExecutionEvent>& event) { IWorkbenchWindow::Pointer activeWorkbenchWindow = HandlerUtil::GetActiveWorkbenchWindow(event); if (activeWorkbenchWindow.IsNotNull()) { WorkbenchPage::Pointer page = activeWorkbenchWindow->GetActivePage().Cast<WorkbenchPage>(); if (page.IsNotNull()) { IPerspectiveDescriptor::Pointer descriptor = page->GetPerspective(); if (descriptor.IsNotNull()) { bool offerRevertToBase = false; if (PerspectiveDescriptor::Pointer desc = descriptor.Cast<PerspectiveDescriptor>()) { offerRevertToBase = desc->IsPredefined() && desc->HasCustomDefinition(); } if (offerRevertToBase) { QString message = QString("Do you want to reset the current %1 perspective to its saved state?").arg( descriptor->GetLabel()); // bool toggleState = false; // MessageDialogWithToggle dialog = MessageDialogWithToggle.open( // MessageDialog.QUESTION, activeWorkbenchWindow.getShell(), // WorkbenchMessages.RevertPerspective_title, message, // WorkbenchMessages.RevertPerspective_option, // toggleState, null, null, SWT.SHEET); // if (dialog.getReturnCode() == IDialogConstants.YES_ID) { // if (dialog.getToggleState()) { // PerspectiveRegistry* reg = PlatformUI::GetWorkbench()->GetPerspectiveRegistry(); // reg->RevertPerspective(descriptor); // } // page->ResetPerspective(); // } qDebug() << "****** " << message; } else { QString message = QString("Do you want to reset the current %1 perspective to its defaults?").arg( descriptor->GetLabel()); if (QMessageBox::question(activeWorkbenchWindow->GetShell()->GetControl(), "Reset Perspective", message, QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) { page->ResetPerspective(); } } } } } return Object::Pointer(); }
IWorkbenchPart::Pointer WorkbenchIntroManager::GetIntroAdapterPart() const { QList<IWorkbenchWindow::Pointer> windows(this->workbench->GetWorkbenchWindows()); for (int i = 0; i < windows.size(); i++) { IWorkbenchWindow::Pointer window = windows[i]; WorkbenchPage::Pointer page = window->GetActivePage().Cast<WorkbenchPage>(); if (!page) { continue; } if (IntroIsView()) { QList<IPerspectiveDescriptor::Pointer> perspDescs(page->GetOpenPerspectives()); for (int j = 0; j < perspDescs.size(); j++) { IPerspectiveDescriptor::Pointer descriptor = perspDescs[j]; IViewReference::Pointer reference = page->FindPerspective(descriptor)->FindView( IntroConstants::INTRO_VIEW_ID); if (reference) { return reference->GetView(false); } } } else { QList<IEditorReference::Pointer> references(page->FindEditors(IEditorInput::Pointer(nullptr), IntroConstants::INTRO_EDITOR_ID, IWorkbenchPage::MATCH_ID)); Q_ASSERT(references.size() < 2); if (references.size() == 1) return references.front()->GetEditor(false); } } return IWorkbenchPart::Pointer(nullptr); }