Skip to content

Commit

Permalink
Merge pull request #723 from jdpurcell/pr-hifext
Browse files Browse the repository at this point in the history
Add additional file extensions for HEIC/HEIF
  • Loading branch information
jurplel authored Oct 17, 2024
2 parents 14f4d45 + 1f4b5a5 commit 0114aa0
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
29 changes: 21 additions & 8 deletions src/qvapplication.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -347,9 +347,13 @@ void QVApplication::defineFilterLists()
const auto &byteArrayFormats = QImageReader::supportedImageFormats();

auto filterString = tr("Supported Images") + " (";
filterList.reserve(byteArrayFormats.size()-1);
fileExtensionList.reserve(byteArrayFormats.size()-1);

const auto addExtension = [&](const QString &extension) {
filterString += "*" + extension + " ";
fileExtensionList << extension;
};

// Build the filterlist, filterstring, and filterregexplist in one loop
for (const auto &byteArray : byteArrayFormats)
{
Expand All @@ -358,16 +362,25 @@ void QVApplication::defineFilterLists()
if (fileExtension == ".pdf")
continue;

filterList << "*" + fileExtension;
filterString += "*" + fileExtension + " ";
fileExtensionList << fileExtension;
addExtension(fileExtension);

// If we support jpg, we actually support the jfif, jfi, and jpe file extensions too almost certainly.
// Register additional file extensions that decoders support but don't advertise
if (fileExtension == ".jpg")
{
filterList << "*.jpe" << "*.jfi" << "*.jfif";
filterString += "*.jpe *.jfi *.jfif ";
fileExtensionList << ".jpe" << ".jfi" << ".jfif";
addExtension(".jpe");
addExtension(".jfi");
#if QT_VERSION < QT_VERSION_CHECK(6, 8, 0)
addExtension(".jfif");
#endif
}
else if (fileExtension == ".heic")
{
addExtension(".heics");
}
else if (fileExtension == ".heif")
{
addExtension(".heifs");
addExtension(".hif");
}
}
filterString.chop(1);
Expand Down
3 changes: 0 additions & 3 deletions src/qvapplication.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,6 @@ class QVApplication : public QApplication

QMenuBar *getMenuBar() const { return menuBar; }

const QStringList &getFilterList() const { return filterList; }

const QStringList &getNameFilterList() const { return nameFilterList; }

const QStringList &getFileExtensionList() const { return fileExtensionList; }
Expand All @@ -87,7 +85,6 @@ class QVApplication : public QApplication

QMenuBar *menuBar;

QStringList filterList;
QStringList nameFilterList;
QStringList fileExtensionList;
QStringList mimeTypeNameList;
Expand Down

0 comments on commit 0114aa0

Please sign in to comment.