void KonqSidebarBookmarkModule::slotOpenNewWindow() { KonqSidebarBookmarkItem *bi = dynamic_cast<KonqSidebarBookmarkItem*>( tree()->selectedItem() ); if (!bi) return; KParts::OpenUrlArguments args; args.setActionRequestedByUser(true); KParts::BrowserArguments browserArgs; browserArgs.setForcesNewWindow(true); emit tree()->createNewWindow(bi->bookmark().url(), args, browserArgs); }
void WebView::contextMenuEvent(QContextMenuEvent* e) { m_result = page()->mainFrame()->hitTestContent(e->pos()); // Clear the previous collection entries first... m_actionCollection->clear(); KParts::BrowserExtension::PopupFlags flags = KParts::BrowserExtension::DefaultPopupItems; KParts::BrowserExtension::ActionGroupMap mapAction; QString mimeType (QL1S("text/html")); bool forcesNewWindow = false; QUrl emitUrl; if (m_result.isContentEditable()) { if (m_result.element().hasAttribute(QL1S("disabled"))) { e->accept(); return; } flags |= KParts::BrowserExtension::ShowTextSelectionItems; editableContentActionPopupMenu(mapAction); } else if (isMultimediaElement(m_result.element())) { multimediaActionPopupMenu(mapAction); } else if (!m_result.linkUrl().isValid()) { if (m_result.imageUrl().isValid()) { emitUrl = m_result.imageUrl(); extractMimeTypeFor(emitUrl, mimeType); } else { flags |= KParts::BrowserExtension::ShowBookmark; flags |= KParts::BrowserExtension::ShowReload; emitUrl = m_part->url(); if (m_result.isContentSelected()) { flags |= KParts::BrowserExtension::ShowTextSelectionItems; selectActionPopupMenu(mapAction); } else { flags |= KParts::BrowserExtension::ShowNavigationItems; } } partActionPopupMenu(mapAction); } else { flags |= KParts::BrowserExtension::ShowBookmark; flags |= KParts::BrowserExtension::ShowReload; flags |= KParts::BrowserExtension::IsLink; emitUrl = m_result.linkUrl(); linkActionPopupMenu(mapAction); if (emitUrl.isLocalFile()) mimeType = KMimeType::findByUrl(emitUrl, 0, true, false)->name(); else extractMimeTypeFor(emitUrl, mimeType); partActionPopupMenu(mapAction); // Show the OpenInThisWindow context menu item forcesNewWindow = (page()->currentFrame() != m_result.linkTargetFrame()); } if (!mapAction.isEmpty()) { KParts::OpenUrlArguments args; KParts::BrowserArguments bargs; args.setMimeType(mimeType); bargs.setForcesNewWindow(forcesNewWindow); e->accept(); emit m_part->browserExtension()->popupMenu(e->globalPos(), emitUrl, static_cast<mode_t>(-1), args, bargs, flags, mapAction); return; } KWebView::contextMenuEvent(e); }