From 971854bfefad4c644ac3d5f5d6003f24d551bf1d Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Mon, 10 Mar 2025 22:04:24 +0530 Subject: Add completer + simplify command parsing + class generator --- src/completion/CompleterDelegate.cpp | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/completion/CompleterDelegate.cpp (limited to 'src/completion/CompleterDelegate.cpp') diff --git a/src/completion/CompleterDelegate.cpp b/src/completion/CompleterDelegate.cpp new file mode 100644 index 0000000..a35305f --- /dev/null +++ b/src/completion/CompleterDelegate.cpp @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include + +#include "completion/CompleterDelegate.hpp" + +CompleterDelegate::CompleterDelegate(QObject *parent) + : QStyledItemDelegate(parent) {} + +void CompleterDelegate::paint(QPainter *painter, + const QStyleOptionViewItem &option, + const QModelIndex &index) const { + painter->save(); + + // Style + if (option.state & QStyle::State_Selected) { + painter->fillRect(option.rect, QColor("#aaa")); + painter->setPen(Qt::black); + } else { + painter->fillRect(option.rect, QColor("#111")); + painter->setPen(Qt::white); + } + + // Draw text + QString text; + QRect rect; + if (index.column() == 0) { + text = index.data(Qt::DisplayRole).toString(); + rect = option.rect.adjusted(5, 0, 0, 0); + painter->drawText(rect, Qt::AlignLeft | Qt::AlignVCenter, text); + } else if (index.column() == 1) { + text = index.data(Qt::UserRole).toString(); + rect = option.rect.adjusted(0, 0, -5, 0); + painter->drawText(rect, Qt::AlignLeft | Qt::AlignVCenter, text); + } + + painter->restore(); +} -- cgit v1.3.1