diff options
Diffstat (limited to 'src/sessionmanager.cpp')
-rw-r--r-- | src/sessionmanager.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/sessionmanager.cpp b/src/sessionmanager.cpp index 04b67a89..20b35016 100644 --- a/src/sessionmanager.cpp +++ b/src/sessionmanager.cpp @@ -77,12 +77,19 @@ void SessionManager::saveSession() { MainView *mv = w.data()->mainView(); QDomElement window = document.createElement("window"); + int tabInserted = 0; for (signed int tabNo = 0; tabNo < mv->count(); tabNo++) { + // IGNORE about urls + KUrl u = mv->webTab(tabNo)->url(); + if (u.protocol() == QL1S("about")) + continue; + + tabInserted++; QDomElement tab = document.createElement("tab"); tab.setAttribute("title", mv->webTab(tabNo)->view()->title()); // redundant, but needed for closedSites() // as there's not way to read out the historyData - tab.setAttribute("url", mv->webTab(tabNo)->url().url()); // Use WebTab's instead of WebView's url() to fix about links + tab.setAttribute("url", u.url()); if (mv->tabBar()->currentIndex() == tabNo) { tab.setAttribute("currentTab", 1); @@ -95,7 +102,8 @@ void SessionManager::saveSession() tab.appendChild(historySection); window.appendChild(tab); } - session.appendChild(window); + if (tabInserted > 0) + session.appendChild(window); } QTextStream TextStream(&sessionFile); @@ -118,10 +126,6 @@ bool SessionManager::restoreSessionFromScratch() return false; } - bool windowAlreadyOpen = (rApp->mainWindowList().count() == 0) ? false : true; - if (!windowAlreadyOpen) - rApp->newMainWindow(false); - QDomDocument document("session"); if (!document.setContent(&sessionFile, false)) { @@ -134,7 +138,7 @@ bool SessionManager::restoreSessionFromScratch() QDomElement window = document.elementsByTagName("window").at(winNo).toElement(); int currentTab = 0; - MainView *mv = rApp->mainWindowList().at(0).data()->mainView(); //last mainwindow created will be first one in mainwindow list + MainView *mv = rApp->newMainWindow(false)->mainView(); for (unsigned int tabNo = 0; tabNo < window.elementsByTagName("tab").length(); tabNo++) { @@ -150,10 +154,10 @@ bool SessionManager::restoreSessionFromScratch() QDataStream readingStream(&history, QIODevice::ReadOnly); readingStream >> *(view->history()); - // Get sure about urls are loaded + // IGNORE "eventual" about urls KUrl u = KUrl(tab.attribute("url")); if (u.protocol() == QL1S("about")) - view->load(u); + continue; } mv->tabBar()->setCurrentIndex(currentTab); |