/
githubmirror
/
x64dbg
Обзор
Документация
Войти
/
githubmirror
/
x64dbg
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
development
src/gui/Src/Utils/LongLongValidator.cpp
111 строк
3 KB
mrexodia
DBG+GUI+PROJECT: switched to Qt 5.6.0 (check the wiki for an updated compile guide)
02 июн 2016, 10:46
Не верифицирован
02 июн 2016, 10:46
cd0fe88
Код
Авторство
О чём код?
#include "LongLongValidator.h" LongLongValidator::LongLongValidator(DataType t, QObject* parent) : QValidator(parent), dt(t) { } LongLongValidator::~LongLongValidator() { } void LongLongValidator::fixup(QString & input) const { Q_UNUSED(input); } QValidator::State LongLongValidator::validate(QString & input, int & pos) const { Q_UNUSED(pos); bool ok = false; if(input.isEmpty()) return State::Acceptable; switch(dt) { case SignedShort: input.toShort(&ok); if(!ok) { if(input == QString('-')) return State::Acceptable; if(input.toULongLong(&ok) > 32767) { if(ok) { input = "32767"; return State::Acceptable; } } else if(input.toLongLong(&ok) < -32768) { if(ok) { input = "-32768"; return State::Acceptable; } } return State::Invalid; } return State::Acceptable; case UnsignedShort: input.toShort(&ok); if(!ok) { if(input.toULongLong(&ok) > 65535) { if(ok) { input = "65535"; return State::Acceptable; } } return State::Invalid; } return State::Acceptable; case SignedLong: input.toLong(&ok); if(!ok) { if(input == QString('-')) return State::Acceptable; if(input.toULongLong(&ok) > 2147483647LL) { if(ok) { input = "2147483647"; return State::Acceptable; } } else if(input.toLongLong(&ok) < -2147483648LL) { if(ok) { input = "-2147483648"; return State::Acceptable; } } return State::Invalid; } return State::Acceptable; case UnsignedLong: input.toULong(&ok); if(!ok) { if(input.toULongLong(&ok) > 4294967295) if(ok) { input = "4294967295"; return State::Acceptable; } return State::Invalid; } return State::Acceptable; case SignedLongLong: input.toLongLong(&ok); if(!ok) return input == QChar('-') ? State::Acceptable : State::Invalid; return State::Acceptable; case UnsignedLongLong: input.toULongLong(&ok); return ok ? State::Acceptable : State::Invalid; } return State::Invalid; }