qtutilities/settingsdialog/optioncategoryfiltermodel.cpp

41 lines
1.2 KiB
C++
Raw Permalink Normal View History

2015-09-06 20:19:21 +02:00
#include "./optioncategoryfiltermodel.h"
#include "./optioncategory.h"
2017-05-01 03:16:25 +02:00
#include "./optioncategorymodel.h"
2015-04-22 18:57:44 +02:00
namespace QtUtilities {
2015-04-22 18:57:44 +02:00
/*!
* \class OptionCategoryFilterModel
2017-05-04 22:46:37 +02:00
* \brief The OptionCategoryFilterModel class is used by SettingsDialog to
* filter option categories.
2015-04-22 18:57:44 +02:00
*/
/*!
* \brief Constructs an option category filter model.
*/
2017-05-01 03:16:25 +02:00
OptionCategoryFilterModel::OptionCategoryFilterModel(QObject *parent)
: QSortFilterProxyModel(parent)
{
}
2015-04-22 18:57:44 +02:00
bool OptionCategoryFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
if (QSortFilterProxyModel::filterAcceptsRow(sourceRow, sourceParent))
2017-05-01 03:16:25 +02:00
return true;
2020-09-02 19:49:40 +02:00
if (auto *const model = qobject_cast<OptionCategoryModel *>(sourceModel())) {
2017-05-01 03:16:25 +02:00
if (OptionCategory *category = model->category(sourceRow)) {
2020-09-02 19:49:40 +02:00
return category->matches(
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
filterRegularExpression().pattern()
#elif (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
!filterRegularExpression().pattern().isEmpty() ? filterRegularExpression().pattern() : filterRegExp().pattern()
#else
filterRegExp().pattern()
#endif
);
2015-04-22 18:57:44 +02:00
}
}
return false;
}
} // namespace QtUtilities