2022-08-19 15:59:36 +02:00
|
|
|
// Copyright (C) 2016 The Qt Company Ltd.
|
2022-12-21 10:12:09 +01:00
|
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
2008-12-02 14:09:21 +01:00
|
|
|
|
2016-03-18 07:55:01 +01:00
|
|
|
#pragma once
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2014-02-13 16:13:54 +01:00
|
|
|
#include "fancylineedit.h"
|
2008-12-02 12:01:29 +01:00
|
|
|
|
|
|
|
|
namespace Utils {
|
|
|
|
|
|
2014-02-13 16:13:54 +01:00
|
|
|
class QTCREATOR_UTILS_EXPORT FileNameValidatingLineEdit : public FancyLineEdit
|
2008-12-02 14:09:21 +01:00
|
|
|
{
|
2008-12-02 12:01:29 +01:00
|
|
|
Q_OBJECT
|
2008-12-05 10:39:08 +01:00
|
|
|
Q_PROPERTY(bool allowDirectories READ allowDirectories WRITE setAllowDirectories)
|
2011-09-20 12:54:18 +02:00
|
|
|
Q_PROPERTY(QStringList requiredExtensions READ requiredExtensions WRITE setRequiredExtensions)
|
2012-03-19 16:12:51 +01:00
|
|
|
Q_PROPERTY(bool forceFirstCapitalLetter READ forceFirstCapitalLetter WRITE setForceFirstCapitalLetter)
|
2011-07-13 18:02:35 +02:00
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
public:
|
2018-05-07 17:33:02 +02:00
|
|
|
explicit FileNameValidatingLineEdit(QWidget *parent = nullptr);
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2008-12-05 10:39:08 +01:00
|
|
|
static bool validateFileName(const QString &name,
|
|
|
|
|
bool allowDirectories = false,
|
2018-05-07 17:33:02 +02:00
|
|
|
QString *errorMessage = nullptr);
|
2008-12-05 10:39:08 +01:00
|
|
|
|
2011-09-20 12:54:18 +02:00
|
|
|
static bool validateFileNameExtension(const QString &name,
|
|
|
|
|
const QStringList &requiredExtensions = QStringList(),
|
2018-05-07 17:33:02 +02:00
|
|
|
QString *errorMessage = nullptr);
|
2011-09-20 12:54:18 +02:00
|
|
|
|
2009-03-19 16:33:44 +01:00
|
|
|
/**
|
|
|
|
|
* Sets whether entering directories is allowed. This will enable the user
|
|
|
|
|
* to enter slashes in the filename. Default is off.
|
|
|
|
|
*/
|
2008-12-05 10:39:08 +01:00
|
|
|
bool allowDirectories() const;
|
|
|
|
|
void setAllowDirectories(bool v);
|
2008-12-02 12:01:29 +01:00
|
|
|
|
2012-03-19 16:12:51 +01:00
|
|
|
/**
|
|
|
|
|
* Sets whether the first letter is forced to be a capital letter
|
|
|
|
|
* Default is off.
|
|
|
|
|
*/
|
|
|
|
|
bool forceFirstCapitalLetter() const;
|
|
|
|
|
void setForceFirstCapitalLetter(bool b);
|
|
|
|
|
|
2011-09-20 12:54:18 +02:00
|
|
|
/**
|
|
|
|
|
* Sets a requred extension. If the extension is empty no extension is required.
|
|
|
|
|
* Default is empty.
|
|
|
|
|
*/
|
|
|
|
|
QStringList requiredExtensions() const;
|
|
|
|
|
void setRequiredExtensions(const QStringList &extensionList);
|
|
|
|
|
|
2008-12-02 12:01:29 +01:00
|
|
|
protected:
|
2018-05-07 15:07:21 +02:00
|
|
|
QString fixInputString(const QString &string) override;
|
2008-12-05 10:39:08 +01:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
bool m_allowDirectories;
|
2011-09-20 12:54:18 +02:00
|
|
|
QStringList m_requiredExtensionList;
|
2012-03-19 16:12:51 +01:00
|
|
|
bool m_forceFirstCapitalLetter;
|
2008-12-02 12:01:29 +01:00
|
|
|
};
|
|
|
|
|
|
2008-12-02 14:09:21 +01:00
|
|
|
} // namespace Utils
|