]> cloud.milkyroute.net Git - dolphin.git/commitdiff
enable session management
authorPeter Penz <peter.penz19@gmail.com>
Fri, 30 Nov 2007 18:42:17 +0000 (18:42 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 30 Nov 2007 18:42:17 +0000 (18:42 +0000)
CCMAIL: faure@kde.org

svn path=/trunk/KDE/kdebase/apps/; revision=743357

src/dolphinmainwindow.cpp
src/dolphinmainwindow.h
src/main.cpp

index 63feb996ec3c07cd704eb802a1c2b2627c54fdcc..5a7f3279769da8feeb9012a9bead305bec4a4622 100644 (file)
@@ -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();
     }
 }
index 278ffffc74fc783c4be66677dd6c01fd38f59f74..53b20964282e83f923ef7eb0715c6c16e8d2c7d5 100644 (file)
@@ -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. */
index 395c5e1b83b6ce2291bfa4093152350463eda14a..c42cc044fd2c8b5e3e9997ee1d852a0b530f62da 100644 (file)
@@ -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);