diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/application.cpp | 13 | ||||
| -rw-r--r-- | src/sessionmanager.cpp | 22 | 
2 files changed, 17 insertions, 18 deletions
| diff --git a/src/application.cpp b/src/application.cpp index f5547fa2..942e0876 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -185,7 +185,7 @@ int Application::newInstance()      // so, we have 8 possible cases...      bool isFirstLoad = m_mainWindows.isEmpty();      bool areThereArguments = (args->count() > 0); -    bool isRekonqCrashed = ReKonfig::recoverOnCrash(); +    bool isRekonqCrashed = (ReKonfig::recoverOnCrash() > 0);      // note that isRekonqCrashed is always true if it is not the first load      // !isFirstLoad -> isRekonqCrashed @@ -198,6 +198,7 @@ int Application::newInstance()      if (isRekonqCrashed && isFirstLoad)      {          loadUrl(KUrl("about:closedTabs"), Rekonq::NewWindow); +        mainWindow()->currentTab()->showMessageBar();      }      if (areThereArguments) @@ -213,7 +214,7 @@ int Application::newInstance()          }          // first argument: 99% of the time we have just that... -        if (isFirstLoad && !isRekonqCrashed) +        if (isFirstLoad)          {              // No windows in the current desktop? No windows at all?              // Create a new one and load there sites... @@ -245,8 +246,6 @@ int Application::newInstance()              for (int i = 1; i < urlList.count(); ++i)                  loadUrl(urlList.at(i), Rekonq::NewWindow);          } - -        KStartupInfo::appStarted();      }      else      { @@ -308,15 +307,11 @@ int Application::newInstance()          connect(bookmarkManager(), SIGNAL(openUrl(const KUrl&, const Rekonq::OpenType&)),                  instance(), SLOT(loadUrl(const KUrl&, const Rekonq::OpenType&))); -        // crash recovering -        if (ReKonfig::recoverOnCrash()) -        { -            mainWindow()->currentTab()->showMessageBar(); -        }          ReKonfig::setRecoverOnCrash(ReKonfig::recoverOnCrash() + 1);          saveConfiguration();      } +    KStartupInfo::appStarted();      return exitValue;  } 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); | 
