Handle URL QVariants properly when displaying filenames in the playlist view. Fixes issue 3127

This commit is contained in:
David Sansome 2012-08-26 12:23:39 +01:00
parent 78d473512d
commit 75a057a47d
1 changed files with 14 additions and 8 deletions

View File

@ -426,15 +426,21 @@ QWidget* TagCompletionItemDelegate::createEditor(
}
QString NativeSeparatorsDelegate::displayText(const QVariant& value, const QLocale&) const {
const QString text = value.toString();
if (text.contains("://")) {
const QUrl url = QUrl::fromEncoded(text.toAscii());
if (url.scheme() == "file") {
return QDir::toNativeSeparators(url.toLocalFile());
}
return text;
const QString string_value = value.toString();
QUrl url;
if (value.type() == QVariant::Url) {
url = value.toUrl();
} else if (string_value.contains("://")) {
url = QUrl::fromEncoded(string_value.toAscii());
} else {
return QDir::toNativeSeparators(string_value);
}
return QDir::toNativeSeparators(text);
if (url.scheme() == "file") {
return QDir::toNativeSeparators(url.toLocalFile());
}
return string_value;
}
SongSourceDelegate::SongSourceDelegate(QObject* parent, Player* player)