From 05ae8976a8e1ab5411058de244c4e2fcc87ec369 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Wed, 12 Mar 2025 20:47:57 +0530 Subject: Refactor MainWindow into InputMediator --- include/widgets/InputLine.hpp | 11 +++++++---- include/widgets/MainWindow.hpp | 39 ++------------------------------------- 2 files changed, 9 insertions(+), 41 deletions(-) (limited to 'include/widgets') diff --git a/include/widgets/InputLine.hpp b/include/widgets/InputLine.hpp index 1d98c9a..07b6e92 100644 --- a/include/widgets/InputLine.hpp +++ b/include/widgets/InputLine.hpp @@ -7,6 +7,7 @@ #include #include "completion/Adapter.hpp" +#include "utils.hpp" class InputLine : public QWidget { Q_OBJECT @@ -15,13 +16,15 @@ public: InputLine(QString defaultInput = "", QWidget *parentNode = nullptr); void setInputFocus(bool focussed); bool isInputFocussed(); - QString getInputCommand(); - void setInputText(QString text); void setAdapter(Adapter *adapter); - Adapter *adapter(); + + DELEGATE(input, hasFocus, isInputFocussed) + DELEGATE(input, setText, setInputText) + DELEGATE(input, text, getInputText) + DELEGATE(adapterInstance, prompt, prompt) signals: - void submitted(QString command); + void submitted(QString text); void cancelled(); protected: diff --git a/include/widgets/MainWindow.hpp b/include/widgets/MainWindow.hpp index 99a3895..f77ed60 100644 --- a/include/widgets/MainWindow.hpp +++ b/include/widgets/MainWindow.hpp @@ -5,16 +5,7 @@ #include #include -#include "LuaRuntime.hpp" -#include "widgets/InputLine.hpp" -#include "widgets/WebViewStack.hpp" - -class EvaluationType { -public: - EvaluationType() {} - virtual ~EvaluationType() = default; -}; -class NoopEval : public EvaluationType {}; +#include "InputMediator.hpp" class MainWindow : public QMainWindow { public: @@ -22,33 +13,7 @@ public: private: void keyPressEvent(QKeyEvent *event) override; - void onInputSubmit(QString input); - - void evaluateCommand(QString command); - - void hideInputLine(); - void showInputLine(); - void showURLInput(QString url, OpenType openType); - void showCommandInput(QString command = ""); - - void setEvaluationType(EvaluationType *); private: - WebViewStack *webViewStack; - InputLine *inputLine; - LuaRuntime *luaRuntime; - QStackedLayout *layout; - - EvaluationType *currentEvaluationType = new NoopEval(); + InputMediator *inputMediator; }; - -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