diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2013-03-30 18:00:09 +0100 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2013-04-02 09:22:58 +0200 |
commit | 2c282bb56aba0fd951a7798ebc2a75f3a4ebe742 (patch) | |
tree | 01601db0f7054dda5ee8361fcd2702b3df37305a /src/sessionmanager.cpp | |
parent | Implement session saving, inspired from kate session management (diff) | |
download | rekonq-2c282bb56aba0fd951a7798ebc2a75f3a4ebe742.tar.xz |
Load a clean session and close dialog
Diffstat (limited to 'src/sessionmanager.cpp')
-rw-r--r-- | src/sessionmanager.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/sessionmanager.cpp b/src/sessionmanager.cpp index 00a3064e..a4345635 100644 --- a/src/sessionmanager.cpp +++ b/src/sessionmanager.cpp @@ -456,6 +456,9 @@ bool SessionManager::restoreYourSession(int index) if (!readSessionDocument(document,sessionPath + sessionName)) return false; + // trace the windows to delete + RekonqWindowList wList = rApp->rekonqWindowList(); + for (unsigned int winNo = 0; winNo < document.elementsByTagName("window").length(); winNo++) { QDomElement window = document.elementsByTagName("window").at(winNo).toElement(); @@ -466,7 +469,13 @@ bool SessionManager::restoreYourSession(int index) tw->tabWidget()->setCurrentIndex(currentTab); } - + + Q_FOREACH(const QWeakPointer<RekonqWindow> &w, wList) + { + if (!w.isNull()) + w.data()->close(); + } + return true; } @@ -475,14 +484,15 @@ void SessionManager::manageSession() { kDebug() << "OK ,manage session.."; - QPointer<KDialog> dialog = new KDialog(rApp->rekonqWindow()); + QPointer<KDialog> dialog = new KDialog(); dialog->setCaption(i18nc("@title:window", "Manage Session")); dialog->setButtons(KDialog::Ok); dialog->button(KDialog::Ok)->setText(i18n("Done")); SessionWidget widg; - widg.show(); + connect(&widg,SIGNAL(closeDialog()),dialog, SLOT(accept())); + dialog->setMainWidget(&widg); dialog->exec(); } |