X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/38c34eeca315c7be58e65d4d3fb72aaf7b866719..e9b056dcf080a12a09fa1c1a55eab79edb2164b5:/src/dolphinurlnavigator.cpp diff --git a/src/dolphinurlnavigator.cpp b/src/dolphinurlnavigator.cpp index ad0a86b77..3a40eea5c 100644 --- a/src/dolphinurlnavigator.cpp +++ b/src/dolphinurlnavigator.cpp @@ -1,6 +1,6 @@ /* This file is part of the KDE project - SPDX-FileCopyrightText: 2020 Felix Ernst + SPDX-FileCopyrightText: 2020 Felix Ernst SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL */ @@ -16,6 +16,7 @@ #include #include +#include #include #include @@ -49,6 +50,12 @@ DolphinUrlNavigator::DolphinUrlNavigator(const QUrl &url, QWidget *parent) DolphinUrlNavigatorsController::registerDolphinUrlNavigator(this); connect(this, &KUrlNavigator::returnPressed, this, &DolphinUrlNavigator::slotReturnPressed); + + auto readOnlyBadge = new QLabel(); + readOnlyBadge->setPixmap(QIcon::fromTheme(QStringLiteral("emblem-readonly")).pixmap(12, 12)); + readOnlyBadge->setToolTip(i18nc("@info:tooltip of a 'locked' symbol in url navigator", "This folder is not writable for you.")); + readOnlyBadge->hide(); + setBadgeWidget(readOnlyBadge); } DolphinUrlNavigator::~DolphinUrlNavigator() @@ -69,6 +76,9 @@ QSize DolphinUrlNavigator::sizeHint() const widthHint += widget->minimumSizeHint().width(); } } + if (readOnlyBadgeVisible()) { + widthHint += badgeWidget()->sizeHint().width(); + } return QSize(widthHint, KUrlNavigator::sizeHint().height()); } @@ -111,9 +121,28 @@ void DolphinUrlNavigator::setPlaceholderText(const QString &text) editor()->lineEdit()->setPlaceholderText(text); } +void DolphinUrlNavigator::setReadOnlyBadgeVisible(bool visible) +{ + QWidget *readOnlyBadge = badgeWidget(); + if (readOnlyBadge) { + readOnlyBadge->setVisible(visible); + } +} + +bool DolphinUrlNavigator::readOnlyBadgeVisible() const +{ + QWidget *readOnlyBadge = badgeWidget(); + if (readOnlyBadge) { + return readOnlyBadge->isVisible(); + } + return false; +} + void DolphinUrlNavigator::slotReturnPressed() { if (!GeneralSettings::editableUrl()) { setUrlEditable(false); } } + +#include "moc_dolphinurlnavigator.cpp"