libcalamares: deal with QRegExp

This commit is contained in:
Adriaan de Groot 2023-09-03 15:21:26 +02:00
parent 99d012c5ce
commit fe8939e745
2 changed files with 13 additions and 10 deletions

View File

@ -15,6 +15,7 @@
#include "utils/String.h" #include "utils/String.h"
#include <QFile> #include <QFile>
#include <QRegularExpression>
#include <QString> #include <QString>
static const char TZ_DATA_FILE[] = "/usr/share/zoneinfo/zone.tab"; static const char TZ_DATA_FILE[] = "/usr/share/zoneinfo/zone.tab";
@ -108,7 +109,7 @@ loadTZData( RegionVector& regions, ZoneVector& zones, QTextStream& in )
continue; continue;
} }
QStringList list = line.split( QRegExp( "[\t ]" ), SplitSkipEmptyParts ); QStringList list = line.split( QRegularExpression( "[\t ]" ), SplitSkipEmptyParts );
if ( list.size() < 3 ) if ( list.size() < 3 )
{ {
continue; continue;
@ -140,7 +141,7 @@ loadTZData( RegionVector& regions, ZoneVector& zones, QTextStream& in )
} }
QString position = list.at( 1 ); QString position = list.at( 1 );
int cooSplitPos = position.indexOf( QRegExp( "[-+]" ), 1 ); int cooSplitPos = position.indexOf( QRegularExpression( "[-+]" ), 1 );
double latitude; double latitude;
double longitude; double longitude;
if ( cooSplitPos > 0 ) if ( cooSplitPos > 0 )

View File

@ -18,7 +18,7 @@
#include <QByteArray> #include <QByteArray>
#include <QFile> #include <QFile>
#include <QFileInfo> #include <QFileInfo>
#include <QRegExp> #include <QRegularExpression>
void void
operator>>( const YAML::Node& node, QStringList& v ) operator>>( const YAML::Node& node, QStringList& v )
@ -32,9 +32,6 @@ operator>>( const YAML::Node& node, QStringList& v )
namespace CalamaresUtils namespace CalamaresUtils
{ {
const QRegExp _yamlScalarTrueValues = QRegExp( "true|True|TRUE|on|On|ON" );
const QRegExp _yamlScalarFalseValues = QRegExp( "false|False|FALSE|off|Off|OFF" );
QVariant QVariant
yamlToVariant( const YAML::Node& node ) yamlToVariant( const YAML::Node& node )
{ {
@ -60,21 +57,26 @@ yamlToVariant( const YAML::Node& node )
QVariant QVariant
yamlScalarToVariant( const YAML::Node& scalarNode ) yamlScalarToVariant( const YAML::Node& scalarNode )
{ {
static const auto yamlScalarTrueValues = QRegularExpression( "^(true|True|TRUE|on|On|ON)$" );
static const auto yamlScalarFalseValues = QRegularExpression( "^(false|False|FALSE|off|Off|OFF)$" );
static const auto yamlIntegerValues = QRegularExpression( "^[-+]?\\d+$" );
static const auto yamlFloatValues = QRegularExpression( "^[-+]?\\d*\\.?\\d+$" );
std::string stdScalar = scalarNode.as< std::string >(); std::string stdScalar = scalarNode.as< std::string >();
QString scalarString = QString::fromStdString( stdScalar ); QString scalarString = QString::fromStdString( stdScalar );
if ( _yamlScalarTrueValues.exactMatch( scalarString ) ) if ( yamlScalarTrueValues.match( scalarString ).hasMatch() )
{ {
return QVariant( true ); return QVariant( true );
} }
if ( _yamlScalarFalseValues.exactMatch( scalarString ) ) if ( yamlScalarFalseValues.match( scalarString ).hasMatch() )
{ {
return QVariant( false ); return QVariant( false );
} }
if ( QRegExp( "[-+]?\\d+" ).exactMatch( scalarString ) ) if ( yamlIntegerValues.match( scalarString ).hasMatch() )
{ {
return QVariant( scalarString.toLongLong() ); return QVariant( scalarString.toLongLong() );
} }
if ( QRegExp( "[-+]?\\d*\\.?\\d+" ).exactMatch( scalarString ) ) if ( yamlFloatValues.match( scalarString ).hasMatch() )
{ {
return QVariant( scalarString.toDouble() ); return QVariant( scalarString.toDouble() );
} }