Use full compound extension (.md.gpg, .org.age, etc.)
fileitemaction uses completeSuffix() to preserve the full extension. fileTypeFromExtension() recurses on compound extensions to detect frontmatter support from the inner extension.
This commit is contained in:
parent
d21cab5362
commit
06c1f17570
|
|
@ -68,7 +68,7 @@ void DenoteFileItemAction::renameWithDenote(const KFileItemList &items, QWidget
|
||||||
defaultTitle.replace(QLatin1Char('_'), QLatin1Char(' '));
|
defaultTitle.replace(QLatin1Char('_'), QLatin1Char(' '));
|
||||||
|
|
||||||
// Try to extract title from frontmatter if applicable
|
// Try to extract title from frontmatter if applicable
|
||||||
const QString ext = QStringLiteral(".") + fi.suffix();
|
const QString ext = QStringLiteral(".") + fi.completeSuffix();
|
||||||
Denote::FileType fileType = Denote::fileTypeFromExtension(ext);
|
Denote::FileType fileType = Denote::fileTypeFromExtension(ext);
|
||||||
if (fileType != Denote::FileType::Unknown) {
|
if (fileType != Denote::FileType::Unknown) {
|
||||||
QFile file(path);
|
QFile file(path);
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,21 @@ namespace Denote {
|
||||||
FileType fileTypeFromExtension(const QString &ext)
|
FileType fileTypeFromExtension(const QString &ext)
|
||||||
{
|
{
|
||||||
const QString lower = ext.toLower();
|
const QString lower = ext.toLower();
|
||||||
|
// Check the full extension first, then the inner extension for compound types
|
||||||
|
// e.g. ".md.gpg" -> check ".md.gpg", then ".md"
|
||||||
if (lower == QStringLiteral(".md") || lower == QStringLiteral(".markdown"))
|
if (lower == QStringLiteral(".md") || lower == QStringLiteral(".markdown"))
|
||||||
return FileType::MdYaml;
|
return FileType::MdYaml;
|
||||||
if (lower == QStringLiteral(".org"))
|
if (lower == QStringLiteral(".org"))
|
||||||
return FileType::Org;
|
return FileType::Org;
|
||||||
if (lower == QStringLiteral(".txt"))
|
if (lower == QStringLiteral(".txt"))
|
||||||
return FileType::Txt;
|
return FileType::Txt;
|
||||||
|
|
||||||
|
// For compound extensions, check if the inner part is supported
|
||||||
|
int dot = lower.indexOf(QLatin1Char('.'), 1);
|
||||||
|
if (dot > 0) {
|
||||||
|
return fileTypeFromExtension(lower.left(dot));
|
||||||
|
}
|
||||||
|
|
||||||
return FileType::Unknown;
|
return FileType::Unknown;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue