From 350d2bd7ccf80b91abdff154344f0ce88080a195 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 16 Mar 2025 14:39:57 +0530 Subject: Add tab selector listing and evaluation --- include/InputMediator.hpp | 4 ++-- include/completion/TabsAdapter.hpp | 3 ++- include/completion/TabsModel.hpp | 6 +++--- include/widgets/WebViewStack.hpp | 4 ++++ 4 files changed, 11 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/InputMediator.hpp b/include/InputMediator.hpp index 98ae6d2..0ae70ce 100644 --- a/include/InputMediator.hpp +++ b/include/InputMediator.hpp @@ -24,7 +24,7 @@ public: void showURLInput(QString url = "", OpenType openType = OpenType::OpenUrl); void showCommandInput(QString command = ""); - void showBufferInput(QString command = ""); + void showTabsInput(QString command = ""); void hideInputLine(); DELEGATE(webViewStack, openUrl, openUrl) @@ -60,4 +60,4 @@ private: class CommandEval : public EvaluationType {}; -class BufferEval : public EvaluationType {}; +class TabsEval : public EvaluationType {}; diff --git a/include/completion/TabsAdapter.hpp b/include/completion/TabsAdapter.hpp index 089eefb..fd47b8b 100644 --- a/include/completion/TabsAdapter.hpp +++ b/include/completion/TabsAdapter.hpp @@ -4,12 +4,13 @@ #include #include "completion/Adapter.hpp" +#include "completion/TabsModel.hpp" class TabsAdapter : public Adapter { Q_OBJECT public: - TabsAdapter(); + TabsAdapter(QList tabs); ~TabsAdapter(); Completer *completer() override; QString prompt() override; diff --git a/include/completion/TabsModel.hpp b/include/completion/TabsModel.hpp index be1ea78..4b4518f 100644 --- a/include/completion/TabsModel.hpp +++ b/include/completion/TabsModel.hpp @@ -4,7 +4,7 @@ #include #include -struct Buffer { +struct Tab { QString url; QString title; }; @@ -13,7 +13,7 @@ class TabsModel : public QAbstractListModel { Q_OBJECT public: - TabsModel(QObject *parent = nullptr); + TabsModel(QList tabs, QObject *parent = nullptr); int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QHash roleNames() const override; @@ -21,5 +21,5 @@ public: int role = Qt::DisplayRole) const override; private: - QList items; + QList items; }; diff --git a/include/widgets/WebViewStack.hpp b/include/widgets/WebViewStack.hpp index 1d10715..faf4562 100644 --- a/include/widgets/WebViewStack.hpp +++ b/include/widgets/WebViewStack.hpp @@ -5,6 +5,8 @@ #include #include +#include "completion/TabsModel.hpp" + enum OpenType { OpenUrl, OpenUrlInTab, OpenUrlInBgTab, OpenUrlInWindow }; class WebViewStack : public QWidget { @@ -32,6 +34,8 @@ public: void close(long index); void closeCurrent(); + QList getTabList(); + private: void setCurrentUrl(QUrl url); QWebEngineView *createNewWebView(QUrl url = WebViewStack::NewtabURL, -- cgit v1.3.1