diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2009-09-04 00:48:41 +0200 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2009-09-04 00:48:41 +0200 |
commit | 1e32755e0c8caa5be6c12dd6675a477e5dae9155 (patch) | |
tree | 561740ef6654371d458d8a6140e6975b11d521c6 | |
parent | Improving Multi Windows implementation (diff) | |
download | rekonq-1e32755e0c8caa5be6c12dd6675a477e5dae9155.tar.xz |
Open in new Window Action
-rw-r--r-- | src/application.cpp | 12 | ||||
-rw-r--r-- | src/application.h | 3 | ||||
-rw-r--r-- | src/webview.cpp | 16 | ||||
-rw-r--r-- | src/webview.h | 2 |
4 files changed, 30 insertions, 3 deletions
diff --git a/src/application.cpp b/src/application.cpp index 44b0142e..3a0b1606 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -310,7 +310,16 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) } WebView *webView = 0; - MainWindow *w = mainWindow(); + MainWindow *w = 0; + + if(type == Rekonq::NewWindow) + { + w = newMainWindow(); + } + else + { + w = mainWindow(); + } switch(type) { @@ -328,6 +337,7 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) case Rekonq::NewBackTab: webView = w->mainView()->newWebView(false); break; + case Rekonq::NewWindow: case Rekonq::CurrentTab: webView = w->mainView()->currentWebView(); w->mainView()->urlBar()->setUrl(loadingUrl.prettyUrl()); diff --git a/src/application.h b/src/application.h index 14e4c1f6..60aec259 100644 --- a/src/application.h +++ b/src/application.h @@ -78,7 +78,8 @@ namespace Rekonq CurrentTab, ///< open url in current tab SettingOpenTab, ///< open url according to users settings NewCurrentTab, ///< open url in new tab and make it current - NewBackTab ///< open url in new tab in background + NewBackTab, ///< open url in new tab in background + NewWindow ///< open url in new window }; } diff --git a/src/webview.cpp b/src/webview.cpp index 85e0e996..19c5e421 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -116,7 +116,12 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) // link actions a = pageAction(QWebPage::OpenLinkInNewWindow); a->setText(i18n("Open Link in New &Tab")); - a->setIcon(KIcon("window-new")); + a->setIcon(KIcon("tab-new")); + menu.addAction(a); + + a = new KAction(KIcon("window-new"), i18n("Open Link in New &Window"), this); + a->setData( result.linkUrl() ); + connect(a, SIGNAL( triggered(bool) ), this, SLOT( openLinkInNewWindow() ) ); menu.addAction(a); a = pageAction(QWebPage::DownloadLinkToDisk); @@ -211,6 +216,7 @@ void WebView::contextMenuEvent(QContextMenuEvent *event) { // page action menu.addAction(mainwindow->actionByName("new_tab")); + menu.addAction(mainwindow->actionByName("new_window")); menu.addSeparator(); } @@ -349,3 +355,11 @@ void WebView::printFrame() { Application::instance()->mainWindow()->printRequested(page()->currentFrame()); } + + +void WebView::openLinkInNewWindow() +{ + KAction *a = qobject_cast<KAction*>(sender()); + KUrl url(a->data().toUrl()); + Application::instance()->loadUrl(url, Rekonq::NewWindow); +} diff --git a/src/webview.h b/src/webview.h index 259c1d83..49bdccfb 100644 --- a/src/webview.h +++ b/src/webview.h @@ -73,6 +73,8 @@ private slots: void slotLoadFinished(bool); void printFrame(); + + void openLinkInNewWindow(); private: WebPage *m_page; |