Krita Source Code Documentation
Loading...
Searching...
No Matches
PyKrita::version_checker Class Reference

Class version_checker. More...

#include <version_checker.h>

Public Types

enum  operation {
  invalid , undefined , less , less_or_equal ,
  greater , greater_or_equal , not_equal , equal ,
  last__
}
 

Public Member Functions

void bind_second (const version &rhs)
 
bool isEmpty () const
 
bool isValid () const
 
QString operationToString () const
 
bool operator() (const version &left)
 
version required () const
 
 version_checker (const operation op=invalid)
 Default constructor.
 

Static Public Member Functions

static version_checker fromString (const QString &version_info)
 

Private Attributes

operation m_op
 
version m_rhs
 

Detailed Description

Class version_checker.

Definition at line 184 of file version_checker.h.

Member Enumeration Documentation

◆ operation

Enumerator
invalid 
undefined 
less 
less_or_equal 
greater 
greater_or_equal 
not_equal 
equal 
last__ 

Definition at line 187 of file version_checker.h.

Constructor & Destructor Documentation

◆ version_checker()

PyKrita::version_checker::version_checker ( const operation op = invalid)
inlineexplicit

Default constructor.

Definition at line 200 of file version_checker.h.

201 : m_op(op) {
202 }

Member Function Documentation

◆ bind_second()

void PyKrita::version_checker::bind_second ( const version & rhs)
inline

Definition at line 212 of file version_checker.h.

212 {
213 m_rhs = rhs;
214 }

References m_rhs.

◆ fromString()

static version_checker PyKrita::version_checker::fromString ( const QString & version_info)
inlinestatic

Definition at line 269 of file version_checker.h.

269 {
270 version_checker checker(invalid);
271 if (version_info.isEmpty())
272 return checker;
273
274 bool lookup_next_char = false;
275 int strip_lead_pos = 0;
276 switch (version_info.at(0).toLatin1()) {
277 case '<':
278 checker.m_op = less;
279 lookup_next_char = true;
280 break;
281 case '>':
282 checker.m_op = greater;
283 lookup_next_char = true;
284 break;
285 case '=':
286 strip_lead_pos = 1;
287 checker.m_op = equal;
288 break;
289 default:
290 strip_lead_pos = 0;
291 checker.m_op = equal;
292 break;
293 }
294 if (lookup_next_char) {
295 if (version_info.at(1).toLatin1() == '=') {
296 // NOTE Shift state
297 checker.m_op = operation(int(checker.m_op) + 1);
298 strip_lead_pos = 2;
299 } else {
300 strip_lead_pos = 1;
301 }
302 }
303 //
304 QString rhs_str = version_info.mid(strip_lead_pos).trimmed();
305 version rhs = version::fromString(rhs_str);
306 if (rhs.isValid())
307 checker.bind_second(rhs);
308 else
309 checker.m_op = invalid;
310 return checker;
311 }
version_checker(const operation op=invalid)
Default constructor.
static version fromString(const QString &version_str)

References bind_second(), equal, PyKrita::version::fromString(), greater, invalid, PyKrita::version::isValid(), less, and m_op.

◆ isEmpty()

bool PyKrita::version_checker::isEmpty ( ) const
inline

Definition at line 208 of file version_checker.h.

208 {
209 return m_op == undefined;
210 }

References m_op, and undefined.

◆ isValid()

bool PyKrita::version_checker::isValid ( ) const
inline

Definition at line 204 of file version_checker.h.

204 {
205 return m_op != invalid;
206 }

References invalid, and m_op.

◆ operationToString()

QString PyKrita::version_checker::operationToString ( ) const
inline

Definition at line 241 of file version_checker.h.

241 {
242 QString result;
243 switch (m_op) {
244 case less:
245 result = " < ";
246 break;
247 case greater:
248 result = " > ";
249 break;
250 case equal:
251 result = " = ";
252 break;
253 case not_equal:
254 result = " != ";
255 break;
256 case less_or_equal:
257 result = " <= ";
258 break;
259 case greater_or_equal:
260 result = " >= ";
261 break;
262 default:
263 Q_ASSERT(!"Sanity check");
264 break;
265 }
266 return result;
267 }

References equal, greater, greater_or_equal, less, less_or_equal, m_op, and not_equal.

◆ operator()()

bool PyKrita::version_checker::operator() ( const version & left)
inline

Definition at line 216 of file version_checker.h.

216 {
217 switch (m_op) {
218 case less:
219 return left < m_rhs;
220 case greater:
221 return left > m_rhs;
222 case equal:
223 return left == m_rhs;
224 case not_equal:
225 return left != m_rhs;
226 case less_or_equal:
227 return left <= m_rhs;
228 case greater_or_equal:
229 return left >= m_rhs;
230 default:
231 Q_ASSERT(!"Sanity check");
232 break;
233 }
234 return false;
235 }

References equal, greater, greater_or_equal, less, less_or_equal, m_op, m_rhs, and not_equal.

◆ required()

version PyKrita::version_checker::required ( ) const
inline

Definition at line 237 of file version_checker.h.

237 {
238 return m_rhs;
239 }

References m_rhs.

Member Data Documentation

◆ m_op

operation PyKrita::version_checker::m_op
private

Definition at line 314 of file version_checker.h.

◆ m_rhs

version PyKrita::version_checker::m_rhs
private

Definition at line 315 of file version_checker.h.


The documentation for this class was generated from the following file: