File: QtEmoticonsGrid.cpp

package info (click to toggle)
swift-im 5.0~alpha2.145.g12d031cf8%2Bdfsg-4.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 27,256 kB
  • sloc: cpp: 134,640; python: 2,701; sh: 774; xml: 561; javascript: 69; makefile: 59
file content (40 lines) | stat: -rw-r--r-- 1,081 bytes parent folder | download
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() {

    }

}