/
friendlyperch
/
QGrid
Обзор
Документация
Войти
/
friendlyperch
/
QGrid
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev-ver1
src/StaticFilter.cpp
57 строк
2 KB
okuntsev
new delegate approach
15 янв 2026, 12:58
15 янв 2026, 12:58
8e3ee23
Код
Авторство
О чём код?
#include "StaticFilter.h" #include "StaticFilterItem.h" #include "QGrid/ColumnEditorDelegate.h" StaticFilter::StaticFilter(QWidget *parent) : QWidget(parent) { setLayout(new QVBoxLayout()); } void StaticFilter::setFilters(const QVector<GridColumn *> &columns) { filters.clear(); clearLayout(); hasItem = false; for (auto column : columns) { if (column->getShowInStaticFilter()) { StaticFilterItem *item = new StaticFilterItem(); connect(item, SIGNAL(changed(QString, QVariant)), this, SLOT(filterItemChanged(QString, QVariant))); item->setColumn(column); ColumnEditorDelegate *delegate = column->getEditorDelegate(); if (delegate) { QWidget *editor = delegate->createEditor(item); item->setEditor(editor); } layout()->addWidget(item); hasItem = true; } } emitChangedSignal = true; } void StaticFilter::clearLayout() {} void StaticFilter::filterItemChanged(QString fieldName, QVariant value) { filters[fieldName] = value; if (emitChangedSignal) emit filtersChanged(converFilters()); } bool StaticFilter::getHasItem() const { return hasItem; } Group StaticFilter::converFilters() { group.clear(); for (QVariant value : filters.values()) { if (!value.toString().isEmpty()) { Filter filter; filter.setFieldName(filters.key(value)); filter.setOperation(Operation::Like); filter.addValue(value); group.addFilter(filter); } } return group; } QMap<QString, QVariant> StaticFilter::getFilters() const { return filters; }