nheko/src/CompletionProxyModel.h

40 lines
1.0 KiB
C
Raw Normal View History

#pragma once
// Class for showing a limited amount of completions at a time
#include <QSortFilterProxyModel>
2020-11-20 02:38:08 +01:00
#include "CompletionModelRoles.h"
class CompletionProxyModel : public QSortFilterProxyModel
{
2020-11-20 02:38:08 +01:00
Q_OBJECT
public:
CompletionProxyModel(QAbstractItemModel *model, QObject *parent = nullptr)
: QSortFilterProxyModel(parent)
{
setSourceModel(model);
}
2020-11-20 02:38:08 +01:00
QHash<int, QByteArray> roleNames() const override
{
return this->sourceModel()->roleNames();
}
int rowCount(const QModelIndex &parent = QModelIndex()) const override
{
auto row_count = QSortFilterProxyModel::rowCount(parent);
return (row_count < 7) ? row_count : 7;
}
2020-11-20 02:38:08 +01:00
public slots:
QVariant completionAt(int i) const
{
if (i >= 0 && i < rowCount())
return data(index(i, 0), CompletionModel::CompletionRole);
else
return {};
}
};