diff options
author | Lindsay Mathieson <lindsay@lindsay-desktop.(none)> | 2010-05-16 15:08:26 +1000 |
---|---|---|
committer | Lindsay Mathieson <lindsay@lindsay-desktop.(none)> | 2010-05-16 15:08:26 +1000 |
commit | 696a9dc552d16f1b76921636a0284cea048059c6 (patch) | |
tree | 131eaaa8539a90bc8adcbfd2170682198a4d73b3 /src | |
parent | This commit should fix a lot of troubles on fast urlbar typing (diff) | |
download | rekonq-696a9dc552d16f1b76921636a0284cea048059c6.tar.xz |
Adds current tab to session state (bug 237720)
Diffstat (limited to 'src')
-rw-r--r-- | src/mainview.cpp | 1 | ||||
-rw-r--r-- | src/sessionmanager.cpp | 27 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/mainview.cpp b/src/mainview.cpp index 4fbd5959..58247d53 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -123,6 +123,7 @@ void MainView::postLaunch() // Session Manager connect(this, SIGNAL(tabsChanged()), Application::sessionManager(), SLOT(saveSession())); + connect(this, SIGNAL(currentChanged(int)), Application::sessionManager(), SLOT(saveSession())); m_addTabButton->setDefaultAction(m_parentWindow->actionByName("new_tab")); diff --git a/src/sessionmanager.cpp b/src/sessionmanager.cpp index 6aada509..97d9bc36 100644 --- a/src/sessionmanager.cpp +++ b/src/sessionmanager.cpp @@ -35,6 +35,7 @@ #include "mainwindow.h" #include "mainview.h" #include "webtab.h" +#include "tabbar.h" // KDE Includes #include <KStandardDirs> @@ -79,6 +80,10 @@ void SessionManager::saveSession() { out << mv->webTab(i)->url().toEncoded() << "\n"; } + + // Current Tab for window + out << "currenttab\n"; + out << mv->tabBar()->currentIndex() << "\n"; } sessionFile.close(); m_safe = true; @@ -108,10 +113,30 @@ bool SessionManager::restoreSession() kDebug() << "New Window line: " << line; Application::instance()->loadUrl( KUrl(line), Rekonq::NewWindow); } + else if (line == QString("currenttab")) + { + kDebug() << "Set Current Tab Line" << endl; + line = in.readLine(); + bool ok; + int idx = line.toInt(&ok); + if (ok) + { + kDebug() << "Setting current tab to " << idx << endl; + // Get last mainwindow created which will be first one in mainwindow list + MainWindowList wl = Application::instance()->mainWindowList(); + if (wl.count() > 0) + { + MainView *mv = wl[0].data()->mainView(); + emit mv->tabBar()->setCurrentIndex(idx); + } + } + else + kDebug() << "Failed to convert currenttab index line <" << line << "> to in value" << endl; + } else { kDebug() << "New Current Tab line: " << line; - Application::instance()->loadUrl( KUrl(line), Rekonq::NewCurrentTab); + Application::instance()->loadUrl( KUrl(line), Rekonq::NewCurrentTab); } } while (!line.isEmpty()); |