QmlDesigner: Prefer std::get_if to std::get for variants

It cannot not throw, so no exceptions code is generated. And it is quite
often shorter too.

Change-Id: Icd555cedb880a1547b0ddcbcdd74fc21feb83ccb
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Marco Bubke
2023-08-22 23:27:16 +02:00
parent 7f323ee1b3
commit e0314c8204
2 changed files with 41 additions and 32 deletions

View File

@@ -344,10 +344,13 @@ public:
ConnectionEditorStatements::Variable lhs() const ConnectionEditorStatements::Variable lhs() const
{ {
if (!couldBeLHS()) if (!isValid())
return {}; return {};
return std::get<ConnectionEditorStatements::Variable>(m_rhs); if (auto rhs = std::get_if<ConnectionEditorStatements::Variable>(&m_rhs))
return *rhs;
return {};
} }
ConnectionEditorStatements::Variable variable() const ConnectionEditorStatements::Variable variable() const
@@ -355,8 +358,8 @@ public:
if (!isValid()) if (!isValid())
return {}; return {};
if (std::holds_alternative<ConnectionEditorStatements::Variable>(m_rhs)) if (auto rhs = std::get_if<ConnectionEditorStatements::Variable>(&m_rhs))
return std::get<ConnectionEditorStatements::Variable>(m_rhs); return *rhs;
return {}; return {};
} }
@@ -702,8 +705,8 @@ public:
MatchedCondition *currentCondition() MatchedCondition *currentCondition()
{ {
if (std::holds_alternative<ConditionalStatement>(m_handler)) if (auto handler = std::get_if<ConditionalStatement>(&m_handler))
return &std::get<ConditionalStatement>(m_handler).condition; return &handler->condition;
return nullptr; return nullptr;
} }
@@ -997,8 +1000,8 @@ bool ConnectionEditorEvaluator::visit(QmlJS::AST::CallExpression *callExpression
callExpression->accept(&callVisitor); callExpression->accept(&callVisitor);
if (callVisitor.isValid()) { if (callVisitor.isValid()) {
ConnectionEditorStatements::RightHandSide rhs = callVisitor.rhs(); ConnectionEditorStatements::RightHandSide rhs = callVisitor.rhs();
if (std::holds_alternative<ConnectionEditorStatements::MatchedFunction>(rhs)) if (auto rhs_ = std::get_if<ConnectionEditorStatements::MatchedFunction>(&rhs))
*currentStatement = std::get<ConnectionEditorStatements::MatchedFunction>(rhs); *currentStatement = *rhs_;
else else
return d->checkValidityAndReturn(false, "Invalid Matched Function type."); return d->checkValidityAndReturn(false, "Invalid Matched Function type.");
} else { } else {

View File

@@ -19,7 +19,7 @@ ImageCacheFontCollector::~ImageCacheFontCollector() = default;
namespace { namespace {
QByteArray fileToByteArray(QString const &filename) QByteArray fileToByteArray(const QString &filename)
{ {
QFile file(filename); QFile file(filename);
QFileInfo fileInfo(file); QFileInfo fileInfo(file);
@@ -98,16 +98,18 @@ void ImageCacheFontCollector::start(Utils::SmallStringView name,
{ {
QFont font; QFont font;
if (resolveFont(QString(name), font) >= 0) { if (resolveFont(QString(name), font) >= 0) {
auto &&auxiliaryData = std::get<ImageCache::FontCollectorSizeAuxiliaryData>(auxiliaryDataValue); if (auto auxiliaryData = std::get_if<ImageCache::FontCollectorSizeAuxiliaryData>(
QColor textColor = auxiliaryData.colorName; &auxiliaryDataValue)) {
QSize size = auxiliaryData.size; QColor textColor = auxiliaryData->colorName;
QString text = font.family() + "\n" + auxiliaryData.text; QSize size = auxiliaryData->size;
QString text = font.family() + "\n" + auxiliaryData->text;
QImage image = createFontImage(text, textColor, font, size); QImage image = createFontImage(text, textColor, font, size);
if (!image.isNull()) { if (!image.isNull()) {
captureCallback(std::move(image), {}, {}); captureCallback(std::move(image), {}, {});
return; return;
}
} }
} }
abortCallback(ImageCache::AbortReason::Failed); abortCallback(ImageCache::AbortReason::Failed);
@@ -120,15 +122,17 @@ ImageCacheCollectorInterface::ImageTuple ImageCacheFontCollector::createImage(
{ {
QFont font; QFont font;
if (resolveFont(QString(name), font) >= 0) { if (resolveFont(QString(name), font) >= 0) {
auto &&auxiliaryData = std::get<ImageCache::FontCollectorSizeAuxiliaryData>(auxiliaryDataValue); if (auto auxiliaryData = std::get_if<ImageCache::FontCollectorSizeAuxiliaryData>(
QColor textColor = auxiliaryData.colorName; &auxiliaryDataValue)) {
QSize size = auxiliaryData.size; QColor textColor = auxiliaryData->colorName;
QString text = font.family() + "\n\n" + auxiliaryData.text; QSize size = auxiliaryData->size;
QString text = font.family() + "\n\n" + auxiliaryData->text;
QImage image = createFontImage(text, textColor, font, size); QImage image = createFontImage(text, textColor, font, size);
if (!image.isNull()) if (!image.isNull())
return {image, {}, {}}; return {image, {}, {}};
}
} }
return {}; return {};
@@ -142,15 +146,17 @@ QIcon ImageCacheFontCollector::createIcon(Utils::SmallStringView name,
QFont font; QFont font;
if (resolveFont(QString(name), font) >= 0) { if (resolveFont(QString(name), font) >= 0) {
auto &&auxiliaryData = std::get<ImageCache::FontCollectorSizesAuxiliaryData>(auxiliaryDataValue); if (auto auxiliaryData = std::get_if<ImageCache::FontCollectorSizesAuxiliaryData>(
QColor textColor = auxiliaryData.colorName; &auxiliaryDataValue)) {
const auto sizes = auxiliaryData.sizes; QColor textColor = auxiliaryData->colorName;
QString text = auxiliaryData.text; const auto sizes = auxiliaryData->sizes;
QString text = auxiliaryData->text;
for (QSize size : sizes) { for (QSize size : sizes) {
QImage image = createFontImage(text, textColor, font, size); QImage image = createFontImage(text, textColor, font, size);
if (!image.isNull()) if (!image.isNull())
icon.addPixmap(QPixmap::fromImage(image)); icon.addPixmap(QPixmap::fromImage(image));
}
} }
} }