Speedup provider compilation
4 files changed, 5 insertions, 8 deletions
diff --git a/scripts/emoji_codegen.py b/scripts/emoji_codegen.py
index f54b03d0..a0758454 100755
--- a/scripts/emoji_codegen.py
+++ b/scripts/emoji_codegen.py
@@ -14,7 +14,7 @@ class Emoji(object):
def generate_qml_list(**kwargs):
tmpl = Template('''
-const QVector<Emoji> emoji::Provider::emoji = {
+const std::array<Emoji, {{ sum([len(c[1]) for c in kwargs.items()]) }}> emoji::Provider::emoji = {
{%- for c in kwargs.items() %}
// {{ c[0].capitalize() }}
{%- for e in c[1] %}
diff --git a/src/emoji/EmojiModel.cpp b/src/emoji/EmojiModel.cpp
index 6f9ea9db..3381f767 100644
--- a/src/emoji/EmojiModel.cpp
+++ b/src/emoji/EmojiModel.cpp
@@ -45,7 +45,7 @@ EmojiModel::roleNames() const
int
EmojiModel::rowCount(const QModelIndex &parent) const
{
- return parent == QModelIndex() ? Provider::emoji.count() : 0;
+ return parent == QModelIndex() ? Provider::emoji.size() : 0;
}
QVariant
diff --git a/src/emoji/Provider.cpp b/src/emoji/Provider.cpp
index f5e7c0e8..f98e5d34 100644
--- a/src/emoji/Provider.cpp
+++ b/src/emoji/Provider.cpp
@@ -7,7 +7,7 @@
using namespace emoji;
-const QVector<Emoji> emoji::Provider::emoji = {
+const std::array<Emoji, 3650> emoji::Provider::emoji = {
// People
Emoji{QStringLiteral(u"\U0001F600"),
QStringLiteral(u"grinning"),
diff --git a/src/emoji/Provider.h b/src/emoji/Provider.h
index 07a513ae..566c53a0 100644
--- a/src/emoji/Provider.h
+++ b/src/emoji/Provider.h
@@ -7,10 +7,7 @@
#pragma once
#include <QObject>
-#include <QSet>
-#include <QString>
-#include <QVector>
-#include <vector>
+#include <array>
namespace emoji {
Q_NAMESPACE
@@ -49,7 +46,7 @@ class Provider
{
public:
// all emoji for QML purposes
- static const QVector<Emoji> emoji;
+ static const std::array<Emoji, 3650> emoji;
};
} // namespace emoji
|