mirror of
https://invent.kde.org/plasma/plasma-desktop.git
synced 2026-11-03 22:59:45 -09:00
Merge branch 'fix-getFileUrl' into 'master'
DesktopSchemeHelper: Respect file:// protocol See merge request plasma/plasma-desktop!4174
This commit is contained in:
commit
ee84d4e3e8
4 changed files with 18 additions and 4 deletions
|
|
@ -13,6 +13,8 @@
|
|||
|
||||
QTEST_MAIN(DesktopSchemeHelperTest)
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
void DesktopSchemeHelperTest::returnsExpectedValues()
|
||||
{
|
||||
DesktopSchemeHelper h;
|
||||
|
|
@ -58,6 +60,13 @@ void DesktopSchemeHelperTest::returnsExpectedValues()
|
|||
|
||||
// LabelGenerator expects a leading slash
|
||||
QCOMPARE(DesktopSchemeHelper::getFileUrl(QStringLiteral("desktop:Productivity/")), childOfDesktop);
|
||||
|
||||
// file:// scheme
|
||||
constexpr auto fileScheme = u"file://"_sv;
|
||||
QCOMPARE(DesktopSchemeHelper::getFileUrl(fileScheme + desktopWithoutTrailingSlash), desktopWithoutTrailingSlash);
|
||||
QCOMPARE(DesktopSchemeHelper::getFileUrl(fileScheme + desktopWithTrailingSlash), desktopWithTrailingSlash);
|
||||
QCOMPARE(DesktopSchemeHelper::getFileUrl(fileScheme + childOfDesktop), childOfDesktop);
|
||||
QCOMPARE(DesktopSchemeHelper::getFileUrl(fileScheme + parentOfDesktop), parentOfDesktop);
|
||||
}
|
||||
|
||||
#include "moc_desktopschemehelpertest.cpp"
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
#include <QStandardPaths>
|
||||
#include <QUrl>
|
||||
|
||||
using namespace Qt::StringLiterals;
|
||||
|
||||
DesktopSchemeHelper::DesktopSchemeHelper(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
|
|
@ -59,10 +61,13 @@ QString DesktopSchemeHelper::getDesktopUrl(const QString &absoluteUrlString)
|
|||
}
|
||||
}
|
||||
|
||||
QString DesktopSchemeHelper::getFileUrl(const QString &UrlRelativeToDesktopString)
|
||||
QString DesktopSchemeHelper::getFileUrl(const QString &folderViewUrl)
|
||||
{
|
||||
if (constexpr auto fileScheme = u"file://"_sv; folderViewUrl.startsWith(fileScheme)) {
|
||||
return folderViewUrl.mid(fileScheme.size());
|
||||
}
|
||||
QString absoluteDesktopString(QStandardPaths::standardLocations(QStandardPaths::DesktopLocation).at(0));
|
||||
QString absoluteFileUrl(UrlRelativeToDesktopString);
|
||||
QString absoluteFileUrl(folderViewUrl);
|
||||
if (absoluteFileUrl.startsWith(QStringLiteral("desktop:/"))) {
|
||||
absoluteFileUrl.replace(QStringLiteral("desktop:/"), QStringLiteral("desktop:"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public:
|
|||
~DesktopSchemeHelper() override;
|
||||
|
||||
Q_INVOKABLE static QString getDesktopUrl(const QString &absoluteUrlString);
|
||||
Q_INVOKABLE static QString getFileUrl(const QString &UrlRelativeToDesktopString);
|
||||
Q_INVOKABLE static QString getFileUrl(const QString &folderViewUrl);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -456,7 +456,7 @@ void FolderModel::setUrl(const QString &url)
|
|||
m_dirWatch = new KDirWatch(this);
|
||||
connect(m_dirWatch, &KDirWatch::created, this, &FolderModel::iconNameChanged);
|
||||
connect(m_dirWatch, &KDirWatch::dirty, this, &FolderModel::iconNameChanged);
|
||||
m_dirWatch->addFile(DesktopSchemeHelper::getFileUrl(resolvedNewUrl.toString()).remove(QStringLiteral("file://")) + QStringLiteral("/.directory"));
|
||||
m_dirWatch->addFile(DesktopSchemeHelper::getFileUrl(resolvedNewUrl.toString()) + QStringLiteral("/.directory"));
|
||||
}
|
||||
|
||||
if (dragging()) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue