/* * All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or * its licensors. * * For complete copyright and license terms please see the LICENSE at the root of this * distribution (the "License"). All use of this software is governed by the License, * or, if provided, by the license below or the license accompanying this file. Do not * remove or modify any license notices. This file is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * */ #include <QImage> namespace ProjectSettingsTool { namespace Validators { static const char* pngMimeType = "image/png"; // Returns true if path is empty or valid png file with specified dimensions template <int imageWidth, int imageHeight> FunctorValidator::ReturnType PngImageSetSizeOrEmpty(const QString& path) { using RetType = FunctorValidator::ReturnType; if (IsNotEmpty(path).first != QValidator::Acceptable) { return FunctorValidator::ReturnType(QValidator::Acceptable, ""); } else { RetType correct = Internal::FileReadableAndCorrectType(path, pngMimeType); if (correct.first) { QImage image(path); if (imageWidth == image.width() && imageHeight == image.height()) { return FunctorValidator::ReturnType(QValidator::Acceptable, ""); } else { return RetType(QValidator::Intermediate, QObject::tr("Image is not %1x%2 pixels.") .arg(QString::number(imageWidth)).arg(QString::number(imageHeight))); } } else { return correct; } } } } // namespace Validators } // namespace ProjectSettingsTool