diff --git a/applets/kimpanel/backend/ibus/emojier/emojier.cpp b/applets/kimpanel/backend/ibus/emojier/emojier.cpp --- a/applets/kimpanel/backend/ibus/emojier/emojier.cpp +++ b/applets/kimpanel/backend/ibus/emojier/emojier.cpp @@ -58,42 +58,6 @@ QStringList annotations; }; -class TextImageProvider : public QQuickImageProvider -{ -public: - TextImageProvider() - : QQuickImageProvider(QQuickImageProvider::Pixmap) - { - } - - QPixmap requestPixmap(const QString &id, QSize *_size, const QSize &requestedSize) override - { - const QString renderString = id.mid(1); //drop initial / - - QSize size = requestedSize; - QFont font; - if (!size.isValid()) { - QPixmap dummy; - QFontMetrics fm(font, &dummy); - size = { fm.horizontalAdvance(renderString), fm.height() }; - } else { - font.setPointSize((requestedSize.height() * 3) / 4); - } - if (_size) { - *_size = size; - } - - QPixmap pixmap(size.width(), size.height()); - pixmap.fill(Qt::transparent); - QPainter p; - p.begin(&pixmap); - p.setFont(font); - p.drawText(QRect(0, 0, size.width(), size.height()), Qt::AlignCenter, renderString); - p.end(); - return pixmap; - } -}; - class AbstractEmojiModel : public QAbstractListModel { Q_OBJECT @@ -405,7 +369,6 @@ QQmlApplicationEngine engine; new EngineWatcher(&engine); - engine.addImageProvider(QLatin1String("text"), new TextImageProvider); engine.load(QUrl(QStringLiteral("qrc:/ui/emojier.qml"))); QObject::connect(service, &KDBusService::activateRequested, &engine, [&engine](const QStringList &/*arguments*/, const QString &/*workingDirectory*/) { diff --git a/applets/kimpanel/backend/ibus/emojier/ui/CategoryAction.qml b/applets/kimpanel/backend/ibus/emojier/ui/CategoryAction.qml --- a/applets/kimpanel/backend/ibus/emojier/ui/CategoryAction.qml +++ b/applets/kimpanel/backend/ibus/emojier/ui/CategoryAction.qml @@ -21,11 +21,25 @@ import org.kde.kirigami 2.6 as Kirigami Kirigami.Action { + function getIcon(category) { + switch (category.trim()) { + case 'Activities': return 'games-highscores' + case 'Animals & Nature': return 'animal' + case 'Flags': return 'flag' + case 'Food & Drink': return 'food' + case 'Objects': return 'object' + case 'Smileys & People': return 'smiley' + case 'Symbols': return 'love' + case 'Travel & Places': return 'globe' + default: return 'folder' + } + } + property string category checked: window.pageStack.get(0).title === text text: i18nd("ibus10", category) //Get the translation of emoji categories from ibus10.mo installed by ibus - icon.name: "image://text/" + emoji.findFirstEmojiForCategory(category) + icon.name: getIcon(category) onTriggered: { window.pageStack.replace("qrc:/ui/CategoryPage.qml", {title: text, category: category, model: emoji }) }