summaryrefslogtreecommitdiffstats
blob: a592e909068f73e54d6d81d61a12f1102c81f610 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 * Copyright (c) 2017 Isode Limited.
 * All rights reserved.
 * See the COPYING file for more information.
 */

#include <Swift/QtUI/QtEmoticonsGrid.h>

#include <unordered_set>

#include <SwifTools/EmojiMapper.h>

#include <Swift/QtUI/QtEmojiCell.h>
#include <Swift/QtUI/QtSwiftUtil.h>

namespace Swift {

    QtEmoticonsGrid::QtEmoticonsGrid(const std::map<std::string, std::string>& emoticonsMap) : QtEmojisGrid() {
        std::unordered_set<std::string> usedEmoticons;
        for (const auto& emoticonPair : emoticonsMap) {
            if (usedEmoticons.find(emoticonPair.second) == usedEmoticons.end()) {
                usedEmoticons.insert(emoticonPair.second);

                auto filePath = P2QSTRING(emoticonPair.second);
                if (filePath.startsWith("qrc:/")) {
                    filePath.remove(0, 3);
                }
                auto icon = QIcon(filePath);
                auto text = P2QSTRING(emoticonPair.first);

                addEmoticon(icon, text);
            }
        }
    }

    QtEmoticonsGrid::~QtEmoticonsGrid() {

    }

}