diff options
-rw-r--r-- | src/application.cpp | 25 | ||||
-rw-r--r-- | src/application.h | 4 | ||||
-rw-r--r-- | src/mainview.cpp | 3 |
3 files changed, 27 insertions, 5 deletions
diff --git a/src/application.cpp b/src/application.cpp index e0570a5b..48fb1a3e 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -450,16 +450,15 @@ SyncManager *Application::syncManager() return m_syncManager.data(); } - -void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) +WebTab* Application::loadUrl(const KUrl& url, QWebHistory* webHistory, const Rekonq::OpenType& type) { if (url.isEmpty()) - return; + return 0; if (!url.isValid()) { KMessageBox::error(0, i18n("Malformed URL:\n%1", url.url(KUrl::RemoveTrailingSlash))); - return; + return 0; } Rekonq::OpenType newType = type; @@ -517,6 +516,24 @@ void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) FilterUrlJob *job = new FilterUrlJob(view, url.pathOrUrl(), this); Weaver::instance()->enqueue(job); } + + if (webHistory) + { + QByteArray historyBytes; + QDataStream historyStream(&historyBytes, QIODevice::ReadWrite); + + historyStream << *webHistory; + historyStream.device()->seek(0); + historyStream >> *(view->history()); + } + + return tab; +} + + +void Application::loadUrl(const KUrl& url, const Rekonq::OpenType& type) +{ + Q_UNUSED(loadUrl(url, 0, type)); } diff --git a/src/application.h b/src/application.h index 2689e3f5..5e078756 100644 --- a/src/application.h +++ b/src/application.h @@ -43,6 +43,7 @@ #include <QtCore/QDateTime> #include <QtCore/QWeakPointer> +class QWebHistory; // Forward Declarations class AdBlockManager; @@ -55,6 +56,7 @@ class OpenSearchManager; class SessionManager; class UserAgentManager; class SyncManager; +class WebTab; class KAction; @@ -104,6 +106,8 @@ public: { return _privateBrowsingAction; }; + + WebTab *loadUrl(const KUrl& url, QWebHistory *webHistory, const Rekonq::OpenType& type = Rekonq::CurrentTab); public Q_SLOTS: /** diff --git a/src/mainview.cpp b/src/mainview.cpp index 19e5531d..9fa4d049 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -414,8 +414,9 @@ void MainView::cloneTab(int index) return; KUrl url = webTab(index)->url(); + QWebHistory * history = webTab(index)->view()->history(); - rApp->loadUrl(url, Rekonq::NewTab); + rApp->loadUrl(url, history, Rekonq::NewTab); } |