/
NeoChapay
/
telegraf
Обзор
Документация
Войти
/
NeoChapay
/
telegraf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/textfiltermodel.cpp
81 строка
2 KB
Mikhail Barashkov
refactor: remove standard comments from header of all source files
07 сен 2024, 14:40
07 сен 2024, 14:40
c79ea8f
Код
Авторство
О чём код?
#include "textfiltermodel.h" #define DEBUG_MODULE TextFilterModel #include "debuglog.h" TextFilterModel::TextFilterModel(QObject *parent) : QSortFilterProxyModel(parent) { setDynamicSortFilter(true); setFilterCaseSensitivity(Qt::CaseInsensitive); setFilterFixedString(QString()); } void TextFilterModel::setSource(QObject *model) { setSourceModel(qobject_cast<QAbstractItemModel*>(model)); } void TextFilterModel::setSourceModel(QAbstractItemModel *model) { if (sourceModel() != model) { LOG(model); QSortFilterProxyModel::setSourceModel(model); updateFilterRole(); emit sourceChanged(); } } QString TextFilterModel::getFilterRoleName() const { return filterRoleName; } void TextFilterModel::setFilterRoleName(QString role) { if (filterRoleName != role) { filterRoleName = role; LOG(role); updateFilterRole(); emit filterRoleNameChanged(); } } QString TextFilterModel::getFilterText() const { return filterText; } void TextFilterModel::setFilterText(QString text) { if (filterText.compare(text, Qt::CaseInsensitive) != 0) { filterText = text; LOG(text); setFilterFixedString(text); emit filterTextChanged(); } } int TextFilterModel::findRole(QAbstractItemModel *model, QString role) { if (model && !role.isEmpty()) { const QByteArray roleName(role.toUtf8()); const QHash<int,QByteArray> roleMap(model->roleNames()); const QList<int> roles(roleMap.keys()); const int n = roles.count(); for (int i = 0; i < n; i++) { const QByteArray name(roleMap.value(roles.at(i))); if (name == roleName) { LOG(role << roles.at(i)); return roles.at(i); } } LOG("Unknown role" << role); } return -1; } void TextFilterModel::updateFilterRole() { const int role = findRole(sourceModel(), filterRoleName); setFilterRole((role >= 0) ? role : Qt::DisplayRole); }