diff options
Diffstat (limited to 'Swift/QtUI/QtEmoticonsGrid.cpp')
-rw-r--r-- | Swift/QtUI/QtEmoticonsGrid.cpp | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/Swift/QtUI/QtEmoticonsGrid.cpp b/Swift/QtUI/QtEmoticonsGrid.cpp index 4a599ea..4c8c024 100644 --- a/Swift/QtUI/QtEmoticonsGrid.cpp +++ b/Swift/QtUI/QtEmoticonsGrid.cpp @@ -4,38 +4,42 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ -#include "QtEmoticonsGrid.h" +/* + * Copyright (c) 2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ + +#include <Swift/QtUI/QtEmoticonsGrid.h> #include <set> -#include <QPushButton> +#include <boost/range/adaptor/reversed.hpp> -#include <Swiften/Base/foreach.h> +#include <QPushButton> #include <Swift/QtUI/QtSwiftUtil.h> namespace Swift { -typedef std::map<std::string, std::string> EmoticonsMap; // Without this typedef compiler complains when using foreach - QtEmoticonsGrid::QtEmoticonsGrid(const std::map<std::string, std::string>& emoticons, QWidget* parent) : QGridLayout(parent) { - makeUniqueEmoticonsMap(emoticons); - - // Create grid: 3 columns, [uniqueEmoticons_.size()/3] rows - int row = 0; - int column = 0; - - foreach(EmoticonsMap::value_type emoticon, uniqueEmoticons_) { - QtEmoticonCell* newCell = new QtEmoticonCell(P2QSTRING(emoticon.first), P2QSTRING(emoticon.second)); - addWidget(newCell, row, column); - connect(newCell, SIGNAL(emoticonClicked(QString)), this, SLOT(emoticonClickedSlot(QString))); - - column++; - if (column >= 3) { - column = 0; - row++; - } - } + makeUniqueEmoticonsMap(emoticons); + + // Create grid: 3 columns, [uniqueEmoticons_.size()/3] rows + int row = 0; + int column = 0; + + for (auto&& emoticon : uniqueEmoticons_) { + QtEmoticonCell* newCell = new QtEmoticonCell(P2QSTRING(emoticon.first), P2QSTRING(emoticon.second)); + addWidget(newCell, row, column); + connect(newCell, SIGNAL(emoticonClicked(QString)), this, SLOT(emoticonClickedSlot(QString))); + + column++; + if (column >= 3) { + column = 0; + row++; + } + } } QtEmoticonsGrid::~QtEmoticonsGrid() { @@ -43,17 +47,17 @@ QtEmoticonsGrid::~QtEmoticonsGrid() { } void QtEmoticonsGrid::makeUniqueEmoticonsMap(const std::map<std::string, std::string>& emoticons) { - std::set<std::string> paths; - reverse_foreach(EmoticonsMap::value_type emoticon, emoticons) { - if (paths.find(emoticon.second) == paths.end()) { - uniqueEmoticons_.insert(emoticon); - paths.insert(emoticon.second); - } - } + std::set<std::string> paths; + for (auto&& emoticon : boost::adaptors::reverse(emoticons)) { + if (paths.find(emoticon.second) == paths.end()) { + uniqueEmoticons_.insert(emoticon); + paths.insert(emoticon.second); + } + } } void QtEmoticonsGrid::emoticonClickedSlot(QString emoticonAsText) { - emit emoticonClicked(emoticonAsText); + emit emoticonClicked(emoticonAsText); } } |