diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-03-10 00:20:31 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-03-10 00:20:31 +0530 |
| commit | d400369084107104f51fe217d5781c8d7bd07ff9 (patch) | |
| tree | c1e6572063a49a8c9da4d3c72355e02fb3fc187f /src/widgets/MainWindow.cpp | |
| parent | 6b1d49e607da16853d1a0f460dbe756538e4790c (diff) | |
| download | null-browser-d400369084107104f51fe217d5781c8d7bd07ff9.tar.gz null-browser-d400369084107104f51fe217d5781c8d7bd07ff9.zip | |
Add dumb command parser
Diffstat (limited to 'src/widgets/MainWindow.cpp')
| -rw-r--r-- | src/widgets/MainWindow.cpp | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/src/widgets/MainWindow.cpp b/src/widgets/MainWindow.cpp index 14f6aa7..9ac5f12 100644 --- a/src/widgets/MainWindow.cpp +++ b/src/widgets/MainWindow.cpp @@ -3,6 +3,7 @@ #include <QVBoxLayout> #include <QWebEngineView> +#include "CommandParser.hpp" #include "widgets/BrowserManager.hpp" #include "widgets/CommandInput.hpp" #include "widgets/MainWindow.hpp" @@ -12,7 +13,7 @@ MainWindow::MainWindow() { setCentralWidget(new QWidget()); // Root stacked layout - auto layout = new QStackedLayout(); + layout = new QStackedLayout(); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); layout->setStackingMode(QStackedLayout::StackAll); @@ -46,22 +47,38 @@ void MainWindow::hideURLInput() { } void MainWindow::showURLInput() { - commandInput->setInputText(browserManager->currentUrl().toString()); - commandInput->raise(); + commandInput->setInputText("open " + browserManager->currentUrl().toString()); commandInput->setHidden(false); + layout->setCurrentWidget(commandInput); commandInput->setInputFocus(true); } void MainWindow::evaluateCommand(QString command) { - if (!command.isEmpty()) { - // TODO: Temporary hack - if (command.startsWith("lua ")) { - luaRuntime->evaluate(command.slice(4).toStdString().c_str()); - } else { - browserManager->setCurrentUrl(command); - } - } hideURLInput(); + + // TODO: Temporary hack + CommandParser parser; + auto cmd = parser.parse(command); + + switch (cmd.command) { + case CommandType::LuaEval: + luaRuntime->evaluate(cmd.args.join(" ").toStdString().c_str()); + break; + case CommandType::Open: + browserManager->openUrl(cmd.args.first(), OpenType::OpenUrl); + break; + case CommandType::TabOpen: + browserManager->openUrl(cmd.args.at(1), OpenType::OpenUrlInTab); + break; + case CommandType::TabNext: + browserManager->nextWebView(); + break; + case CommandType::TabPrev: + browserManager->previousWebView(); + break; + case CommandType::Noop: + break; + } } void MainWindow::keyPressEvent(QKeyEvent *event) { |
