summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/Registry.cpp12
-rw-r--r--src/core/Registry.hpp9
2 files changed, 21 insertions, 0 deletions
diff --git a/src/core/Registry.cpp b/src/core/Registry.cpp
index 88babb7..044668c 100644
--- a/src/core/Registry.cpp
+++ b/src/core/Registry.cpp
@@ -97,6 +97,18 @@ std::string Registry::getMimetypeForExtension(
return std::string{};
}
+std::string Registry::getMimetypeForFilename(const std::string &filename) const
+{
+ // Fetch the file extension
+ std::string ext = Utils::extractFileExtension(path);
+ if (ext.empty()) {
+ return std::string{};
+ }
+
+ // Fetch the mimetype for the extension
+ return ctx.registry.getMimetypeForExtension(ext);
+}
+
void Registry::registerResourceLocator(ResourceLocator *locator)
{
locators.push_back(locator);
diff --git a/src/core/Registry.hpp b/src/core/Registry.hpp
index f932480..4b4cb65 100644
--- a/src/core/Registry.hpp
+++ b/src/core/Registry.hpp
@@ -121,6 +121,15 @@ public:
std::string getMimetypeForExtension(const std::string &extension) const;
/**
+ * Tries to deduce the mimetype from the given filename.
+ *
+ * @param filename is the filename from which the mimetype should be
+ * deduced.
+ * @return the mimetype or an empty string if no filename could be deduced.
+ */
+ std::string getMimetypeForFilename(const std::string &filename) const;
+
+ /**
* Registers a ResourceLocator instance that should be used for locating
* resources. Two registered ResourceLocator should not be capable of
* accessing Resources at the same location. If this happens, the resource