TTKMusicPlayer  4.1.3.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
ttksuperenum.cpp
Go to the documentation of this file.
1 #include "ttksuperenum.h"
2 
3 #include <QStringList>
4 
5 TTKSuperEnum::TTKSuperEnum(const QString &value)
6  : m_enumValue()
7 {
8  int enumValue = 0;
9  const QStringList &enums = value.split(',');
10 
11  for(QString data : qAsConst(enums))
12  {
13  const int pos = data.indexOf('=');
14  if(pos != TTKSuperEnum::Null)
15  {
16  const QString &v = data.right(data.length() - pos - 1).trimmed();
17  enumValue = v.toInt(nullptr, (v.startsWith("0x") || v.startsWith("0X")) ? 16 : 10);
18  data = data.left(pos);
19  }
20 
21  m_enumValue[enumValue] = data.trimmed();
22  enumValue++;
23  }
24 }
25 
26 QString TTKSuperEnum::keyToString(int value) const
27 {
28  if(TTKSuperEnum::Null == value)
29  {
30  return "Null";
31  }
32 
33  const auto &it = m_enumValue.find(value);
34  return it != m_enumValue.end() ? it->second : "Invalid";
35 }
36 
37 int TTKSuperEnum::stringToKey(const QString &name) const
38 {
39  if("Null" == name)
40  {
41  return TTKSuperEnum::Null;
42  }
43 
44  for(auto &&item : qAsConst(m_enumValue))
45  {
46  if(item.second == name)
47  {
48  return item.first;
49  }
50  }
51  return TTKSuperEnum::Null;
52 }
static constexpr int Null
Definition: ttksuperenum.h:31
QString keyToString(int value) const
#define qAsConst
Definition: ttkqtglobal.h:51
const char * name
Definition: http_parser.c:458
TTKSuperEnum(const QString &value)
Definition: ttksuperenum.cpp:5
std::unordered_map< int, QString > m_enumValue
Definition: ttksuperenum.h:49
int stringToKey(const QString &name) const