aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-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
-rw-r--r--include/widgets/InputLine.hpp (renamed from include/widgets/CommandInput.hpp)10
-rw-r--r--include/widgets/MainWindow.hpp11
6 files changed, 89 insertions, 7 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;
+};
diff --git a/include/widgets/CommandInput.hpp b/include/widgets/InputLine.hpp
index 3ce9500..2324f18 100644
--- a/include/widgets/CommandInput.hpp
+++ b/include/widgets/InputLine.hpp
@@ -1,19 +1,23 @@
#pragma once
#include <QBoxLayout>
+#include <QLabel>
#include <QLineEdit>
#include <QWidget>
#include <QtCore>
-class CommandInput : public QWidget {
+#include "completion/Adapter.hpp"
+
+class InputLine : public QWidget {
Q_OBJECT
public:
- CommandInput(QString defaultInput = "", QWidget *parentNode = nullptr);
+ InputLine(QString defaultInput = "", QWidget *parentNode = nullptr);
void setInputFocus(bool focussed);
bool isInputFocussed();
QString getInputCommand();
void setInputText(QString text);
+ void setAdapter(Adapter *adapter);
signals:
void submitted(QString command);
@@ -26,4 +30,6 @@ protected:
private:
QBoxLayout *layout;
QLineEdit *input;
+ QLabel *promptPrefix;
+ Adapter *adapter = nullptr;
};
diff --git a/include/widgets/MainWindow.hpp b/include/widgets/MainWindow.hpp
index 7f54ce2..b64bf8c 100644
--- a/include/widgets/MainWindow.hpp
+++ b/include/widgets/MainWindow.hpp
@@ -7,7 +7,7 @@
#include "LuaRuntime.hpp"
#include "widgets/BrowserManager.hpp"
-#include "widgets/CommandInput.hpp"
+#include "widgets/InputLine.hpp"
class MainWindow : public QMainWindow {
public:
@@ -15,14 +15,15 @@ public:
protected:
void keyPressEvent(QKeyEvent *event) override;
- void toggleURLInput();
void evaluateCommand(QString command);
- void hideURLInput();
- void showURLInput();
+ void hideInputLine();
+ void showInputLine();
+ void showURLInput(QString url = "");
+ void showCommandInput(QString command = "");
private:
BrowserManager *browserManager;
- CommandInput *commandInput;
+ InputLine *inputLine;
LuaRuntime *luaRuntime;
QStackedLayout *layout;
};