aboutsummaryrefslogtreecommitdiff
path: root/include/widgets
diff options
context:
space:
mode:
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 {};