TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
ttkregularexpression.cpp
Go to the documentation of this file.
1 #include "ttkregularexpression.h"
2 
4  : m_regular()
5 #if TTK_QT_VERSION_CHECK(5,0,0) && !TTK_QT_VERSION_CHECK(5,1,0)
6  , m_match(m_regular.match({}))
7 #endif
8 {
9 
10 }
11 
12 TTKRegularExpression::TTKRegularExpression(const QString &pattern, int option)
13  : m_regular(pattern)
14 #if TTK_QT_VERSION_CHECK(5,0,0) && !TTK_QT_VERSION_CHECK(5,1,0)
15  , m_match(m_regular.match({}))
16 #endif
17 {
18  setPatternOptions(option);
19 }
20 
22 {
23  return m_regular.pattern();
24 }
25 
26 void TTKRegularExpression::setPattern(const QString &v)
27 {
28  m_regular.setPattern(v);
29 }
30 
32 {
33  int option = PatternOption::NoPatternOption;
34  if(!isGreediness())
35  {
36  option |= PatternOption::InvertedGreedinessOption;
37  }
38 
39  if(!isCaseSensitivity())
40  {
41  option |= PatternOption::CaseInsensitiveOption;
42  }
43  return option;
44 }
45 
47 {
48  if(option & PatternOption::InvertedGreedinessOption)
49  {
50  setGreediness(false);
51  }
52 
53  if(option & PatternOption::CaseInsensitiveOption)
54  {
55  setCaseSensitivity(false);
56  }
57 }
58 
59 bool TTKRegularExpression::hasMatch(const QString &str)
60 {
61 #if TTK_QT_VERSION_CHECK(5,0,0)
62  m_match = m_regular.match(str);
63  return m_match.hasMatch();
64 #else
65  return str.indexOf(m_regular) != -1;
66 #endif
67 }
68 
69 int TTKRegularExpression::match(const QString &str, int pos)
70 {
71 #if TTK_QT_VERSION_CHECK(5,0,0)
72  m_match = m_regular.match(str, pos);
73  return m_match.capturedStart();
74 #else
75  return m_regular.indexIn(str, pos);
76 #endif
77 }
78 
79 QString TTKRegularExpression::captured(int index) const
80 {
81 #if TTK_QT_VERSION_CHECK(5,0,0)
82  return m_match.captured(index);
83 #else
84  return m_regular.cap(index);
85 #endif
86 }
87 
89 {
90 #if TTK_QT_VERSION_CHECK(5,0,0)
91  return m_match.capturedLength();
92 #else
93  return m_regular.matchedLength();
94 #endif
95 }
96 
98 {
99 #if TTK_QT_VERSION_CHECK(5,0,0)
100  const QRegularExpression::PatternOptions flags = m_regular.patternOptions();
101  return !(flags & QRegularExpression::InvertedGreedinessOption);
102 #else
103  return !m_regular.isMinimal();
104 #endif
105 }
106 
108 {
109 #if TTK_QT_VERSION_CHECK(5,0,0)
110  const QRegularExpression::PatternOptions flags = m_regular.patternOptions();
111  m_regular.setPatternOptions(v ? (flags & ~QRegularExpression::InvertedGreedinessOption) : (flags | QRegularExpression::InvertedGreedinessOption));
112 #else
113  m_regular.setMinimal(!v);
114 #endif
115 }
116 
118 {
119 #if TTK_QT_VERSION_CHECK(5,0,0)
120  const QRegularExpression::PatternOptions flags = m_regular.patternOptions();
121  return !(flags & QRegularExpression::CaseInsensitiveOption);
122 #else
123  return m_regular.caseSensitivity() == Qt::CaseSensitive;
124 #endif
125 }
126 
128 {
129 #if TTK_QT_VERSION_CHECK(5,0,0)
130  const QRegularExpression::PatternOptions flags = m_regular.patternOptions();
131  m_regular.setPatternOptions(v ? (flags & ~QRegularExpression::CaseInsensitiveOption) : (flags | QRegularExpression::CaseInsensitiveOption));
132 #else
133  m_regular.setCaseSensitivity(v ? Qt::CaseSensitive : Qt::CaseInsensitive);
134 #endif
135 }
136 
137 QString TTKRegularExpression::escape(const QString &str)
138 {
139 #if TTK_QT_VERSION_CHECK(5,0,0)
140  return QRegularExpression::escape(str);
141 #else
142  return QRegExp::escape(str);
143 #endif
144 }
145 
146 #if TTK_QT_VERSION_CHECK(5,0,0)
147 const QRegularExpression &TTKRegularExpression::value() const
148 #else
150 #endif
151 {
152  return m_regular;
153 }
154 
155 #if TTK_QT_VERSION_CHECK(5,0,0)
156 TTKRegularExpression::operator QRegularExpression &()
157 #else
158 TTKRegularExpression::operator QRegExp &()
159 #endif
160 {
161  return m_regular;
162 }
163 
164 #if TTK_QT_VERSION_CHECK(5,0,0)
165 TTKRegularExpression::operator const QRegularExpression &() const
166 #else
167 TTKRegularExpression::operator const QRegExp &() const
168 #endif
169 {
170  return m_regular;
171 }
QString captured(int index) const
flags
Definition: http_parser.h:135
void setPatternOptions(const int option)
#define TTK_QT_VERSION_CHECK(major, minor, patch)
Definition: ttkqtglobal.h:31
void setPattern(const QString &v)
bool hasMatch(const QString &str)
const QRegExp & value() const
static QString escape(const QString &str)
int match(const QString &str, int pos=0)
#define const
Definition: zconf.h:233