From 387cf24e389854ecc97f6236fdd6acbc2486dd52 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 15 Mar 2025 19:17:03 +0530 Subject: Replaced QCompleter with custom implementation --- src/InputMediator.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/InputMediator.cpp') diff --git a/src/InputMediator.cpp b/src/InputMediator.cpp index 8bcadd0..ee7a552 100644 --- a/src/InputMediator.cpp +++ b/src/InputMediator.cpp @@ -5,6 +5,7 @@ #include "InputMediator.hpp" #include "LuaRuntime.hpp" #include "completion/CommandsAdapter.hpp" +#include "completion/TabsAdapter.hpp" #include "completion/UrlAdapter.hpp" #include "widgets/WebViewStack.hpp" @@ -32,6 +33,9 @@ void InputMediator::onInputSubmit(QString input) { if (auto urlEval = dynamic_cast(currentEvaluationType)) return webViewStack->openUrl(input, urlEval->type()); + + if (dynamic_cast(currentEvaluationType)) + return webViewStack->focusWebView(1); } void InputMediator::hideInputLine() { @@ -52,6 +56,13 @@ void InputMediator::showCommandInput(QString cmd) { showInputLine(); } +void InputMediator::showBufferInput(QString url) { + setEvaluationType(new CommandEval()); + inputLine->setAdapter(new TabsAdapter); + inputLine->setInputText(url); + showInputLine(); +} + void InputMediator::setEvaluationType(EvaluationType *evalType) { if (currentEvaluationType) delete currentEvaluationType; @@ -77,19 +88,23 @@ void InputMediator::evaluateCommand(QString command) { if (cmd.argsString.trimmed().isEmpty()) showURLInput("", OpenType::OpenUrl); else - webViewStack->openUrl(cmd.argsString, OpenType::OpenUrl); + openUrl(cmd.argsString, OpenType::OpenUrl); break; case CommandType::TabOpen: if (cmd.argsString.trimmed().isEmpty()) showURLInput("", OpenType::OpenUrlInTab); else - webViewStack->openUrl(cmd.argsString, OpenType::OpenUrlInTab); + openUrl(cmd.argsString, OpenType::OpenUrlInTab); break; case CommandType::TabNext: - webViewStack->next(); + nextWebView(); break; case CommandType::TabPrev: - webViewStack->previous(); + previousWebView(); + break; + case CommandType::TabSelect: + showBufferInput(); + // focusWebView(long index) // TODO: parse index and select break; case CommandType::Noop: break; -- cgit v1.3.1