summaryrefslogtreecommitdiff
path: root/src/application.cpp
diff options
context:
space:
mode:
authorDavid E. Narváez <david.narvaez@computer.org>2012-03-08 07:40:20 -0500
committerDavid E. Narváez <david.narvaez@computer.org>2012-03-08 07:40:20 -0500
commit3aab58b17eec73d3a7134650ec059c31f51bd108 (patch)
tree5b4142a9405d01534edd566eeb440121889f6881 /src/application.cpp
parentDon't show dots after "Save Link" text if we are not going to ask for (diff)
downloadrekonq-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.cpp25
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));
}