aboutsummaryrefslogtreecommitdiff
path: root/include/widgets
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-03-11 22:56:07 +0530
committerAkshay Nair <phenax5@gmail.com>2025-03-11 22:56:21 +0530
commit0d5b7cb2a8bea5d91c58dd40f80d60bca384b766 (patch)
tree4a0a9296d7dd4542afd21d5c37cdab0cc1aa74b7 /include/widgets
parent12d0ce37db7323e8efd56d6a698a98abcb8d680b (diff)
downloadnull-browser-0d5b7cb2a8bea5d91c58dd40f80d60bca384b766.tar.gz
null-browser-0d5b7cb2a8bea5d91c58dd40f80d60bca384b766.zip
Add command+url evaluation
Diffstat (limited to 'include/widgets')
-rw-r--r--include/widgets/InputLine.hpp3
-rw-r--r--include/widgets/MainWindow.hpp25
2 files changed, 26 insertions, 2 deletions
diff --git a/include/widgets/InputLine.hpp b/include/widgets/InputLine.hpp
index 2324f18..1d98c9a 100644
--- a/include/widgets/InputLine.hpp
+++ b/include/widgets/InputLine.hpp
@@ -18,6 +18,7 @@ public:
QString getInputCommand();
void setInputText(QString text);
void setAdapter(Adapter *adapter);
+ Adapter *adapter();
signals:
void submitted(QString command);
@@ -31,5 +32,5 @@ private:
QBoxLayout *layout;
QLineEdit *input;
QLabel *promptPrefix;
- Adapter *adapter = nullptr;
+ Adapter *adapterInstance = nullptr;
};
diff --git a/include/widgets/MainWindow.hpp b/include/widgets/MainWindow.hpp
index b64bf8c..4731fe4 100644
--- a/include/widgets/MainWindow.hpp
+++ b/include/widgets/MainWindow.hpp
@@ -9,21 +9,44 @@
#include "widgets/BrowserManager.hpp"
#include "widgets/InputLine.hpp"
+class EvaluationType {
+public:
+ EvaluationType() {}
+ virtual ~EvaluationType() = default;
+};
+class NoopEval : public EvaluationType {};
+
class MainWindow : public QMainWindow {
public:
MainWindow();
protected:
void keyPressEvent(QKeyEvent *event) override;
+ void onInputSubmit(QString input);
void evaluateCommand(QString command);
void hideInputLine();
void showInputLine();
- void showURLInput(QString url = "");
+ void showURLInput(QString url, OpenType openType);
void showCommandInput(QString command = "");
+ void setEvaluationType(EvaluationType *);
+
private:
BrowserManager *browserManager;
InputLine *inputLine;
LuaRuntime *luaRuntime;
QStackedLayout *layout;
+
+ EvaluationType *currentEvaluationType = new NoopEval();
};
+
+class UrlEval : public EvaluationType {
+public:
+ UrlEval(OpenType type) : EvaluationType(), openType(type) {}
+ OpenType type() { return openType; }
+
+private:
+ OpenType openType;
+};
+
+class CommandEval : public EvaluationType {};