┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/views/dolphinview.cpp15
-rw-r--r--src/views/dolphinview.h9
2 files changed, 19 insertions, 5 deletions
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp
index 303ee34af..e879f67fc 100644
--- a/src/views/dolphinview.cpp
+++ b/src/views/dolphinview.cpp
@@ -248,9 +248,12 @@ void DolphinView::setMode(Mode mode)
if (mode != m_mode) {
ViewProperties props(viewPropertiesUrl());
props.setViewMode(mode);
- props.save();
- applyViewProperties();
+ // We pass the new ViewProperties to applyViewProperties, rather than
+ // storing them on disk and letting applyViewProperties() read them
+ // from there, to prevent that changing the view mode fails if the
+ // .directory file is not writable (see bug 318534).
+ applyViewProperties(props);
}
}
@@ -1508,9 +1511,13 @@ void DolphinView::loadDirectory(const KUrl& url, bool reload)
void DolphinView::applyViewProperties()
{
- m_view->beginTransaction();
-
const ViewProperties props(viewPropertiesUrl());
+ applyViewProperties(props);
+}
+
+void DolphinView::applyViewProperties(const ViewProperties& props)
+{
+ m_view->beginTransaction();
const Mode mode = props.viewMode();
if (m_mode != mode) {
diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h
index e5e9834b9..86bc5c159 100644
--- a/src/views/dolphinview.h
+++ b/src/views/dolphinview.h
@@ -709,11 +709,18 @@ private:
/**
* Applies the view properties which are defined by the current URL
- * to the DolphinView properties.
+ * to the DolphinView properties. The view properties are read from a
+ * .directory file either in the current directory, or in the
+ * share/apps/dolphin/view_properties/ subfolder of the user's .kde folder.
*/
void applyViewProperties();
/**
+ * Applies the given view properties to the DolphinView.
+ */
+ void applyViewProperties(const ViewProperties& props);
+
+ /**
* Applies the m_mode property to the corresponding
* itemlayout-property of the KItemListView.
*/