aboutsummaryrefslogtreecommitdiff
path: root/include/completion
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-03-11 11:31:14 +0530
committerAkshay Nair <phenax5@gmail.com>2025-03-11 11:44:31 +0530
commit12d0ce37db7323e8efd56d6a698a98abcb8d680b (patch)
treeec2102d40326a332b2ecb976869585f81cba8574 /include/completion
parent971854bfefad4c644ac3d5f5d6003f24d551bf1d (diff)
downloadnull-browser-12d0ce37db7323e8efd56d6a698a98abcb8d680b.tar.gz
null-browser-12d0ce37db7323e8efd56d6a698a98abcb8d680b.zip
Add command+url adapter and switching
Diffstat (limited to 'include/completion')
-rw-r--r--include/completion/Adapter.hpp12
-rw-r--r--include/completion/CommandsAdapter.hpp19
-rw-r--r--include/completion/UrlAdapter.hpp19
-rw-r--r--include/completion/UrlModel.hpp25
4 files changed, 75 insertions, 0 deletions
diff --git a/include/completion/Adapter.hpp b/include/completion/Adapter.hpp
new file mode 100644
index 0000000..882d457
--- /dev/null
+++ b/include/completion/Adapter.hpp
@@ -0,0 +1,12 @@
+#pragma once
+
+#include <QWidget>
+#include <QtCore>
+
+#include "completion/Completer.hpp"
+
+class Adapter : public QObject {
+public:
+ virtual Completer *completer() = 0;
+ virtual QString prompt() = 0;
+};
diff --git a/include/completion/CommandsAdapter.hpp b/include/completion/CommandsAdapter.hpp
new file mode 100644
index 0000000..0a0b61b
--- /dev/null
+++ b/include/completion/CommandsAdapter.hpp
@@ -0,0 +1,19 @@
+#pragma once
+
+#include <QWidget>
+#include <QtCore>
+
+#include "completion/Adapter.hpp"
+
+class CommandsAdapter : public Adapter {
+ Q_OBJECT
+
+public:
+ CommandsAdapter();
+ ~CommandsAdapter();
+ Completer *completer() override;
+ QString prompt() override;
+
+private:
+ Completer *completerInstance;
+};
diff --git a/include/completion/UrlAdapter.hpp b/include/completion/UrlAdapter.hpp
new file mode 100644
index 0000000..e89167a
--- /dev/null
+++ b/include/completion/UrlAdapter.hpp
@@ -0,0 +1,19 @@
+#pragma once
+
+#include <QWidget>
+#include <QtCore>
+
+#include "completion/Adapter.hpp"
+
+class UrlAdapter : public Adapter {
+ Q_OBJECT
+
+public:
+ UrlAdapter();
+ ~UrlAdapter();
+ Completer *completer() override;
+ QString prompt() override;
+
+private:
+ Completer *completerInstance;
+};
diff --git a/include/completion/UrlModel.hpp b/include/completion/UrlModel.hpp
new file mode 100644
index 0000000..e65a86a
--- /dev/null
+++ b/include/completion/UrlModel.hpp
@@ -0,0 +1,25 @@
+#pragma once
+
+#include <QAbstractListModel>
+#include <QWidget>
+#include <QtCore>
+
+struct Url {
+ QString url;
+ QString description;
+};
+
+class UrlModel : public QAbstractListModel {
+ Q_OBJECT
+
+public:
+ UrlModel(QObject *parent = nullptr);
+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const override;
+ QHash<int, QByteArray> roleNames() const override;
+ QVariant data(const QModelIndex &index,
+ int role = Qt::DisplayRole) const override;
+
+private:
+ QList<Url> items;
+};