┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dolphinnavigatorswidgetaction.cpp17
-rw-r--r--src/dolphinurlnavigator.cpp10
-rw-r--r--src/dolphinurlnavigator.h10
3 files changed, 35 insertions, 2 deletions
diff --git a/src/dolphinnavigatorswidgetaction.cpp b/src/dolphinnavigatorswidgetaction.cpp
index cabeac4ed..6b76aad08 100644
--- a/src/dolphinnavigatorswidgetaction.cpp
+++ b/src/dolphinnavigatorswidgetaction.cpp
@@ -212,11 +212,24 @@ QWidget *DolphinNavigatorsWidgetAction::createNavigatorWidget(Side side) const
auto emptyTrashButton = newEmptyTrashButton(urlNavigator, navigatorWidget);
layout->addWidget(emptyTrashButton);
- connect(urlNavigator, &KUrlNavigator::urlChanged, this, [this]() {
+ connect(urlNavigator, &KUrlNavigator::urlChanged, this, [urlNavigator, this]() {
+ // Update URL navigator to show a server URL entry placeholder text if we
+ // just loaded the remote:/ page, to make it easier for users to figure out
+ // that they can enter arbitrary remote URLs. See bug 414670
+ if (urlNavigator->locationUrl().scheme() == QLatin1String("remote")) {
+ if (!urlNavigator->isUrlEditable()) {
+ urlNavigator->setUrlEditable(true);
+ }
+ urlNavigator->clearText();
+ urlNavigator->setPlaceholderText(i18n("Enter server URL (e.g. smb://[ip address])"));
+ } else {
+ urlNavigator->setPlaceholderText(QString());
+ }
+
// We have to wait for DolphinUrlNavigator::sizeHint() to update which
// happens a little bit later than when urlChanged is emitted.
this->m_adjustSpacingTimer->start();
- });
+ }, Qt::QueuedConnection);
auto trailingSpacing = new QWidget{navigatorWidget};
layout->addWidget(trailingSpacing);
diff --git a/src/dolphinurlnavigator.cpp b/src/dolphinurlnavigator.cpp
index 1dfe5420f..d8d325bb4 100644
--- a/src/dolphinurlnavigator.cpp
+++ b/src/dolphinurlnavigator.cpp
@@ -101,6 +101,16 @@ void DolphinUrlNavigator::setVisualState(const VisualState& visualState)
}
}
+void DolphinUrlNavigator::clearText() const
+{
+ editor()->lineEdit()->clear();
+}
+
+void DolphinUrlNavigator::setPlaceholderText(const QString &text)
+{
+ editor()->lineEdit()->setPlaceholderText(text);
+}
+
void DolphinUrlNavigator::slotReturnPressed()
{
if (!GeneralSettings::editableUrl()) {
diff --git a/src/dolphinurlnavigator.h b/src/dolphinurlnavigator.h
index 9bcc32b4d..1962e2f06 100644
--- a/src/dolphinurlnavigator.h
+++ b/src/dolphinurlnavigator.h
@@ -66,6 +66,16 @@ public:
*/
void setVisualState(const VisualState &visualState);
+ /**
+ * Clears the text in the text field
+ */
+ void clearText() const;
+
+ /**
+ * Displays placeholder text in the URL navigator
+ */
+ void setPlaceholderText(const QString &text);
+
public slots:
/**
* Switches to "breadcrumb" mode if the editable mode is not set to be