aboutsummaryrefslogtreecommitdiff
path: root/include/completion
diff options
context:
space:
mode:
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;
+};