From 0d5b7cb2a8bea5d91c58dd40f80d60bca384b766 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Tue, 11 Mar 2025 22:56:07 +0530 Subject: Add command+url evaluation --- include/widgets/InputLine.hpp | 3 ++- include/widgets/MainWindow.hpp | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'include/widgets') 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 {}; -- cgit v1.3.1