┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphinmainwindow.cpp7
-rw-r--r--src/views/dolphinview.cpp13
2 files changed, 16 insertions, 4 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index a4dbb6f34..847301434 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -677,6 +677,13 @@ void DolphinMainWindow::readProperties(const KConfigGroup& group)
Q_ASSERT(cont);
}
+ // The right view must be activated before the URL is set. Changing
+ // the URL in the right view will emit the right URL navigator's
+ // urlChanged(KUrl) signal, which is connected to the changeUrl(KUrl)
+ // slot. That slot will change the URL in the left view if it is still
+ // active. See https://bugs.kde.org/show_bug.cgi?id=330047.
+ setActiveViewContainer(cont);
+
cont->setUrl(secondaryUrl);
const bool editable = group.readEntry(tabProperty("Secondary Editable", i), false);
cont->urlNavigator()->setUrlEditable(editable);
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp
index 63b53f2e2..9f5f48a86 100644
--- a/src/views/dolphinview.cpp
+++ b/src/views/dolphinview.cpp
@@ -1662,11 +1662,16 @@ void DolphinView::updateWritableState()
const bool wasFolderWritable = m_isFolderWritable;
m_isFolderWritable = false;
- const KFileItem item = m_model->rootItem();
- if (!item.isNull()) {
- KFileItemListProperties capabilities(KFileItemList() << item);
- m_isFolderWritable = capabilities.supportsWriting();
+ KFileItem item = m_model->rootItem();
+ if (item.isNull()) {
+ // Try to find out if the URL is writable even if the "root item" is
+ // null, see https://bugs.kde.org/show_bug.cgi?id=330001
+ item = KFileItem(KFileItem::Unknown, KFileItem::Unknown, url(), true);
}
+
+ KFileItemListProperties capabilities(KFileItemList() << item);
+ m_isFolderWritable = capabilities.supportsWriting();
+
if (m_isFolderWritable != wasFolderWritable) {
emit writeStateChanged(m_isFolderWritable);
}