/
erhoof
/
telegraf
Обзор
Документация
Войти
/
erhoof
/
telegraf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/util/filevalidator.cpp
93 строки
2 KB
mbarashkov
Реорганизована структура папок исходников
26 фев 2025, 15:19
26 фев 2025, 15:19
7599d9b
Код
Авторство
О чём код?
#include "filevalidator.h" #include <QFile> #include <QImage> FileValidator::FileValidator(QObject *parent) : QObject(parent), mTreatAsImage(false) { setFileErrorMessage("Must specify a file"); } QUrl FileValidator::url() const { return mUrl; } void FileValidator::setUrl(const QUrl &url) { if (url == mUrl) return; mUrl = url; if (mUrl.isEmpty()) { setFileErrorMessage(tr("Must specify a file")); } else if (!QFile::exists(mUrl.toLocalFile())) { setFileErrorMessage(tr("File doesn't exist")); } else { if (mTreatAsImage) { QImage image(mUrl.toLocalFile()); if (image.isNull()) { setFileErrorMessage(tr("Image can not be opened")); } else { // The image was loaded successfully, so we can clear // whatever was here before. setFileErrorMessage(QString()); } } else { // The file was loaded successfully. setFileErrorMessage(QString()); } } if (mFileErrorMessage.isEmpty()) { // Let derived classes check for problems. validate(); } emit urlChanged(); } bool FileValidator::isFileValid() const { return mFileErrorMessage.isEmpty(); } QString FileValidator::fileErrorMessage() const { return mFileErrorMessage; } void FileValidator::setFileErrorMessage(const QString &fileErrorMessage) { if (fileErrorMessage == mFileErrorMessage) return; bool wasValid = isFileValid(); mFileErrorMessage = fileErrorMessage; if (isFileValid() != wasValid) { emit fileValidChanged(); } emit fileErrorMessageChanged(); } bool FileValidator::treatAsImage() const { return mTreatAsImage; } void FileValidator::setTreatAsImage(bool treatAsImage) { if (treatAsImage == mTreatAsImage) return; mTreatAsImage = treatAsImage; emit treatAsImageChanged(); } void FileValidator::validate() { }