Get category switching working

This commit is contained in:
Loren Burkholder 2021-01-22 20:07:23 -05:00
parent e3f95fcdab
commit bc7cf9ef39
4 changed files with 42 additions and 41 deletions

View file

@ -63,14 +63,14 @@ EmojiProxyModel::EmojiProxyModel(QObject *parent)
EmojiProxyModel::~EmojiProxyModel() {}
EmojiCategory
Emoji::Category
EmojiProxyModel::category() const
{
return category_;
}
void
EmojiProxyModel::setCategory(EmojiCategory cat)
EmojiProxyModel::setCategory(Emoji::Category cat)
{
if (category_ == cat) {
return;
@ -106,7 +106,7 @@ EmojiProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent
const Emoji emoji = index.data(static_cast<int>(EmojiModel::Roles::Emoji)).value<Emoji>();
// TODO: Add favorites / recently used
if (category_ != EmojiCategory::Search) {
if (category_ != Emoji::Category::Search) {
return emoji.category == category_;
}

View file

@ -36,15 +36,15 @@ class EmojiProxyModel : public QSortFilterProxyModel
Q_OBJECT
Q_PROPERTY(
emoji::EmojiCategory category READ category WRITE setCategory NOTIFY categoryChanged)
emoji::Emoji::Category category READ category WRITE setCategory NOTIFY categoryChanged)
Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
public:
explicit EmojiProxyModel(QObject *parent = nullptr);
~EmojiProxyModel() override;
EmojiCategory category() const;
void setCategory(EmojiCategory cat);
Emoji::Category category() const;
void setCategory(Emoji::Category cat);
QString filter() const;
void setFilter(const QString &filter);
@ -57,7 +57,7 @@ protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
private:
EmojiCategory category_ = EmojiCategory::Search;
Emoji::Category category_ = Emoji::Category::Search;
emoji::Provider emoji_provider_;
};
}
}

View file

@ -26,32 +26,33 @@
namespace emoji {
Q_NAMESPACE
enum class EmojiCategory
{
People,
Nature,
Food,
Activity,
Travel,
Objects,
Symbols,
Flags,
Search
};
Q_ENUM_NS(EmojiCategory)
struct Emoji
{
Q_GADGET
public:
enum class Category
{
People,
Nature,
Food,
Activity,
Travel,
Objects,
Symbols,
Flags,
Search
};
Q_ENUM(Category)
Q_PROPERTY(const QString &unicode MEMBER unicode)
Q_PROPERTY(const QString &shortName MEMBER shortName)
Q_PROPERTY(emoji::EmojiCategory category MEMBER category)
Q_PROPERTY(emoji::Emoji::Category category MEMBER category)
public:
QString unicode;
QString shortName;
EmojiCategory category;
Category category;
};
class Provider