aboutsummaryrefslogtreecommitdiff
path: root/src/schemes/NullSchemeHandler.hpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-08-08 13:08:44 +0530
committerAkshay Nair <phenax5@gmail.com>2025-08-08 13:08:44 +0530
commit8ec50e55a45af1706d40eff292db4541b6fcc261 (patch)
tree6b4cb54d638765cc0c3178984a6ec18af4a3a7e4 /src/schemes/NullSchemeHandler.hpp
parentb955a603c27ffb3869901b1899303b936816afcf (diff)
downloadnull-browser-8ec50e55a45af1706d40eff292db4541b6fcc261.tar.gz
null-browser-8ec50e55a45af1706d40eff292db4541b6fcc261.zip
Embed docs as null://docs + web.help api
Diffstat (limited to 'src/schemes/NullSchemeHandler.hpp')
-rw-r--r--src/schemes/NullSchemeHandler.hpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/schemes/NullSchemeHandler.hpp b/src/schemes/NullSchemeHandler.hpp
new file mode 100644
index 0000000..bc05076
--- /dev/null
+++ b/src/schemes/NullSchemeHandler.hpp
@@ -0,0 +1,30 @@
+#pragma once
+
+#include <QWebEngineUrlRequestJob>
+#include <QWebEngineUrlSchemeHandler>
+#include <QtCore>
+#include <qcontainerfwd.h>
+#include <qdebug.h>
+#include <qurlquery.h>
+
+// TODO: Install doc dir and pass this path during build
+#define NULL_DOCS_DIR "./doc"
+
+class NullSchemeHandler : public QWebEngineUrlSchemeHandler {
+ Q_OBJECT
+
+public:
+ static NullSchemeHandler &instance() {
+ static NullSchemeHandler handler;
+ return handler;
+ }
+
+ void requestStarted(QWebEngineUrlRequestJob *job) override;
+
+private:
+ NullSchemeHandler() = default;
+
+ QByteArray read_static_docs_file(const QString &path);
+ QByteArray read_index_html();
+ QByteArray get_content_type(const QString &path);
+};