diff options
author | David E. Narváez <david.narvaez@computer.org> | 2012-03-08 07:40:20 -0500 |
---|---|---|
committer | David E. Narváez <david.narvaez@computer.org> | 2012-03-08 07:40:20 -0500 |
commit | 3aab58b17eec73d3a7134650ec059c31f51bd108 (patch) | |
tree | 5b4142a9405d01534edd566eeb440121889f6881 /src/application.cpp | |
parent | Don't show dots after "Save Link" text if we are not going to ask for (diff) | |
download | rekonq-3aab58b17eec73d3a7134650ec059c31f51bd108.tar.xz |
Include Tab History when Cloning a Tab
Implemented through a new loadUrl method that allows for the caller to
specify the QWebHistory pointer from where to copy the history.
Redirected the original loadUrl slot to use this new method internally.
The method returns the WebTab * just in case we need to maninpulate the
created tab in the future.
REVIEW: 104082
Diffstat (limited to 'src/application.cpp')
-rw-r--r-- | src/application.cpp | 25 |
1 files changed, 21 insertions, 4 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)); } |