1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00

refactor: returned correct code format and some other small changes

This commit is contained in:
noavarice 2017-04-08 21:03:59 +03:00
parent 5329899d86
commit 39035f7b68
2 changed files with 16 additions and 14 deletions

View File

@ -56,6 +56,8 @@ static const QStringList DEFAULT_PATHS = loadDefaultPaths();
static const QString RICH_TEXT_PATTERN = QStringLiteral("<img title=\"%1\" src=\"key:%1\"\\>"); static const QString RICH_TEXT_PATTERN = QStringLiteral("<img title=\"%1\" src=\"key:%1\"\\>");
static const QString EMOTICONS_FILE_NAME = QStringLiteral("emoticons.xml");
/** /**
* @brief Construct list of standard directories with "emoticons" sub dir, whether these directories * @brief Construct list of standard directories with "emoticons" sub dir, whether these directories
* exist or not * exist or not
@ -69,8 +71,8 @@ QStringList loadDefaultPaths()
setlocale(LC_ALL, ""); setlocale(LC_ALL, "");
#endif #endif
const QString EMOTICONS_SUB_PATH = QDir::separator() + QStringLiteral("emoticons"); const QString EMOTICONS_SUB_PATH = QDir::separator() + QStringLiteral("emoticons");
QStringList paths QStringList paths{":/smileys", "~/.kde4/share/emoticons", "~/.kde/share/emoticons",
{":/smileys", "~/.kde4/share/emoticons", "~/.kde/share/emoticons", EMOTICONS_SUB_PATH}; EMOTICONS_SUB_PATH};
// qTox exclusive emoticons // qTox exclusive emoticons
QStandardPaths::StandardLocation location; QStandardPaths::StandardLocation location;
@ -125,7 +127,7 @@ SmileyPack& SmileyPack::getInstance()
/** /**
* @brief Does the same as listSmileyPaths, but with default paths * @brief Does the same as listSmileyPaths, but with default paths
*/ */
QVector<QPair<QString, QString>> SmileyPack::listSmileyPacks() QList<QPair<QString, QString>> SmileyPack::listSmileyPacks()
{ {
return listSmileyPacks(DEFAULT_PATHS); return listSmileyPacks(DEFAULT_PATHS);
} }
@ -135,10 +137,9 @@ QVector<QPair<QString, QString>> SmileyPack::listSmileyPacks()
* @param paths Paths where to search for file * @param paths Paths where to search for file
* @return Vector of pairs: {directoryName, absolutePathToFile} * @return Vector of pairs: {directoryName, absolutePathToFile}
*/ */
QVector<QPair<QString, QString>> SmileyPack::listSmileyPacks(const QStringList& paths) QList<QPair<QString, QString>> SmileyPack::listSmileyPacks(const QStringList& paths)
{ {
QVector<QPair<QString, QString>> smileyPacks; QList<QPair<QString, QString>> smileyPacks;
const QString fileName = QStringLiteral("emoticons.xml");
const QString homePath = QDir::homePath(); const QString homePath = QDir::homePath();
for (QString path : paths) { for (QString path : paths) {
if (path.startsWith('~')) { if (path.startsWith('~')) {
@ -152,8 +153,8 @@ QVector<QPair<QString, QString>> SmileyPack::listSmileyPacks(const QStringList&
for (const QString& subdirectory : dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { for (const QString& subdirectory : dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) {
dir.cd(subdirectory); dir.cd(subdirectory);
if (dir.exists(fileName)) { if (dir.exists(EMOTICONS_FILE_NAME)) {
QString absPath = dir.absolutePath() + QDir::separator() + fileName; QString absPath = dir.absolutePath() + QDir::separator() + EMOTICONS_FILE_NAME;
QPair<QString, QString> p{dir.dirName(), absPath}; QPair<QString, QString> p{dir.dirName(), absPath};
if (!smileyPacks.contains(p)) { if (!smileyPacks.contains(p)) {
smileyPacks.append(p); smileyPacks.append(p);
@ -204,16 +205,17 @@ bool SmileyPack::load(const QString& filename)
QDomNodeList emoticonElements = doc.elementsByTagName("emoticon"); QDomNodeList emoticonElements = doc.elementsByTagName("emoticon");
const QString itemName = QStringLiteral("file"); const QString itemName = QStringLiteral("file");
const QString childName = QStringLiteral("string"); const QString childName = QStringLiteral("string");
const int iconsCount = emoticonElements.size();
emoticons.clear(); emoticons.clear();
emoticonToIcon.clear(); emoticonToIcon.clear();
icons.clear(); icons.clear();
const int iconsCount = emoticonElements.size();
icons.reserve(iconsCount); icons.reserve(iconsCount);
for (int i = 0; i < iconsCount; ++i) { for (int i = 0; i < iconsCount; ++i) {
QString iconName = emoticonElements.at(i).attributes().namedItem(itemName).nodeValue(); QDomNode node = emoticonElements.at(i);
QString iconName = node.attributes().namedItem(itemName).nodeValue();
QString iconPath = QDir{path}.filePath(iconName); QString iconPath = QDir{path}.filePath(iconName);
icons.append(QIcon{iconPath}); icons.append(QIcon{iconPath});
QDomElement stringElement = emoticonElements.at(i).firstChildElement(childName); QDomElement stringElement = node.firstChildElement(childName);
QStringList emoticonList; QStringList emoticonList;
while (!stringElement.isNull()) { while (!stringElement.isNull()) {
QString emoticon = stringElement.text().replace("<", "&lt;").replace(">", "&gt;"); QString emoticon = stringElement.text().replace("<", "&lt;").replace(">", "&gt;");

View File

@ -30,8 +30,8 @@ class SmileyPack : public QObject
public: public:
static SmileyPack& getInstance(); static SmileyPack& getInstance();
static QVector<QPair<QString, QString>> listSmileyPacks(const QStringList& paths); static QList<QPair<QString, QString>> listSmileyPacks(const QStringList& paths);
static QVector<QPair<QString, QString>> listSmileyPacks(); static QList<QPair<QString, QString>> listSmileyPacks();
QString smileyfied(const QString& msg); QString smileyfied(const QString& msg);
QList<QStringList> getEmoticons() const; QList<QStringList> getEmoticons() const;
@ -48,7 +48,7 @@ private:
bool load(const QString& filename); bool load(const QString& filename);
QVector<QIcon> icons; QVector<QIcon> icons;
QMap<QString, QIcon const*> emoticonToIcon; QMap<QString, const QIcon*> emoticonToIcon;
QList<QStringList> emoticons; QList<QStringList> emoticons;
QString path; QString path;
mutable QMutex loadingMutex; mutable QMutex loadingMutex;