From 12d0ce37db7323e8efd56d6a698a98abcb8d680b Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Tue, 11 Mar 2025 11:31:14 +0530 Subject: Add command+url adapter and switching --- src/completion/UrlModel.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/completion/UrlModel.cpp (limited to 'src/completion/UrlModel.cpp') diff --git a/src/completion/UrlModel.cpp b/src/completion/UrlModel.cpp new file mode 100644 index 0000000..7671fc3 --- /dev/null +++ b/src/completion/UrlModel.cpp @@ -0,0 +1,48 @@ +#include +#include +#include + +#include "completion/UrlModel.hpp" + +UrlModel::UrlModel(QObject *parent) : QAbstractListModel(parent) { + items = { + {.url = "https://google.com", .description = "Google"}, + {.url = "https://duckduckgo.com", .description = "DuckDuckGo"}, + {.url = "https://ediblemonad.dev", .description = "EdibleMonad website"}, + {.url = "https://lite.duckduckgo.com", .description = "DDG lite"}, + {.url = "https://github.com/trending", .description = "Github trending"}, + }; +} + +QVariant UrlModel::data(const QModelIndex &index, int role) const { + if (!index.isValid() || index.row() >= items.size()) + return QVariant(); + + const Url &item = items.at(index.row()); + + if (role == Qt::DisplayRole) + return item.url; + else if (role == Qt::ToolTipRole) + return item.description; + else if (role == Qt::UserRole) + return item.description; + + return QVariant(); +} + +QHash UrlModel::roleNames() const { + QHash roles; + roles[Qt::DisplayRole] = "url"; + roles[Qt::UserRole] = "description"; + return roles; +} + +int UrlModel::rowCount(const QModelIndex &parent) const { + Q_UNUSED(parent); + return items.size(); +} + +int UrlModel::columnCount(const QModelIndex &parent) const { + Q_UNUSED(parent); + return 2; // name + description +} -- cgit v1.3.1