Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_search_model.h
Go to the documentation of this file.
1
6
7#ifndef CARD_SEARCH_MODEL_H
8#define CARD_SEARCH_MODEL_H
9
12
13#include <QAbstractListModel>
14#include <QList>
15#include <QModelIndex>
16#include <QSharedPointer>
17#include <QString>
18#include <QStringList>
19#include <qnamespace.h>
20#include <qtmetamacros.h>
21
23class QObject;
24
25class CardSearchModel : public QAbstractListModel
26{
27 Q_OBJECT
28public:
30 {
31 CardInfoRole = Qt::UserRole + 1,
32 };
33
34 explicit CardSearchModel(CardDatabaseDisplayModel *sourceModel, QObject *parent = nullptr);
35
36 [[nodiscard]] int rowCount(const QModelIndex &parent = QModelIndex()) const override;
37 [[nodiscard]] QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
38
39 void updateSearchResults(const QString &query); // Update results based on input
40
41 void setSearchLanguage(const CardSearchLanguage &searchLang)
42 {
43 if (searchLanguage == searchLang) {
44 return;
45 }
46 searchLanguage = searchLang;
47 }
48
49private:
55
57 [[nodiscard]] QStringList searchableNames(const CardInfoPtr &card) const;
58
60 [[nodiscard]] QString sortableName(const CardInfoPtr &card) const;
61
65};
66
67#endif // CARD_SEARCH_MODEL_H
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:15
Definition card_database_display_model.h:27
void updateSearchResults(const QString &query)
Definition card_search_model.cpp:43
void setSearchLanguage(const CardSearchLanguage &searchLang)
Definition card_search_model.h:41
QString sortableName(const CardInfoPtr &card) const
The name used to break distance ties when sorting suggestions.
Definition card_search_model.cpp:129
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition card_search_model.cpp:18
QStringList searchableNames(const CardInfoPtr &card) const
The names a card is searched by with the current search language.
Definition card_search_model.cpp:115
QList< SearchResult > searchResults
Definition card_search_model.h:63
CardSearchLanguage searchLanguage
Definition card_search_model.h:64
CardDatabaseDisplayModel * sourceModel
Definition card_search_model.h:62
CardSearchModel(CardDatabaseDisplayModel *sourceModel, QObject *parent=nullptr)
Definition card_search_model.cpp:13
CardSearchRoles
Definition card_search_model.h:30
@ CardInfoRole
Definition card_search_model.h:31
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition card_search_model.cpp:24
Definition remote_connection_controller.h:20
The card language and matching mode searches run against.
Definition card_localization.h:27
Definition card_search_model.h:51
int distance
Definition card_search_model.h:53
CardInfoPtr card
Definition card_search_model.h:52