diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-11 22:56:07 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-11 22:56:21 +0530 |
| commit | 0d5b7cb2a8bea5d91c58dd40f80d60bca384b766 (patch) | |
| tree | 4a0a9296d7dd4542afd21d5c37cdab0cc1aa74b7 /include/widgets | |
| parent | 12d0ce37db7323e8efd56d6a698a98abcb8d680b (diff) | |
| download | null-browser-0d5b7cb2a8bea5d91c58dd40f80d60bca384b766.tar.gz null-browser-0d5b7cb2a8bea5d91c58dd40f80d60bca384b766.zip | |
Add command+url evaluation
Diffstat (limited to '')
| -rw-r--r-- | include/widgets/InputLine.hpp | 3 | ||||
| -rw-r--r-- | include/widgets/MainWindow.hpp | 25 |
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 {}; |
