From: Peter Penz Date: Fri, 30 Nov 2007 18:42:17 +0000 (+0000) Subject: enable session management X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/0e6e4bf39170d9e327d3448064bc64cdfe15bdd5 enable session management CCMAIL: faure@kde.org svn path=/trunk/KDE/kdebase/apps/; revision=743357 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 63feb996e..5a7f32797 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -445,34 +445,44 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) KXmlGuiWindow::closeEvent(event); } -void DolphinMainWindow::saveProperties(KConfig* config) +void DolphinMainWindow::saveProperties(KConfigGroup& group) { - KConfigGroup primaryView = config->group("Primary view"); - primaryView.writeEntry("Url", m_viewContainer[PrimaryView]->url().url()); - primaryView.writeEntry("Editable Url", m_viewContainer[PrimaryView]->isUrlEditable()); - if (m_viewContainer[SecondaryView] != 0) { - KConfigGroup secondaryView = config->group("Secondary view"); - secondaryView.writeEntry("Url", m_viewContainer[SecondaryView]->url().url()); - secondaryView.writeEntry("Editable Url", m_viewContainer[SecondaryView]->isUrlEditable()); + DolphinViewContainer* cont = m_viewContainer[PrimaryView]; + group.writeEntry("Primary Url", cont->url().url()); + group.writeEntry("Primary Editable Url", cont->isUrlEditable()); + + cont = m_viewContainer[SecondaryView]; + if (cont != 0) { + group.writeEntry("Secondary Url", cont->url().url()); + group.writeEntry("Secondary Editable Url", cont->isUrlEditable()); } } -void DolphinMainWindow::readProperties(KConfig* config) +void DolphinMainWindow::readProperties(const KConfigGroup& group) { - const KConfigGroup primaryViewGroup = config->group("Primary view"); - m_viewContainer[PrimaryView]->setUrl(primaryViewGroup.readEntry("Url")); - bool editable = primaryViewGroup.readEntry("Editable Url", false); - m_viewContainer[PrimaryView]->urlNavigator()->setUrlEditable(editable); + DolphinViewContainer* cont = m_viewContainer[PrimaryView]; - if (config->hasGroup("Secondary view")) { - const KConfigGroup secondaryViewGroup = config->group("Secondary view"); - if (m_viewContainer[PrimaryView] == 0) { + cont->setUrl(group.readEntry("Primary Url")); + bool editable = group.readEntry("Primary Editable Url", false); + cont->urlNavigator()->setUrlEditable(editable); + + cont = m_viewContainer[SecondaryView]; + const QString secondaryUrl = group.readEntry("Secondary Url"); + if (!secondaryUrl.isEmpty()) { + if (cont == 0) { + // a secondary view should be shown, but no one is available + // currently -> create a new view toggleSplitView(); + cont = m_viewContainer[SecondaryView]; + Q_ASSERT(cont != 0); } - m_viewContainer[PrimaryView]->setUrl(secondaryViewGroup.readEntry("Url")); - editable = secondaryViewGroup.readEntry("Editable Url", false); - m_viewContainer[PrimaryView]->urlNavigator()->setUrlEditable(editable); - } else if (m_viewContainer[SecondaryView] != 0) { + + cont->setUrl(secondaryUrl); + bool editable = group.readEntry("Secondary Editable Url", false); + cont->urlNavigator()->setUrlEditable(editable); + } else if (cont != 0) { + // no secondary view should be shown, but the default setting shows + // one already -> close the view toggleSplitView(); } } diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 278ffffc7..53b209642 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -160,21 +160,14 @@ signals: void requestItemInfo(const KFileItem& item); protected: - /** @see QMainWindow::closeEvent */ + /** @see QMainWindow::closeEvent() */ virtual void closeEvent(QCloseEvent* event); - /** - * This method is called when it is time for the app to save its - * properties for session management purposes. - */ - void saveProperties(KConfig*); + /** @see KMainWindow::saveProperties() */ + virtual void saveProperties(KConfigGroup& group); - /** - * This method is called when this app is restored. The KConfig - * object points to the session management config file that was saved - * with @ref saveProperties - */ - void readProperties(KConfig*); + /** @see KMainWindow::readProperties() */ + virtual void readProperties(const KConfigGroup& group); private slots: /** Updates the 'Create New...' sub menu. */ diff --git a/src/main.cpp b/src/main.cpp index 395c5e1b8..c42cc044f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -80,7 +80,7 @@ int main(int argc, char **argv) QApplication::setWindowIcon(KIcon("system-file-manager")); KGlobal::locale()->insertCatalog("libkonq"); // needed for applications using libkonq - if (false /*app.isSessionRestored()*/) { + if (app.isSessionRestored()) { int n = 1; while (KMainWindow::canBeRestored(n)) { const QString className = KXmlGuiWindow::classNameOfToplevel(n);