case insensitive search with regexps
This commit is contained in:
parent
2d3993da61
commit
ac100496bb
8 changed files with 19 additions and 12 deletions
|
@ -1 +1 @@
|
|||
Subproject commit 47f4125753452eff8800dbd6600c5a05540b15d9
|
||||
Subproject commit 9c10723bfbaf6cb85107d6ee16e0324e9e487749
|
|
@ -21,9 +21,8 @@ FeedsProxyModel::FeedsProxyModel(FeedsModel* source_model, QObject* parent)
|
|||
setRecursiveFilteringEnabled(true);
|
||||
#endif
|
||||
|
||||
setFilterCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
|
||||
setFilterKeyColumn(-1);
|
||||
setFilterRole(Qt::ItemDataRole::EditRole);
|
||||
setFilterKeyColumn(FDS_MODEL_TITLE_INDEX);
|
||||
setFilterRole(LOWER_TITLE_ROLE);
|
||||
|
||||
setDynamicSortFilter(true);
|
||||
setSourceModel(m_sourceModel);
|
||||
|
|
|
@ -324,8 +324,13 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
|
|||
}
|
||||
}
|
||||
|
||||
case LOWER_TITLE_ROLE:
|
||||
return messageAt(idx.row()).m_title.toLower();
|
||||
|
||||
case Qt::ItemDataRole::EditRole:
|
||||
return m_cache->containsData(idx.row()) ? m_cache->data(idx) : QSqlQueryModel::data(idx, role);
|
||||
return m_cache->containsData(idx.row())
|
||||
? m_cache->data(idx)
|
||||
: QSqlQueryModel::data(idx, role);
|
||||
|
||||
case Qt::ItemDataRole::ToolTipRole: {
|
||||
if (idx.column() == MSG_DB_SCORE_INDEX) {
|
||||
|
|
|
@ -17,9 +17,8 @@ MessagesProxyModel::MessagesProxyModel(MessagesModel* source_model, QObject* par
|
|||
setSortRole(Qt::ItemDataRole::EditRole);
|
||||
setSortCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
|
||||
|
||||
setFilterCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
|
||||
setFilterKeyColumn(-1);
|
||||
setFilterRole(Qt::ItemDataRole::EditRole);
|
||||
setFilterKeyColumn(MSG_DB_TITLE_INDEX);
|
||||
setFilterRole(LOWER_TITLE_ROLE);
|
||||
|
||||
setDynamicSortFilter(false);
|
||||
setSourceModel(m_sourceModel);
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
#define URL_REGEXP "^(http|https|feed|ftp):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?$"
|
||||
#define SCRIPT_SOURCE_TYPE_REGEXP "^.+#.*$"
|
||||
#define TEXT_TITLE_LIMIT 30
|
||||
#define LOWER_TITLE_ROLE 64
|
||||
#define RESELECT_MESSAGE_THRESSHOLD 500
|
||||
#define ICON_SIZE_SETTINGS 16
|
||||
#define TRAY_ICON_BUBBLE_TIMEOUT 20000
|
||||
|
|
|
@ -498,9 +498,9 @@ void FeedsView::switchVisibility() {
|
|||
|
||||
void FeedsView::filterItems(const QString& pattern) {
|
||||
#if QT_VERSION < 0x050C00 // Qt < 5.12.0
|
||||
m_proxyModel->setFilterRegExp(pattern);
|
||||
m_proxyModel->setFilterRegExp(pattern.toLower());
|
||||
#else
|
||||
m_proxyModel->setFilterRegularExpression(pattern);
|
||||
m_proxyModel->setFilterRegularExpression(pattern.toLower());
|
||||
#endif
|
||||
|
||||
if (!pattern.simplified().isEmpty()) {
|
||||
|
|
|
@ -581,9 +581,9 @@ void MessagesView::selectNextUnreadItem() {
|
|||
|
||||
void MessagesView::searchMessages(const QString& pattern) {
|
||||
#if QT_VERSION < 0x050C00 // Qt < 5.12.0
|
||||
m_proxyModel->setFilterRegExp(pattern);
|
||||
m_proxyModel->setFilterRegExp(pattern.toLower());
|
||||
#else
|
||||
m_proxyModel->setFilterRegularExpression(pattern);
|
||||
m_proxyModel->setFilterRegularExpression(pattern.toLower());
|
||||
#endif
|
||||
|
||||
if (selectionModel()->selectedRows().isEmpty()) {
|
||||
|
|
|
@ -148,6 +148,9 @@ QVariant RootItem::data(int column, int role) const {
|
|||
return QVariant();
|
||||
}
|
||||
|
||||
case LOWER_TITLE_ROLE:
|
||||
return m_title.toLower();
|
||||
|
||||
case Qt::ItemDataRole::EditRole:
|
||||
if (column == FDS_MODEL_TITLE_INDEX) {
|
||||
return m_title;
|
||||
|
|
Loading…
Add table
Reference in a new issue